Repository navigation
fix(cmux-next): track live questions and fence stale recovery - #26820
teamleaderleo wants to merge 10 commits into
Conversation
Default changesThis pull request changes 1 default at
Needs a review. It passes with an independent review receipt on this commit: a comment or review whose first line is Regenerate the snapshot with |
|
Bead |
|
Found 11 test failures on Blacksmith runners: Failures
...and 1 more test failures. View all on Blacksmith
|
139f3ea to
36401b0
Compare
4d7dc4a to
d83764f
Compare
Source regressions added first; native execution remains held by Swift HOLD26809. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
Retire watcher settlements from their real summary carrier, preserve the highest observed session sequence through lag, and require one current native relay token to restore a complete pending snapshot. Detach and watch-off retire pending authority before the subscription changes. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
Source-only regressions under native Swift HOLD: attach filtering cannot own coverage, stale watch acknowledgments fail, same-connection questions continue, and seq-zero peer notices revoke. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
Opening keyboard membership requires a native-correlated watch ACK; attach filters never own settlement coverage. Peer stale/purge revokes before historical sequence checks, and fresh complete reads fence recovery while newer genuine asks retain continuity. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
d83764f to
a7a0439
Compare
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Passes: CI passes on CI passes on Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 8546434 to compare; do not merge until green; see lane-rules |
Source-only regression under Swift HOLD: watch-off/detach needs a fresh read, unchanged watermark can restore current pending identities, and settled floors or uninterrupted absence cannot reopen. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
A post-gap native-correlated complete read may restore unchanged pending requests without lowering sequence or retirement floors. Agent-Session: https://cmux.com/deeplink/agent?id=aid-eb13e936fc1b3752c7c7
|
Owned by an agent session · session |
|
Closing: this was stacked on #26851, which was closed as abandoned on 2026-11-01 (a standalone correlation primitive with an open P1, and nothing calling it). Whatever needs live-question tracking should build it where the question reads live (acpmux), against the current base. (pr-backlog-sweep) |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Question-card Other keyboard answers require proof that the exact question is still pending. Historical permission keys and nonces cannot establish current membership. This prerequisite adds a connection-scoped native ledger, with no renderer binding or gesture ticket.
An acknowledged
_acpmux/watchsupplies unfiltered settlement coverage. Attach snapshots and permission_pending notifications cannot open keyboard membership before that native-correlated ACK: eventStream/kinds can hide lifecycle events while still delivering pending. Watch-off immediately revokes coverage and all entries. Attach replacement cannot create coverage. The shipped SessionPager awaits_acpmux/watch {enabled:true}replies.Only live daemon pending notifications and complete pending snapshots can open entries under that watch coverage. Normal watch summaries contain pendingPermissions rather than request identities: zero may retire, a positive count cannot reopen. Watcher settlements retire current entries and invalidate earlier reads; a genuinely newer pending notification can open the next question on the same continuously watched connection.
Lag and peer stale/purge retire entries and require a fresh native-correlated complete read. Peer lifecycle invalidation is handled before event sequence checks because the daemon emits those notices at seq zero. Stale summaries/snapshots and delayed pre-gap replies cannot restore membership. Highest observed event sequence survives recovery; history never opens a question.
Each Question retains its exact canonical native request, nonce, daemon instance, and generation. Later integration must redeem the private renderer snapshot and recheck the exact Question after the await and at ticket consumption. This ledger does not repair Other Enter by itself.
Stacked base: pure read-epoch prerequisite #26851, branch
lane/nx-question-read-epochs-1028, exactab9124d2e998b8443489850394334b21d17983aa.That prerequisite stacks on pure validator #26837, exact
0812231ec3dae1b370726bbd530fb4a5b0f73b8a(original feat base8424d05bf9324f6f60a8f0c7c40b01f8a3e085b9).Lawrence, via Leo:
Head:
01b2c36233d1c3b6684052745712e3ed10a6356e.Complete ledger-only diff over the stacked base: 853 added / 7 removed lines in eight files (860 changed lines). All 439 lines of lifecycle source tests remain; the coordinator accepted this coherent about-800-line boundary.
Validation:
git diff --checkandpython3 scripts/cmux-next/prepush-gate.pypass at this exact head.f57505a3e9b: watch-off/detach recover only current identities from a fresh read, while delayed pre-gap responses, uninterrupted absence, and settled retirement floors still refuse.swift test --package-path Packages/macOS/CmuxNext --filter AcpmuxPendingQuestionsTests.The question_other_answer lane owns final verification with the root coordinator. This remains draft pending prerequisites, fresh exact-head security review, and required native verification. No merge is requested.
Changelog
none
Agent session: agent session