fix(notify): restore D022 transcript comparison - #123
Conversation
Expose the D022 transcript fingerprint only for pending authorizations in the explicit local diagnostics list output. Derive it from the durable app-request and helper-accept digests, fail closed on malformed pending state, and remove it from active rows so activation can require the exact operator/app comparison.
Advance the immutable helper release manifest and all version-pinned installer, workflow, policy, compatibility, and rollout references to 2.0.1. Keep notify-v2.0.0 unchanged, retain notify-v1.8.0 as the fixed rollback baseline, and make release notes version-derived for future patch publications.
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe release updates helper references from 2.0.0 to 2.0.1 across metadata, installers, workflows, tests, and rollout documentation. Diagnostics listings now show transcript fingerprints for pending authorizations and reject missing state digests. ChangesHelper 2.0.1 publication rollout
Diagnostics pairing transcript
Estimated code review effort: 3 (Moderate) | ~20 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 |
Keep the scheduled published-image scan on the last public immutable release while helper 2.0.1 is absent, draft, or prerelease. Fail closed on lookup or metadata errors, revalidate the selected public release, and preserve digest-only scanning.
Summary
diagnostics-docker.sh listoutput while an authorization is pendingnotify-v2.0.0tag or artifactsnotify-v1.8.0as the fixed rollback baseline and make generated release notes use the manifest versionReason
Decision 022 requires the app user and local operator to compare the same 12-character transcript fingerprint before the app sends type 3. Helper 2.0.0 computed this value only in tests and did not expose it to the operator. The capable app milestone therefore cannot activate pairing truthfully against 2.0.0.
Scope
This PR changes only the local helper admin display, its tests and operator documentation, plus version-pinned helper publication metadata for 2.0.1. It adds no endpoint, listener, discovery, trust adoption, namespace creation, transfer artifact, app runtime, Relay change, or Decision 024 change.
Local verification
cd notify && go test ./...cd notify && go test -race ./...cd notify && go vet ./...cd notify && govulncheck ./...ruby .github/scripts/notify-publish-safety.rbnotify/scripts/tests/install-dry-run-test.shgit diff --checkAll passed locally.
Security, privacy, and secrets
The transcript fingerprint is comparison UI, not a credential. It is emitted only by the explicit local operator command while state is exactly
pending; active rows omit it. Invalid durable digest state returns unavailable instead of displaying a derived value. No QR body, bootstrap secret, key, binding, nonce, signed body, path, or token is logged or added. No scanner exception or security gate is weakened.Existing-user and compatibility impact
Existing app/helper/Relay behavior remains dormant and unchanged until explicit diagnostics configuration and pairing. Old apps ignore the capability. Helper downgrade makes diagnostics unavailable without deleting credentials, namespace data, backups, versions, conflicts, or tombstones. Trigger v1 and Relay v1 stay wire-compatible.
Migration and rollback
Publication is not performed by this PR. After merge,
notify-v2.0.1must be created from the exact verified merge commit and pass the owner-gated immutable image/binary, SBOM, vulnerability, secret, upgrade, rollback, forward-recovery, and post-publication gates.notify-v2.0.0remains unchanged; rollback remains the exact published 1.8.0 baseline.Evidence boundary
Upload, download, and roundtrip product evidence remain unset. Cleanup remains evidence-orthogonal. VaultSync 2.0 remains NO-GO.