feat(notify): add dormant diagnostics credential and pairing foundation - #109
Conversation
Implement the Decision 022 deterministic protocol and credential lifecycle. Keep every helper and app product entry point disconnected.
Exercise pairing, rotation, revocation, recovery, limits, races, and replay. Share byte-exact message fixtures with the test-only Swift verifier.
Document the internal M3 foundation and unchanged runtime evidence limits.
📝 WalkthroughWalkthroughThe PR adds a dormant Decision 022 diagnostics pairing foundation with canonical CBOR, cryptographic identities, credential persistence, invitation and lifecycle state handling, Go and Swift golden vectors, extensive tests, and explicit safeguards preventing production runtime activation. ChangesDiagnostics pairing foundation
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 7✅ Passed checks (7 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
What & why
Adds the dormant M3 helper credential and pairing foundation after merged M2. The implementation follows the fixed Decision 022 protocol suite while leaving every installed helper and app product path disconnected.
Decision 022 remains unchanged and does not authorize runtime use. This pull request adds no listener, endpoint registration, environment option, installer path, product command, app flow, namespace, probe, Relay call, Syncthing client, deployment, release, or rollout.
Component(s)
Dormant boundary
notify/main.go, Docker configuration, installers, bridge code, and app product sources are unchanged.VaultSyncTests.Implementation
0700directory and0600file modes on supported Unix systems.Cross-language contract
Local verification
cd notify && go test ./... -count=1— passed in 19.636 secondscd notify && go vet ./...— passedcd notify && go test -race ./... -count=1— passed in 26.363 secondscd notify && test -z "$(gofmt -l .)"— passedgovulncheck v1.6.0 ./...— no vulnerabilities foundgit diff --check origin/main...HEAD— passedshellcheck— unavailable on this host; required CI remains authoritative91299437df3d680dc5a13375d30889d045dcb8c4No signing, archive, Device test, production service call, deployment, helper release, tag, submission, or publication was performed.
Security and privacy review
PRIVACY.mdis unchanged because no runtime credential or pairing transport exists; it remains a prerequisite before either is introduced.origin/main.Existing-user and compatibility impact
There is no schema migration, automatic state creation, automatic pairing, namespace cleanup, or user-facing rollback action. Repository rollback is a normal revert of the three M3 commits.
Release gate
VaultSync 2.0 remains NO-GO.
The strongest implemented proof remains a fresh successful local file
ItemFinishedapply after cursor, RFC3339-nanosecond time, and stable engine-generation baselines.Owner approval was given on 2026-07-13 for the exact head
91299437df3d680dc5a13375d30889d045dcb8c4before squash merge.