Repository navigation
feat(cursor): add typed stopping consumer - #338
Conversation
Decode the pinned public Cursor Stop contract into private AN facts. Apply the Cursor config profile, existing bounded claims, fixed informational delivery and injected trusted authority. Installed lifecycle wiring remains a separate checkpoint. Refs #105
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe changes add Cursor to agent profile selection, introduce decoding and validation for Cursor stop events, and add a consumer for eligible events. The consumer applies channel policy, deduplicates delivery claims, and reports desktop and webhook outcomes. The installer heartbeat update and stale-lock test also change. ChangesCursor stopping events
Installer lock handling
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Consumer
participant Gate
participant RecentCache
participant Desktop
participant WebhookSender
Consumer->>Gate: Get enabled channels
opt Desktop enabled
Consumer->>RecentCache: Claim desktop event marker
RecentCache-->>Consumer: Claim result
Consumer->>Gate: Recheck desktop policy
Gate-->>Consumer: Policy result
Consumer->>Desktop: Deliver fixed notification
end
opt Webhook enabled
Consumer->>RecentCache: Claim webhook event marker
RecentCache-->>Consumer: Claim result
Consumer->>Gate: Recheck webhook policy
Gate-->>Consumer: Policy result
Consumer->>WebhookSender: Send fixed webhook message
end
Merge Risk: ⚪ Minimal · up to The Cursor consumer uses the supplied effective profile, with installation wiring separately scoped. The reported macOS lock-release assertion remains unverified and is not established as a blocker to normal installation. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 2 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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. I’m a rabbit with a cursor to chase, Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #338 +/- ##
==========================================
+ Coverage 65.85% 65.97% +0.11%
==========================================
Files 290 293 +3
Lines 31779 31920 +141
==========================================
+ Hits 20929 21060 +131
- Misses 7781 7786 +5
- Partials 3069 3074 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Maintain the existing heartbeat without recreating a released pathname. Preserve the stale-lock cleanup assertion and require acquisition success before fixture release. Refs #105
Preserve accepted upstream OpenCode history and validate Cursor against its updated public SDK graph. All nine Cursor and installer source blobs remain unchanged. Refs #105
Preserve the dependency stack and its verified checkpoints. Refs #248, #247, #246, #245, #244, #316, #319, #145, #307, #322, #323 Refs 777genius/agent-notifications#338
Preserve the registered research dependency stack. This is a source foundation checkpoint; native lifecycle qualification remains required before activation. Refs #308, #304, #310, #312, #313, #314, #315, #317, #320, #321, #145, #307, #247, #248, #246, #245, #244, #316, #319, #322, #323 Refs 777genius/agent-notifications#338
Refs #310, #308, #304, #324, #145, #307 Refs 777genius/agent-notifications#338
Refs #249, #248, #247, #308, #324, #145, #307 Refs 777genius/agent-notifications#338
Refs #250, #249, #248, #247, #308, #324, #145, #307 Refs 777genius/agent-notifications#338
Refs #251, #250, #249, #248, #308, #324, #145, #307 Refs 777genius/agent-notifications#338
…#310) Preserve the registered research stack and independently reviewed checkpoints. Retain original reservation receipts across post-await refusal and protect newer ownership during compensation. Native lifecycle qualification remains required before activation. Refs #310, #308, #304, #312, #313, #314, #315, #317, #320, #321, #145, #307, #324 Refs 777genius/agent-notifications#338
…253) Preserve local dependency source lifetime and both required native CI gates. Independent gpt-6.1-sol high review accepted the current source. All 16 jobs passed on the exact merge tree; organization checks passed. Native activation remains disabled. Refs #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve PR258 and PR257 histories. Genuine V1 logical-only captures close their cold handoff and use existing fresh canonical qualification; V2 physical retention remains unchanged. Independent gpt-6.1-sol high source review accepted the bounded correction. Native actual-caller qualification remains pending. Refs #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve original PR259 and current PR258 histories. All eight readonly custody foundation blobs remain byte-identical. Independent gpt-6.1-sol high source review accepted exact tree6543eed2fc9fad8c11e05d790af9932fd547972c. Readonly activation and native qualification remain disabled/pending. Refs #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve PR260 and current PR259 histories. The receipt-root conflict retains equivalent inode/private-mode/late root guards and both concurrent-publication regression sets. Independent gpt-6.1-sol high source review accepted tree6826b2eb13083b9b8d56b17b9ada36fc1bc1970b. Diagnostic Unknown and NotEstablished do not authorize native readiness or cleanup. Refs #260, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve PR261 and actual PR259 parent histories. Receipt-root custody guards and the generation retirement verifier both remain intact. Independent gpt-6.1-sol high source review accepted tree2ed126c531df4e1a51caf82e9746144dd117592f. Readonly activation and native qualification remain pending. Refs #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve original PR262 and current PR261 histories. All eight own blobs remain byte-identical. Independent gpt-6.1-sol high source review accepted tree4d65e7a3d7c1d100c10e37e102430dff73988e28. FD/system-bus authority guards, root custody, retirement verifier and cold V1 fallback remain intact; native qualification is pending. Refs #262, #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve original PR263 and current PR262 histories. All four own blobs remain byte-identical. Independent gpt-6.1-sol high source review accepted tree8ef9508c1603c0eae7cd6554f4b8059a761baf0b. Root Git profile, FD/mount/custody guards and V1 fallback remain intact. Actual native pin/helper/provider qualification remains pending. Refs #263, #262, #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Restore nine unchanged parent storage-accounting paths while preserving all eight reviewed custody postimages. Refs #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338
Compose current main while preserving the inactive readonly custody checkpoint. Reuse the existing custody workspace validator for version 3 owners, rejecting secret-like and control-bearing paths before CAS mutex or durable publication. Preserve version 1 and 2 parsing and add eight parser/store regression cases. Refs #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve the reviewed inventory DATA checkpoint while composing the exact current PR261 parent and its v3 workspace validation. No activation or native qualification is added. Refs #262, #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve the four Root Git profile files while adopting the current read-only inventory parent without expanding installer authority. Refs #263, #262, #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Adopt reviewed native-web receipt and bounded-storage Source changes while retaining both core exports and the version-three custody parser fix. Refs #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #348, #325, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Preserve accepted readonly origin and continuity guards while retaining the actual merged custody, settlement and Native NEWTEST parent histories. Refs #261, #259, #258, #257, #256, #255, #254, #253, #252, #251, #250, #249, #248, #247, #244, #310, #319, #307, #145 and 777genius/agent-notifications#338.
Scope
Thin Cursor Stop decoder and consumer using public typed SDK, existing AN bounded claim/deadline cache and an injected trusted authority gate. Fixed informational stopping text for completed, aborted or error. Real schema2 Cursor profile isolation without borrowing another agent or global opt-in.
Current head
638e1c430e91898c6b1359ae28565e9549030720, based on accepted main2813f2ebcedd5f8625364dfa341810344a348f4d. Nine owned files, 1,086 changed LOC: seven N1 source owners and two existing installer shell owners. All nine exact approved blobs remain unchanged while preserving accepted upstream history and public dependency graph.Independent source review and focused verification
Final CI and limitations
Merged as
b940b7a514ef934a95032f68878b89b40491a564after all 20 actual final-head contexts passed on638e1c430e91898c6b1359ae28565e9549030720. One Windows1.25 job was cancelled before steps and had no available log; only that undemonstrated job was rerun successfully. Successful current-code gates were preserved, including macOS installer E2E. Independent source approvals, all nine owned blobs, owner author/issue link and original head ancestry were verified after merge.No affirmative installed physical proof, setup enablement, native E2E, release or new target is claimed. This checkpoint prepares the fixed injected effect boundary for the separately scoped installed Cursor vendor adapter and existing lifecycle composition. No new SDK, OS writer, event bus, lease or storage subsystem.
Refs #105