Repository navigation
Integrate typed goal refusals and retained queue controls - #1390
Merged
Merged
Conversation
…heir API LiveQueueScope.session_id is AcpSessionId; the helper passed a str. TurnOwner.response_stream and ResponseStream(turn_id=) no longer exist since 94eda01 grouped text by its append claim; the tests now take streams from CommsUpdateConsumer and vary source_claim. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbFMSpSd8zQxyozgEV2Re7
Preserve 55cf042 and main nominal move. Resolve only import conflict and migrate the one remaining LiveQueueScope test producer to AcpSessionId. No production changes. Source map: 1300 parsed modules, syntax-only closure. Integration owner still owes combined three-path check; no pytest run here.
…eue-refusal-and-salvage
…eue-refusal-and-salvage
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
…eue-refusal-and-salvage
…eue-refusal-and-salvage
…eue-refusal-and-salvage # Conflicts: # tests/textual/test_goal_owner_views.py # tests/textual/test_painted_read_maintenance.py
…eue-refusal-and-salvage
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
27 files, +272/-92 against main. Preserves the original refusal checkpoint and #1378 salvage ancestry. Paired Core: OpenHCSDev/agent-comms#3816, exact head
890cca9e8901622dd295b990255064c8beb970e5. Toad checkpoint:ce213aedd93bfb3f952e3916c59efceeaee50c60.This is the refusal/queue-crash checkpoint and retained test migration, not completion of native/channel/CLI queue unification. The expanded implementation, editor intent, cancellation and long-reply source acknowledgement remain with pi-toad-errors on #1389; those later production changes are not silently included here.
Goal refusal: keep the actual capability
Before: a
RuntimeError/Refusedresponse was relayed throughValueError, and UI callers interpreted goal-failure strings again.After: Core's existing
Refusedcapability reaches owner RPC and UI unchanged.GoalRefused(Refused, RelationViolationError)preserves both contracts. The string relay/policy is deleted; unexpected failures still escape and owner readback still occurs.Source views and notification evidence
Before: sibling goal/queue modals repeated composition and lifecycle work; source contracts claimed generic widgets could publish Core events.
After:
GoalDetailsandQueueInspectioninheritSourceModal, sharing existing event/project/dismiss behavior. Its source requires the actualCoreEventReceiver;VisibleReadMarkinginheritsToadNode. Dependencies are ordinary runtime imports, not guarded-import facades. Live outgoing entries derive original message references and existing notification status; captured display identities and fabricated queue evidence are not substituted.The painted-read worker reports real maintenance refusal without claiming the mark succeeded. Its application control uses the actual barrier/read ledger and fresh work after relief; it does not certify every cursor-admission path.
Notifications must not cover active controls
An actual enabled
GoalControlat Region(73,31,5,1) hit an informationalToast, andpilot.clickreturned false. The original Button-selector/active-effect assumption was wrong; an unsupported wait would only hide the obstruction.The existing ToastRack now reserves bounded bottom space in the default layout layer (
split: bottom, no independent dock), rather than painting over controls. Nine CSS insertions; notifications remain interactive. The refused-goal application control now passes with the real control and unchanged refusal/draft assertions.Preserve existing salvage and current lifecycle callers
Original #1378 commit
55cf042fremains in the preserved ancestry through2dc2102b. Tests consume currentCommsUpdateConsumer, captured claims, standalone completion and nominalAcpSessionId; deleted APIs are not resurrected. Three removedOwnerLifecycle.startfixture calls migrate tostart_many(tuple).Native send-now control declares its actual interruption
The saved failed attempt proves Send now deliberately aborts request1 before the selected queued input starts: first input -> assistant
stopReason=aborted-> original queued native input -> second answer. The control had required that deliberately aborted provider stream to stay open.The isolated final test correction uses the provider's existing request-specific
expected_disconnects={1}contract, additionally asserts the saved first answer was aborted and exactly two provider requests occurred, and keeps every original saved-input/history/reconnect assertion. Other disconnects and provider errors remain loud. No production queue behavior changed in this correction.Verification and preserved failures
ce213aeddpassed 1/1 in 33.87s, exit0; that last commit changes only this control, not production.cli_native_package qualify. No handwritten entrypoint or installed-package patch.Artifacts are retained under
/home/ts/.cache/agent-scratch/pi-commander/heartbeat-publication/:paired-core-controls.log, priorpaired-*-controls.log,paired-remaining-three.log,paired-prepared-native.log, andpaired-interruption-control-review.log/paired-interruption-control-integrate.logand the finalpaired-interruption-final.log/.rc. Actual command exit codes/counts accompany each run; source maps/imports/MRO evidence are not installation proof.Delivery boundary
Commander owns the remaining combined qualification, paired Core/Toad landing, installation and affected installed-path acceptance. No full suite or local NRA gate ran. Original sessions, drafts, undo, history, reader positions, phone SSH Toad and editors are preserved. This PR does not close P867, mobile #1391, the shared physical-run owner, or expanded queue #1389.
Assumed: #1378's current claim-separation/queue-replacement intent remains required by its production ingress. Native Send now intentionally interrupts the held model request, as the existing Core/native implementation and saved attempt establish. No sandbox/source/component result is presented as installed acceptance.