feat(proof): classify Realtime finalization failure - #473
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe change adds bounded diagnostics for incomplete Realtime connections. Finalization classifies incomplete lifecycle states, while cloud Playwright validates and attaches matching diagnostics to route failure receipts. Tests cover contracts, sanitization, immutability, malformed inputs, and diagnostic precedence. ChangesRealtime diagnostic flow
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant RealtimeConnection
participant LiveEvidenceFinalization
participant CloudPlaywright
participant RouteFailureReceipt
RealtimeConnection->>LiveEvidenceFinalization: provide lifecycle state
LiveEvidenceFinalization->>LiveEvidenceFinalization: classify incomplete conditions
LiveEvidenceFinalization->>CloudPlaywright: expose realtime incomplete diagnostic
CloudPlaywright->>CloudPlaywright: validate and normalize diagnostic
CloudPlaywright->>RouteFailureReceipt: attach matching failure receipt
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/product-proof-live-evidence.test.mjs`:
- Line 7902: Update rawDetailPattern in the generated-identifier assertion to
derive its match from the current loop variable, allowing all
mediated-${incompleteClass}-secret and cdp-${incompleteClass}-secret forms,
including multi-segment classes. Replace the fixed token alternation while
preserving matching for workspace-secret and realtime:public.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 743aeb33-3d86-42ee-8e5f-2595ed2b9fb3
📒 Files selected for processing (4)
scripts/product-proof-cloud-playwright.mjsscripts/product-proof-cloud-playwright.test.mjsscripts/product-proof-live-evidence.mjsscripts/product-proof-live-evidence.test.mjs
Purpose
Classify the existing fail-closed
live_realtime_incompleteproduct-proof result with one fixed, sanitized Realtime lifecycle class so the next governed staging run can identify the narrow repair target without weakening acceptance.Included scope
cdp-unmatched,handshake-missing,cdp-open,mediated-open,pending-references,sent-frame-mismatch,received-frame-mismatch, ormultiple.live_realtime_incomplete.Explicit exclusions
Architecture placement
Current owner / directory: existing product-proof live recorder and cloud Playwright diagnostic consumer under
scripts/.Dependencies and duplicate-system check: extends the existing finalize diagnostic latch and exact route-diagnostic normalizer; no second recorder, transport observer, or evidence schema is introduced.
Security and tenancy impact
Data impact
Verification
Release safety
174c6639f629b699f7681f5c37e960c9e5ba224b; current exact main predecessor isbea447e7adf01f6a1f7e24dd5f43f2b3c11d99dc; failed governed proofs remain unpublished and cleanup/recovery remain authoritative.Documentation and generated files
Completion check
origin/main.Policy exceptions (leave blank when none apply)
PR-size exception rationale: four files and one coherent diagnostic-only safety change; 492 of 615 added lines are adversarial producer/consumer tests needed to prove that fixed attribution cannot expose raw Realtime data, cross-bind error codes, or mask an earlier safety failure.
Retained branch reason / owner / review date / maximum retention date:
Summary by CodeRabbit
New Features
Bug Fixes