Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
194d9da
Merge pull request #43 from vrknetha/feature/issue-t02
vrknetha Feb 12, 2026
e05f89c
feat(sdk): implement T03 ed25519 keypair/sign/verify utilities
vrknetha Feb 12, 2026
1165819
Merge pull request #44 from vrknetha/feature/t03-ed25519-sdk
vrknetha Feb 12, 2026
4d1932c
Implement T04 AIT schema
vrknetha Feb 12, 2026
c1fe053
Merge pull request #45 from vrknetha/feature/t04-ait-schema-validation
vrknetha Feb 12, 2026
9f7e331
feat(sdk): implement T05 AIT JWS sign/verify with kid lookup
vrknetha Feb 12, 2026
b7d2269
Merge pull request #46 from vrknetha/feature/t05-ait-jws-signing
vrknetha Feb 12, 2026
ddb5608
feat(protocol,sdk): implement T06 signed CRL schema and JWT helpers
vrknetha Feb 12, 2026
2a27213
Merge pull request #47 from vrknetha/feature/t06-crl-format-verification
vrknetha Feb 12, 2026
b3ac564
feat(sdk): implement T07 HTTP PoP signing and verification
vrknetha Feb 12, 2026
42b1a2b
fix(sdk): harden PoP proof and key length validation
vrknetha Feb 12, 2026
86e3218
fix(sdk): validate CRL payload schema after jwt verify
vrknetha Feb 12, 2026
9fcf8f2
fix(sdk): validate CRL claims before signing
vrknetha Feb 12, 2026
bea09c8
fix(protocol): enforce 32-byte Ed25519 key in AIT claims
vrknetha Feb 12, 2026
b2d4d2d
Merge pull request #48 from vrknetha/feature/t07-http-pop-sign-verify
vrknetha Feb 12, 2026
bb0ba1a
feat(sdk): implement T08 nonce replay cache
vrknetha Feb 12, 2026
3cb6947
fix(sdk): harden nonce cache pruning and input guards
vrknetha Feb 12, 2026
18ebf21
Validate CRL claims before use
vrknetha Feb 12, 2026
c054810
Merge pull request #49 from vrknetha/feature/t08-nonce-cache
vrknetha Feb 12, 2026
7ce161a
feat(sdk): implement T09 CRL cache refresh and staleness policy
vrknetha Feb 12, 2026
88a27d1
fix(sdk): bypass refresh throttle when CRL cache is stale
vrknetha Feb 12, 2026
8938c6c
Merge pull request #50 from vrknetha/feature/t09-crl-cache
vrknetha Feb 12, 2026
a2abf74
test(registry): add T10 schema contract verification
vrknetha Feb 12, 2026
0866d99
feat(registry): bootstrap T11 server entry and health config tests
vrknetha Feb 12, 2026
f81d9ce
Merge pull request #52 from vrknetha/feature/t11-registry-bootstrap
vrknetha Feb 12, 2026
6abb814
Update registry AGENTS auth rules
vrknetha Feb 12, 2026
f3f58a4
Review PAT auth updates
vrknetha Feb 13, 2026
9465d37
Merge pull request #53 from vrknetha/feature/t12-pat-auth
vrknetha Feb 13, 2026
748c62d
feat(registry): add well-known signing keyset endpoint
vrknetha Feb 13, 2026
af59790
fix(sdk): harden registry signing keyset validation
vrknetha Feb 13, 2026
e0221aa
Merge pull request #54 from vrknetha/feature/t13-signing-keys
vrknetha Feb 13, 2026
b7c3b4f
feat(t14): add agent registration endpoint with centralized verbose-e…
vrknetha Feb 13, 2026
b25c094
Merge pull request #55 from vrknetha/feature/t14-register-agent-ait-c…
vrknetha Feb 13, 2026
c089d05
merge: resolve PR #51 conflicts with develop
vrknetha Feb 13, 2026
3859096
Merge pull request #51 from vrknetha/feature/t10-schema-verification
vrknetha Feb 13, 2026
18b0430
feat(registry): implement T15 owned agent listing endpoint
vrknetha Feb 13, 2026
1ee6bc9
Merge pull request #56 from vrknetha/feature/t15-list-owned-agents
vrknetha Feb 13, 2026
bafffdf
feat(registry): add agent revoke endpoint and standardize file naming
vrknetha Feb 13, 2026
ec69ece
chore(governance): harden T38 deployment gate checks
vrknetha Feb 13, 2026
70faac8
fix(ci): avoid pnpm cache before pnpm install
vrknetha Feb 13, 2026
10e774a
docs: close implemented tickets even with external blockers
vrknetha Feb 13, 2026
b3db858
Merge pull request #59 from vrknetha/feature/t38-deploy-gate-hardening
vrknetha Feb 13, 2026
a4dffe0
Merge pull request #57 from vrknetha/feature/t16-agent-revoke-kill-sw…
vrknetha Feb 13, 2026
c032221
feat(registry): add agent AIT reissue endpoint
vrknetha Feb 13, 2026
16e1060
fix(registry): harden reissue race and preserve expiry cap
vrknetha Feb 13, 2026
18cd87f
Merge pull request #60 from vrknetha/feature/t17-agent-reissue
vrknetha Feb 13, 2026
feb1497
feat(registry): add signed CRL snapshot endpoint
vrknetha Feb 13, 2026
a999b04
Merge pull request #61 from vrknetha/feature/t18-crl-snapshot-cache-safe
vrknetha Feb 13, 2026
07bc6fc
feat(registry): implement T19 public agent resolve endpoint
vrknetha Feb 13, 2026
5c10fa0
Merge pull request #62 from vrknetha/feature/t19-resolve-agent-profil…
vrknetha Feb 13, 2026
0622728
feat(cli): implement T20 command framework and local config
vrknetha Feb 15, 2026
ac3e067
Merge pull request #63 from vrknetha/feature/t20-cli-framework-local-…
vrknetha Feb 15, 2026
4ad1530
feat(cli): add agent create command and shared command error handler
vrknetha Feb 15, 2026
4c427aa
Merge pull request #64 from vrknetha/feature/t21-agent-create-command
vrknetha Feb 15, 2026
d7c9146
feat(cli): add offline agent inspect with safe path validation
vrknetha Feb 15, 2026
d97f786
Merge pull request #65 from vrknetha/feature/plan-review-playful-seek…
vrknetha Feb 15, 2026
41dd281
feat(cli): add agent revoke command by name (T23)
vrknetha Feb 15, 2026
cf53f97
Merge pull request #66 from vrknetha/feature/t23-agent-revoke
vrknetha Feb 15, 2026
b729f80
feat(cli): implement local AIT verify command with cached key/CRL che…
vrknetha Feb 15, 2026
e1b57a1
Merge pull request #67 from vrknetha/feature/t24-local-ait-verify
vrknetha Feb 15, 2026
587cb73
feat(proxy): implement runtime config loading and validation
vrknetha Feb 15, 2026
05b34b4
fix(proxy): allow dotenv fallback when env var is blank
vrknetha Feb 15, 2026
0890016
docs(proxy): document blank env fallback semantics
vrknetha Feb 15, 2026
ed447ef
Merge pull request #68 from vrknetha/feature/t25-proxy-runtime-config
vrknetha Feb 15, 2026
084fa4a
feat(proxy): bootstrap server health endpoint and request logging
vrknetha Feb 15, 2026
2becb96
Merge pull request #69 from vrknetha/feature/t26-proxy-server-health-…
vrknetha Feb 15, 2026
bf92a60
feat(proxy): verify inbound auth for protected routes (T27)
vrknetha Feb 15, 2026
662c55b
fix(proxy): refresh keyset on unknown kid and enforce strict Claw aut…
vrknetha Feb 15, 2026
560bc23
fix(proxy): retry CRL verification after key refresh
vrknetha Feb 15, 2026
3b5a5c3
fix(proxy): enforce strict timestamp header format
vrknetha Feb 15, 2026
fc43c12
Merge pull request #70 from vrknetha/feature/t27-proxy-inbound-auth-v…
vrknetha Feb 15, 2026
b646de8
feat(proxy): enforce agent DID allowlist without global bypass (T28)
vrknetha Feb 15, 2026
1604efd
feat(proxy): implement OpenClaw hook forwarding and relay onboarding
vrknetha Feb 15, 2026
81cad55
fix(proxy): preserve base path when forwarding hook endpoint
vrknetha Feb 15, 2026
6c7a19a
Merge pull request #71 from vrknetha/feature/t28-agent-allowlist-only
vrknetha Feb 15, 2026
5fc2f6b
Merge remote-tracking branch 'origin/develop' into feature/t29-opencl…
vrknetha Feb 15, 2026
234a045
docs: add user-like e2e skill testing strategy
vrknetha Feb 15, 2026
0a612a8
docs: add alpha beta docker and skill-only e2e guidance
vrknetha Feb 15, 2026
a5cd7e3
feat(registry,cli): add production-grade admin bootstrap flow
vrknetha Feb 15, 2026
b340dc1
fix(admin-bootstrap): preserve PAT visibility and fallback atomicity
vrknetha Feb 15, 2026
25fd0b9
fix(ci): sync pnpm lockfile for cli dependency metadata
vrknetha Feb 15, 2026
f500b2e
Merge pull request #79 from vrknetha/feature/t29-openclaw-relay-onboa…
vrknetha Feb 15, 2026
a4799fd
feat(proxy): add per-agent DID rate limiting (T30)
vrknetha Feb 15, 2026
42436f8
Merge pull request #82 from vrknetha/feature/t30-proxy-rate-limit-per…
vrknetha Feb 15, 2026
3a9820d
feat(proxy): add cloudflare worker runtime and relay config plumbing
vrknetha Feb 16, 2026
0611070
Merge pull request #84 from vrknetha/feature/proxy-worker-runtime-rel…
vrknetha Feb 16, 2026
92b1144
feat: canonicalize bootstrap endpoint path and remove issues validato…
vrknetha Feb 16, 2026
95f67cb
chore: remove legacy issues ticket docs and validator artifacts
vrknetha Feb 16, 2026
3230473
Merge pull request #86 from vrknetha/feature/t01-bootstrap-path-dedup…
vrknetha Feb 16, 2026
949b1e3
feat(registry): require signed challenge for agent registration
vrknetha Feb 16, 2026
5558c85
fix: align proof template newlines and add drizzle 0001 snapshot
vrknetha Feb 16, 2026
065d4a4
Merge pull request #87 from vrknetha/feature/agent-registration-owner…
vrknetha Feb 16, 2026
30d8834
feat: implement api key lifecycle endpoints and cli commands
vrknetha Feb 16, 2026
246edbb
Merge pull request #88 from vrknetha/feature/t73-api-key-lifecycle
vrknetha Feb 16, 2026
4c58748
feat: add admin invite create/redeem onboarding flow and CLI commands
vrknetha Feb 16, 2026
2a87ad6
Merge pull request #89 from vrknetha/feature/t74-invite-onboarding-an…
vrknetha Feb 16, 2026
a2bded5
feat: implement agent auth refresh lifecycle and rotation
vrknetha Feb 16, 2026
87248e1
Merge pull request #90 from vrknetha/feature/t80-agent-auth-refresh-a…
vrknetha Feb 16, 2026
e33fb7f
feat: enforce runtime agent auth validation flow
vrknetha Feb 16, 2026
7421cd8
Merge pull request #91 from vrknetha/feature/issue-81-agent-auth-runt…
vrknetha Feb 16, 2026
c073927
fix(cli): bundle skill assets for npm --skill install
vrknetha Feb 16, 2026
7ebd637
fix(cli): track bundled relay artifact for clean CI installs
vrknetha Feb 16, 2026
598bf65
Merge pull request #92 from vrknetha/feature/issue-75-npm-first-skill…
vrknetha Feb 16, 2026
f51afee
feat(issue-83): add relay connector runtime and autostart workflow
vrknetha Feb 17, 2026
0776fe0
Merge pull request #93 from vrknetha/feature/issue-83-relay-connector
vrknetha Feb 17, 2026
22c8768
feat(issue-76): harden hook session default and enable identity injec…
vrknetha Feb 17, 2026
b3d8ead
Merge pull request #94 from vrknetha/feature/issue-76-onboarding-defa…
vrknetha Feb 17, 2026
e0a02ff
feat(cli): add openclaw doctor and relay test diagnostics
vrknetha Feb 17, 2026
cd3d8ab
fix(cli): harden openclaw doctor diagnostics checks
vrknetha Feb 17, 2026
4973622
docs(cli): tighten openclaw diagnostic guardrails
vrknetha Feb 17, 2026
86e9de2
fix(cli): honor --peer option in openclaw doctor
vrknetha Feb 17, 2026
e33c204
Merge pull request #95 from vrknetha/feature/issue-77-openclaw-doctor…
vrknetha Feb 17, 2026
bae4e19
harden public API abuse limits for free plan
vrknetha Feb 17, 2026
f5d5eee
Merge pull request #96 from vrknetha/feature/free-plan-api-abuse-hard…
vrknetha Feb 17, 2026
8006d42
feat: add cli publish pipeline and relay proxy updates
vrknetha Feb 17, 2026
1322d9d
fix: harden deploy snapshot and align cli runtime version
vrknetha Feb 17, 2026
87b73b9
fix: sync lockfile with cli manifest
vrknetha Feb 17, 2026
b04707d
fix: enforce strict local docker e2e skill root
vrknetha Feb 17, 2026
27ad3f6
chore: remove docker e2e traces from repo and docs
vrknetha Feb 17, 2026
8032a9c
Merge pull request #97 from vrknetha/feature/deploy-npm-release
vrknetha Feb 17, 2026
93e26ad
feat(proxy): implement durable pairing trust store and sync openclaw …
vrknetha Feb 17, 2026
1696433
Merge pull request #99 from vrknetha/feature/t15-pairing-trust-store
vrknetha Feb 17, 2026
997b8c7
ci: build before tests in deploy-develop workflow
vrknetha Feb 17, 2026
cc8db90
ci: use pnpm exec wrangler in deploy workflow
vrknetha Feb 17, 2026
288e0cc
ci: fix d1 export artifact path in deploy workflow
vrknetha Feb 17, 2026
fa260fa
ci: retry deploy health checks to handle propagation
vrknetha Feb 17, 2026
4f9831c
ci: set explicit headers for deploy health checks
vrknetha Feb 17, 2026
9f3751d
feat(pairing): add QR ticket flow and init registry overrides
vrknetha Feb 17, 2026
2a796ef
fix(proxy): block unsafe pair confirm forwarding targets by default
vrknetha Feb 17, 2026
01c4fc5
refactor(proxy): remove legacy state-dir fallback and support pairing…
vrknetha Feb 17, 2026
c5ce140
fix(proxy): enforce secure pair-confirm forwarding and confirm-time t…
vrknetha Feb 18, 2026
d8f3cce
proxy: enforce trust store backend by environment
vrknetha Feb 18, 2026
d3f2b54
cli: generate skill bundle at build time only
vrknetha Feb 18, 2026
2d7356e
feat(pairing): harden proxy pairing flow and trust state
vrknetha Feb 18, 2026
30f409c
Merge pull request #100 from vrknetha/feature/issue-38-qr-ticket-pairing
vrknetha Feb 18, 2026
1df224d
feat: streamline OpenClaw onboarding, pairing, and relay reliability
vrknetha Feb 19, 2026
7269dc4
feat: harden relay onboarding, pairing, and skill state discovery
vrknetha Feb 19, 2026
8256b3e
test(cli): reset env across pair command output specs
vrknetha Feb 19, 2026
987e37d
fix(cli): make postinstall no-op when dist bundle is missing
vrknetha Feb 19, 2026
3016a71
ci(deploy): use proxy internal service id/secret in dev deploy
vrknetha Feb 19, 2026
8887be2
chore: harden deploy workflow and worker runtime config
vrknetha Feb 19, 2026
af64d76
feat(cli): add relay websocket test and update deploy workflow
vrknetha Feb 19, 2026
9ccd568
test(cli): make openclaw fixtures profile-aware
vrknetha Feb 19, 2026
e484052
Merge pull request #138 from vrknetha/feature/issue-38-qr-ticket-pairing
vrknetha Feb 19, 2026
48d5fda
ci(deploy): simplify develop secret flow to internal service creds
vrknetha Feb 19, 2026
3cfc21f
docs(readme): update root and cli readme
vrknetha Feb 19, 2026
e9532d0
Merge pull request #139 from vrknetha/fix/develop-deploy-internal-ser…
vrknetha Feb 19, 2026
1204bf6
ci(deploy): make worker type generation deterministic
vrknetha Feb 19, 2026
60ef019
Merge pull request #141 from vrknetha/fix/deploy-worker-types-determi…
vrknetha Feb 19, 2026
44d2c85
ci(deploy): fallback to dev proxy domain for health check
vrknetha Feb 19, 2026
b7580be
ci(deploy): support registry health URL override
vrknetha Feb 19, 2026
8a034e6
Merge pull request #142 from vrknetha/fix/deploy-worker-types-determi…
vrknetha Feb 19, 2026
e34d898
fix(pair): route confirm to issuer and persist peer proxy origin
vrknetha Feb 20, 2026
60a2ad1
Merge pull request #150 from vrknetha/feature/pair-proxy-routing-fixes
vrknetha Feb 20, 2026
2d91b41
feat(connector,proxy): harden websocket heartbeat and reconnect resil…
vrknetha Feb 20, 2026
0deb90a
Review websocket stability diff
vrknetha Feb 20, 2026
aa95b16
Review and fix websocket stability
vrknetha Feb 20, 2026
509f958
Merge pull request #151 from vrknetha/feature/issue-143-websocket-sta…
vrknetha Feb 20, 2026
fbfa206
Pull latest and execute plan
vrknetha Feb 20, 2026
df759b0
Review feature/issue-144 changes
vrknetha Feb 20, 2026
fc3e4e6
Merge pull request #152 from vrknetha/feature/issue-144-inbound-deliv…
vrknetha Feb 20, 2026
f6662d0
feat: add worktree-safe env sync for Codex worktrees
vrknetha Feb 20, 2026
4cdf4a0
feat(connector): harden openclaw gateway liveness and token rotation
vrknetha Feb 20, 2026
1206eef
Merge pull request #153 from vrknetha/feature/worktree-env-bootstrap
vrknetha Feb 20, 2026
461fd62
Enforce explicit OpenClaw token
vrknetha Feb 20, 2026
fb9069b
Merge pull request #154 from vrknetha/feature/issue-145-connector-ope…
vrknetha Feb 20, 2026
ff341e4
fix(cli,proxy): harden pairing polling, recovery, and ticket security
vrknetha Feb 20, 2026
62a709a
Fix pairing flow resilience issues
vrknetha Feb 20, 2026
bdded72
Merge pull request #156 from vrknetha/feature/issue-155-pairing-flow-…
vrknetha Feb 20, 2026
490e51d
Automate CLI release workflow
vrknetha Feb 20, 2026
9ec03b6
Fix pnpm install ordering
vrknetha Feb 20, 2026
73d3cec
Build workspace libs before CLI run
vrknetha Feb 20, 2026
309a8f9
fix(ci): run cli pack/publish in package directory
vrknetha Feb 20, 2026
be70c02
fix(ci): make cli pack validation deterministic
vrknetha Feb 20, 2026
0aabfda
refactor(packages): modularize connector and add shared common utils
vrknetha Feb 20, 2026
f1b77e1
fix(cli): add repository metadata for provenance publish
vrknetha Feb 20, 2026
dbadb60
Merge pull request #157 from vrknetha/feature/issue-155-pairing-flow-…
vrknetha Feb 20, 2026
629be5a
refactor(cli): split openclaw command into modular files
vrknetha Feb 20, 2026
39ded32
refactor(proxy): split agent relay session into modules
vrknetha Feb 20, 2026
d2d6dbf
refactor(cli): split pair command into modules
vrknetha Feb 20, 2026
4b960ff
refactor(cli): split connector command into modules
vrknetha Feb 20, 2026
e3a619e
refactor(cli): split agent command into modules
vrknetha Feb 20, 2026
db401d4
refactor(proxy): split proxy trust state into modules
vrknetha Feb 20, 2026
aecd611
refactor(registry): split server into modular route files
vrknetha Feb 20, 2026
5dfc3ed
test(cli): split agent tests into focused files
vrknetha Feb 20, 2026
d860f2d
test(cli,proxy): split oversized pair and auth middleware tests
vrknetha Feb 20, 2026
630a91f
test(cli,registry): split openclaw and server tests into modules
vrknetha Feb 20, 2026
2c4c3cf
Review proxy pairing bootstrap
vrknetha Feb 20, 2026
2943017
test(registry): improve fake D1 rollback fidelity for internal services
vrknetha Feb 20, 2026
71482ef
refactor(common): unify safe JSON response parsing across packages an…
vrknetha Feb 20, 2026
99a3de4
chore: keep proxy secrets manual and hide bootstrap output
vrknetha Feb 20, 2026
0b0c63b
test(connector): split client tests into focused modules
vrknetha Feb 20, 2026
cf592bf
security: remove internal service secret stdout path
vrknetha Feb 20, 2026
05c8f30
Merge pull request #159 from vrknetha/feature/proxy-pairing-bootstrap…
vrknetha Feb 20, 2026
69edbc3
refactor(connector): modularize runtime orchestration
vrknetha Feb 20, 2026
e86f1c9
refactor(connector): split client inbound and metrics modules
vrknetha Feb 20, 2026
6a75ade
refactor(proxy): extract relay socket tracking module
vrknetha Feb 20, 2026
4b116ea
chore(quality): enforce file-size guard and reuse common isRecord
vrknetha Feb 20, 2026
a7af9a8
feat: align deterministic bootstrap service env across registry and p…
vrknetha Feb 20, 2026
3b3eeb7
refactor(registry): split agent registration into focused modules
vrknetha Feb 20, 2026
f0e17e2
Merge pull request #160 from vrknetha/feature/proxy-pairing-bootstrap…
vrknetha Feb 20, 2026
3a43ed1
refactor(cli): split openclaw doctor static checks
vrknetha Feb 20, 2026
6d3f60e
refactor(proxy): split config into focused modules
vrknetha Feb 20, 2026
f28ed90
refactor: split relay session, registry registration tests, and conne…
vrknetha Feb 20, 2026
5cd102b
refactor: split auth, connector, and test helpers by responsibility
vrknetha Feb 20, 2026
08b638f
Add PROTOCOL.md and Internet-Draft (draft-vemula-clawdentity-protocol…
vrknetha Feb 21, 2026
8bd05c1
Rename I-D to draft-caw-clawdentity-protocol-00
vrknetha Feb 21, 2026
3b52321
Fix author name: Ravi Kiran (no surname split)
vrknetha Feb 21, 2026
3ea8dd4
Org name: CAW (not CAW Studios)
vrknetha Feb 21, 2026
52aa565
Add Protocol Specification section to README
vrknetha Feb 21, 2026
b13c315
Migrate DID method from did:claw to did:agentid in spec
vrknetha Feb 21, 2026
c548f2a
Migrate DID method to did:cdi with registry-host format
vrknetha Feb 21, 2026
904ecce
rename I-D: draft-caw → draft-ravikiran (independent submission)
vrknetha Feb 21, 2026
68a2f46
remove org from I-D author block
vrknetha Feb 21, 2026
40d26bd
restore CAW org in author block
vrknetha Feb 21, 2026
9a301e9
fix author: R. K. Vemula, gmail email
vrknetha Feb 21, 2026
c3c1101
Merge origin/develop and finalize maintainability refactor
vrknetha Feb 21, 2026
2aece28
docs: remove stale test environment references
vrknetha Feb 21, 2026
9cd5904
Merge pull request #162 from vrknetha/feature/packages-maintainabilit…
vrknetha Feb 21, 2026
17c19b6
feat(rust-cli): scaffold workspace and config routing foundation (pha…
vrknetha Feb 21, 2026
2d92b2b
feat(rust-cli): implement identity, signing, registry, and bootstrap …
vrknetha Feb 22, 2026
293e2d0
feat(rust-cli): phase 2 — identity, DID, signing, registry, agent mod…
vrknetha Feb 22, 2026
4d78f04
docs: add revalidated implementation plan for phases 3-10
vrknetha Feb 22, 2026
3c15ae0
feat(rust-cli): implement phases 2-10 — full CLI parity
vrknetha Feb 22, 2026
edd3545
refactor: rename clagram back to clawdentity
vrknetha Feb 22, 2026
c48a9b0
docs: update README for cross-platform messaging scope
vrknetha Feb 22, 2026
2bb9bfb
Merge pull request #183 from vrknetha/docs/readme-update
vrknetha Feb 22, 2026
024952f
feat: add install provider pattern for multi-platform support
vrknetha Feb 22, 2026
0c6ec36
fix: address all review findings (H1-H3, M1-M5, L1-L2)
vrknetha Feb 22, 2026
cce1a12
chore: remove planning/review docs from PR, add to gitignore
vrknetha Feb 22, 2026
d8eda48
feat: add local e2e test infrastructure (mock-registry, mock-proxy, t…
vrknetha Feb 22, 2026
bfa4372
feat: add connector start subcommand (TS parity)
vrknetha Feb 22, 2026
5c11418
feat: add docker platform integration tests (3-provider mesh)
vrknetha Feb 22, 2026
1589df3
fix: docker integration test issues (shared builder, mock platforms, …
vrknetha Feb 22, 2026
5083f30
fix: address all integration test review findings (critical + high + …
vrknetha Feb 22, 2026
0f258cf
fix: docker integration tests (cross-compile, prebuilt binaries, simp…
vrknetha Feb 22, 2026
3943272
refactor(core,cli): reorganize core modules and add generic provider …
vrknetha Feb 23, 2026
a164ee5
refactor(cli): remove legacy openclaw subcommand, use generic provide…
vrknetha Feb 23, 2026
5de38c3
fix: address critical and high review findings
vrknetha Feb 23, 2026
1767a16
fix: address medium review findings
vrknetha Feb 23, 2026
e0670af
feat: add structural enforcement tests
vrknetha Feb 23, 2026
c657e57
docs: add repository knowledge structure (Harness Phase 2)
vrknetha Feb 23, 2026
835eefd
docs: monorepo-wide knowledge structure
vrknetha Feb 23, 2026
46a0296
fix: update mock-proxy and mock-registry imports for new module struc…
vrknetha Feb 23, 2026
89e827e
feat: cross-language structural enforcement
vrknetha Feb 23, 2026
d5b185c
ci: fix lockfile mismatch and add Rust + structural checks
vrknetha Feb 23, 2026
f64130b
fix: collapse nested if to satisfy clippy collapsible_if
vrknetha Feb 23, 2026
f0cd0b6
refactor: migrate structural checks to Biome, slim custom script
vrknetha Feb 23, 2026
440e9b8
fix: allow console in logging utilities for Biome noConsole rule
vrknetha Feb 23, 2026
4537161
Merge pull request #180 from vrknetha/feat/rust-cli
vrknetha Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
21 changes: 21 additions & 0 deletions .codex/environments/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# AGENTS.md (.codex/environments)

## Purpose
- Define local Codex environment setup for deterministic worktree onboarding.
- Keep environment bootstrap reproducible without committing secrets.

## Rules
- Keep setup script idempotent and fail-fast when required shared env keys are missing.
- Keep `environment.toml` setup/actions aligned with workspace scripts in `package.json`.
- Use `scripts/env/sync-worktree-env.sh` as the single generator for local `.env` files.
- Do not commit secret-bearing `.env` files; only commit templates (`.env.example`).
- If env contract keys change, update these together in one change:
- `scripts/env/sync-worktree-env.sh`
- `.env.example`
- `apps/*/.env.example`
- `README.md`
- repository/app `AGENTS.md` files with env guidance

## Validation
- `pnpm env:sync` should fail with a clear error when shared source is missing.
- `pnpm env:sync` should produce deterministic output for root/app env files.
39 changes: 39 additions & 0 deletions .codex/environments/environment.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[setup_scripts]
default_script = "bash ./scripts/env/sync-worktree-env.sh"
default_script_macos = "bash ./scripts/env/sync-worktree-env.sh"
default_script_windows = "powershell -NoProfile -ExecutionPolicy Bypass -Command \"bash ./scripts/env/sync-worktree-env.sh\""

[[actions]]
name = "Sync Env"
icon = "gear"
script = "pnpm env:sync"
script_macos = "pnpm env:sync"
script_windows = "pnpm env:sync"

[[actions]]
name = "Registry Local"
icon = "play"
script = "pnpm dev:registry:local"
script_macos = "pnpm dev:registry:local"
script_windows = "pnpm dev:registry:local"

[[actions]]
name = "Proxy Local"
icon = "play"
script = "pnpm dev:proxy:local"
script_macos = "pnpm dev:proxy:local"
script_windows = "pnpm dev:proxy:local"

[[actions]]
name = "Typecheck"
icon = "check"
script = "pnpm -r typecheck"
script_macos = "pnpm -r typecheck"
script_windows = "pnpm -r typecheck"

[[actions]]
name = "Tests"
icon = "check"
script = "pnpm -r test"
script_macos = "pnpm -r test"
script_windows = "pnpm -r test"
65 changes: 65 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Rust
target/
Cargo.lock
**/*.rs.bk

# Node
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
yarn.lock

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
*.egg-info/
dist/
build/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store

# Git
.git/
.gitignore

# Testing
*.test
*.spec
.coverage
htmlcov/
.pytest_cache/

# Logs
logs/
*.log

# Local test artifacts
tests/local/mock-registry/target/
tests/local/mock-proxy/target/

# Docker
Dockerfile*
docker-compose*.yml
.dockerignore

# Docs build
docs/_build/
site/

# Temporary files
tmp/
temp/
*.tmp
55 changes: 55 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Clawdentity shared local env template
#
# Copy this file to ~/.clawdentity/worktree.env and set real values.
# Then run: pnpm env:sync
#
# Optional override for non-default source path:
# export CLAWDENTITY_SHARED_ENV_FILE=/absolute/path/to/worktree.env

# Required keys
CLAWDENTITY_REGISTRY_URL=http://127.0.0.1:8788
CLAWDENTITY_PROXY_URL=http://127.0.0.1:8787
BOOTSTRAP_SECRET=replace-with-random-secret
BOOTSTRAP_INTERNAL_SERVICE_ID=replace-with-internal-service-id
BOOTSTRAP_INTERNAL_SERVICE_SECRET=replace-with-internal-service-secret
REGISTRY_SIGNING_KEY=replace-with-base64url-ed25519-private-key
REGISTRY_SIGNING_KEYS=[{"kid":"reg-dev-key-1","alg":"EdDSA","crv":"Ed25519","x":"replace-with-base64url-ed25519-public-key","status":"active"}]

# Optional keys
APP_VERSION=local-dev
EVENT_BUS_BACKEND=memory
OPENCLAW_BASE_URL=http://127.0.0.1:18789
INJECT_IDENTITY_INTO_MESSAGE=true

# CLI/user profile overrides
# CLAWDENTITY_API_KEY=clw_pat_replace_me
# CLAWDENTITY_HUMAN_NAME=Your Name

# Connector/OpenClaw optional overrides
# CLAWDENTITY_PROXY_WS_URL=ws://127.0.0.1:8787/v1/relay/connect
# CLAWDENTITY_CONNECTOR_BASE_URL=http://127.0.0.1:19400
# CLAWDENTITY_CONNECTOR_OUTBOUND_PATH=/v1/outbound
# OPENCLAW_HOOK_PATH=/hooks/agent
# OPENCLAW_HOOK_TOKEN=replace-with-random-token
# OPENCLAW_GATEWAY_TOKEN=replace-with-openclaw-gateway-token
# OPENCLAW_HOME=~/.openclaw
# OPENCLAW_STATE_DIR=~/.openclaw
# OPENCLAW_CONFIG_PATH=~/.openclaw/openclaw.json
# CLAWDBOT_STATE_DIR=~/.clawdbot
# CLAWDBOT_CONFIG_PATH=~/.clawdbot/clawdbot.json
# OPENCLAW_GATEWAY_APPROVAL_COMMAND=openclaw

# Proxy runtime tuning optional overrides
# CRL_REFRESH_INTERVAL_MS=300000
# CRL_MAX_AGE_MS=900000
# CRL_STALE_BEHAVIOR=fail-open
# AGENT_RATE_LIMIT_REQUESTS_PER_MINUTE=60
# AGENT_RATE_LIMIT_WINDOW_MS=60000
# RELAY_QUEUE_MAX_MESSAGES_PER_AGENT=500
# RELAY_QUEUE_TTL_SECONDS=3600
# RELAY_RETRY_INITIAL_MS=1000
# RELAY_RETRY_MAX_MS=30000
# RELAY_RETRY_MAX_ATTEMPTS=25
# RELAY_RETRY_JITTER_RATIO=0.2
# RELAY_MAX_IN_FLIGHT_DELIVERIES=5
# RELAY_MAX_FRAME_BYTES=1048576
71 changes: 70 additions & 1 deletion .github/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,82 @@

## Purpose
- Keep CI workflows deterministic and aligned with local tooling versions.
- Keep deployment workflows explicit, auditable, and recoverable.

## CI Rules
- Pin Node and pnpm versions explicitly in workflow steps.
- Use `fetch-depth: 0` when running `nx affected`.
- Compute and export `NX_BASE` and `NX_HEAD` before invoking affected commands.
- Run root lint (`pnpm lint`) before affected tasks to keep style checks global.
- Avoid duplicate CI runs for PR updates by limiting `push` triggers to long-lived branches (`main`, `develop`) and using `pull_request` for feature branches.

## Quality Gates
- CI command order: install -> base/head setup -> lint -> affected checks.
- CI command order: install -> base/head setup -> file-size guard (`pnpm check:file-size`) -> lint -> affected checks.
- Affected checks in CI must include `lint`, `format`, `typecheck`, `test`, and `build`.
- File-size guard scope: tracked source files under `apps/**` and `packages/**`, hard limit `800` lines, excluding `dist`, `.wrangler`, `worker-configuration.d.ts`, `drizzle/meta`, and `node_modules`.

## Deployment Rules (Develop)
- `deploy-develop.yml` runs on pushes to `develop`.
- Run full quality gates before deployment: `pnpm lint`, `pnpm -r typecheck`, `pnpm -r build`, `pnpm -r test`.
- Deploy both workers in the same workflow:
- registry (`apps/registry`, env `dev`) with D1 migration apply before deploy
- proxy (`apps/proxy`, env `dev`) after registry health passes
- Install dependencies before any `pnpm exec wrangler ...` command so Wrangler is available on clean runners.
- Regenerate Worker type bindings in CI with dotenv overlays disabled (`pnpm -F @clawdentity/registry run types:dev` and `pnpm -F @clawdentity/proxy run types:dev`) and fail on git diff drift for `worker-configuration.d.ts` to prevent stale runtime binding types from shipping.
- Sync proxy internal-service credentials from GitHub secrets on every deploy:
- `BOOTSTRAP_INTERNAL_SERVICE_ID`
- `BOOTSTRAP_INTERNAL_SERVICE_SECRET`
- Push both values into proxy Worker secrets before proxy deploy.
- Add a Wrangler preflight dry-run for both workers before mutating remote state (migrations/deploy):
- `wrangler deploy --env dev --dry-run --var APP_VERSION:<sha>`
- Verify registry health at `https://dev.registry.clawdentity.com/health` and verify proxy health via deployed URL (workers.dev or explicit override) with expected `APP_VERSION`.
- Add Wrangler deployment existence checks for both services after each deploy (`wrangler deployments list --env dev --json`) before endpoint health probes.
- Health verification should use bounded retries (for example 3 minutes with 10-second polling) and `Cache-Control: no-cache` requests to tolerate short edge propagation delays after deploy.
- When using Python `urllib` for health checks, always set explicit request headers (`Accept: application/json` and a custom `User-Agent` such as `Clawdentity-CI/1.0`) because Cloudflare may return `403`/`1010` for the default `Python-urllib/*` user agent.
- Use workflow concurrency groups to prevent overlapping deploys for the same environment.
- Run Wrangler through workspace tooling (`pnpm exec wrangler`) in CI so commands work without a global Wrangler install on GitHub runners.

## Release Rules (CLI)
- `publish-cli.yml` is manual (`workflow_dispatch`) and must accept `release_type` (`patch`/`minor`/`major`) + `dist_tag` inputs.
- Compute the next CLI version in CI from the currently published npm `clawdentity` version (fallback `0.0.0` if first publish), then bump `apps/cli/package.json` in the workflow.
- Fail publish early if the computed target version already exists on npm.
- Serialize CLI publishes with a single global workflow concurrency group to avoid parallel release races across branches.
- Build workspace libraries consumed by CLI tests (`@clawdentity/protocol`, `@clawdentity/sdk`, `@clawdentity/connector`) before running `pnpm -F clawdentity test` on clean runners.
- Run CLI quality gates before publish: `pnpm -F clawdentity lint`, `typecheck`, `test`, `build`.
- Run npm release commands (`pkg set`, `pack`, `publish`) with `working-directory: apps/cli`; avoid `npm --prefix apps/cli ...` for pack/publish because npm may target the workspace root manifest on monorepos missing a root `version`.
- Validate packaged artifact contents using `npm pack --dry-run --json` file metadata (not grepping console notices), because npm file-list notices are not guaranteed on stdout.
- Keep `npm pack --dry-run --json` deterministic by forcing `NPM_CONFIG_COLOR=false`, `NPM_CONFIG_LOGLEVEL=silent`, and `NPM_CONFIG_PROGRESS=false`, then parsing the `files` list instead of relying on noisy stderr/stdout lines that vary per npm version.
- Keep `apps/cli/package.json` `repository.url` pinned to `https://github.com/vrknetha/clawdentity`; npm provenance publish will fail if repository metadata is missing or mismatched.
- Publish only package `apps/cli` as npm package `clawdentity`.
- Keep published runtime manifest free of `workspace:*` runtime dependencies.
- Use npm provenance (`--provenance`) and require `NPM_TOKEN` secret.

## Secrets and Permissions
- Required deploy secrets:
- `CLOUDFLARE_API_TOKEN`
- `CLOUDFLARE_ACCOUNT_ID`
- `BOOTSTRAP_INTERNAL_SERVICE_ID`
- `BOOTSTRAP_INTERNAL_SERVICE_SECRET`
- Mirror to `CF_API_TOKEN` and `CF_ACCOUNT_ID` for tooling compatibility.
- Optional deploy secrets:
- `REGISTRY_HEALTH_URL` (only needed when dev registry health endpoint is not `https://dev.registry.clawdentity.com`; CI falls back to that URL by default).
- `PROXY_HEALTH_URL` (only needed when dev proxy health endpoint is not `https://dev.proxy.clawdentity.com`; CI now falls back to that URL if workers.dev output is unavailable).
- Required publish secret: `NPM_TOKEN`.
- Keep Cloudflare token scope minimal for current workflows:
- `Workers Scripts:Edit`
- `Workers Routes:Edit` (zone-level, custom domains)
- `D1:Edit`
- add `Cloudflare Pages:Edit` only when Pages deploy workflow is introduced.

## Migration Rollback Strategy (Develop)
- Capture pre-deploy artifacts:
- `pnpm exec wrangler --cwd apps/registry deployments list --env dev --json`
- `pnpm exec wrangler --cwd apps/proxy deployments list --env dev --json || true` (non-blocking for first deploy before proxy Worker exists)
- `pnpm exec wrangler d1 time-travel info clawdentity-db-dev --timestamp <predeploy-ts> --json`
- `pnpm exec wrangler d1 export clawdentity-db-dev --remote --output "${GITHUB_WORKSPACE}/artifacts/<file.sql>"`
- Keep deploy snapshot collection non-blocking for Worker deployment listings (pre and post) so rollback artifact capture does not fail the workflow when a Worker has no prior deployment history.
- Upload artifacts on every run for operator recovery.
- On failed deploy:
- Registry rollback: `pnpm exec wrangler --cwd apps/registry rollback <version-id> --env dev`
- Proxy rollback: `pnpm exec wrangler --cwd apps/proxy rollback <version-id> --env dev`
- DB rollback: `pnpm exec wrangler d1 time-travel restore clawdentity-db-dev --env dev --timestamp <predeploy-ts>`
45 changes: 44 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,33 @@
name: CI
on: [push, pull_request]
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
rust: ${{ steps.filter.outputs.rust }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
rust:
- 'crates/**'

check:
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -29,5 +56,21 @@ jobs:
echo "NX_BASE=$BASE_SHA" >> "$GITHUB_ENV"
echo "NX_HEAD=${{ github.sha }}" >> "$GITHUB_ENV"
fi
- run: pnpm check:file-size
- run: pnpm check:structural || true
- run: pnpm lint
- run: pnpm affected:ci

rust:
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ubuntu-latest
defaults:
run:
working-directory: crates
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo check --workspace
- run: cargo clippy --workspace --all-targets -- -D warnings
- run: cargo test --workspace
Loading