Repository navigation
feat: release gate, contract drift detection, setup diagnostics and session revocation - #380
Merged
github-actions[bot] merged 1 commit intoOct 18, 2026
Conversation
…ession revocation
|
@privexlabs Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Code Review & Auto-Merge — @dorismaduegbunam 🚀Thank you @privexlabs for your contribution!
Verified code changes and repository requirements. Merging pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
One focused vertical slice per issue, each reusing the existing modules instead of adding parallel ones.
Changes
src/common/release/release-gate.tscombines test results, migration safety (existingverifyMigrationReadiness), and a recorded rollback rehearsal (presence, outcome, age, required fields, rollback safety) into one PASS/BLOCKED decision. Waivers need an ADMIN approver and a reason and apply only to their own gate.npm run release:gate -- evidence.jsonexposes it to CI. Documented indocs/RELEASE_READINESS.md.detectContractDriftinsrc/common/contract/cross-service/compares a released baseline with the cross-service contract map and reports removed events, producer changes, required-field and payload-type changes, removed consumers, version regressions, and breaking changes without a major bump. A major bump acknowledges breaking findings. Documented indocs/CROSS_SERVICE_CONTRACT_MAP.md.scripts/diagnostics.tsgainsenv:template-drift(names of.env.examplevariables missing from.env, never values) andenv:PORT(invalid or in-use API port), backed by tested pure functions insrc/diagnostics/diagnostics-checks.ts. Documented indocs/DEVELOPER_DIAGNOSTICS.md.TokenBlacklistServicegains a per-subject session cutoff (revokeSubjectSessions,isSessionStale; Redis-backed with local fallback, forward-only).JwtStrategyrejects stale sessions andPOST /auth/logoutrecords a cutoff so access tokens on other devices stop working. No API shape change or migration. Documented indocs/SESSION_REVOCATION.md.Each doc covers edge cases and recovery/rollback. Existing contracts are preserved; the new behavior is additive.
Issues
Resolves #372
Resolves #371
Resolves #370
Resolves #369
Verification
Manual code and diff review only. Unit specs were added for every change (release gate, contract drift, diagnostics checks, token blacklist cutoff, JWT strategy) covering normal, failure, retry, and authorization paths.
cargo buildandcargo testwere not run, and no other build, lint, or test command was run either, so the new specs have not been executed.