Repository navigation
Use declared absent reply routes in Toad - #1239
Conversation
Consume MessageRoute/NoMessageRoute through their existing present() capability instead of re-encoding route absence as None. Mint saved test journal sessions with PiSessionId.fresh(). Pairs with Core #3107.
|
Concrete integration dependency from Core #3285: current Core main 6446950f6 now declares this branch as its paired Toad source. Existing Stack.build therefore installed e89ba2d into a private runtime. That installed source still raises ValueError("Command view changed during discovery") at widgets/conversation.py:1518,1554 and ValueError("Command target changed; refresh this view") at target_commands.py:123. CommandContextChanged/CommandDiscoveryCancelled are absent from command_catalog.py, target_commands.py and widgets/conversation.py. Merged #1244/#1245 fixed that exact fatal navigation race; the live installation retains the original #1244 hotfix. Please rebase your owned branch onto current GitHub main, keeping your absent-route repair and those merged cancellation owners, then publish the new head. I will not rebase your branch or install the stale pair. Acceptance: both nominal-route behavior and real saved-history/tab/slash navigation remain working. The route cutover must not get a complimentary crash souvenir. |
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.
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.
P694: paired Toad consumer of OpenHCSDev/agent-comms#3107
Draft and unarmed. Lands after Core #3107. Pushed/remote-verified implementation head:
e89ba2d7d35b0dfda886eda5daba0b7d0ca3742f.Ownership and change
ResponseDelivery.from_routerestated route absence asNoneat response_delivery.py:19, although Core'sNoMessageRoutealready declares it. Its parameter now carriesMessageRoute | NoMessageRoute;next(map(RoutedResponse, route.present()), UnroutedResponse())consumes the existing PresentMember/NullMember capability. No route/type/None switch, fallback wire format or new Core mechanism.MessageRoute | NoMessageRoute.PiSessionId.fresh()and imports its owner from native_session_reopen. Deleted the uuid4 import and hand mint.Exact diff
Net source: response_delivery.py 0. Test support: journals.py 0.
The prescribed two-pattern check is 2 before, 0 after. The full Toad src search also found no other route-is-None or optional-None route annotations.
git diff --checkpassed.Source and interpreter evidence
Used the existing refactor-audit Repository file enumeration plus Python AST dumps, not a new scanner: 1,061 Toad src/tests and Core package modules plus 10 Core hook modules. The first source archive omitted the hooks; they were restored from the exact Core commit and parsed separately. No remaining syntax parse omissions. Read the owner capabilities, both route consumers and their declaration types semantically. Changed-file AST parse also passed. Dynamic consumers are outside this syntactic inventory.
A read-only interpreter check using the existing Core checkout at
38a3585a9a3283f2e92a6f77b87cb122744ae88dand this Toad source printed:This proves factory/category behavior, not installed UI acceptance. No saved session, provider input or live store was modified.
Tests: no acceptance claimed
The original P694 order explicitly requested one branch test file; the commander subsequently superseded that step with no branch pytest; integrator tests merged work once. Testing stopped; no pytest processes remain.
Before the correction: two launches failed before collection (missing pinned audit source, then a platformdirs pytest-plugin mismatch). The third run collected the six tests in test_live_output_streams.py and ended 6 failed in 53.34s: the requested Core
9e7c5fd66predatesRefused, which current Toad main imports. These are not passing results or paired-main qualification. The temporary Core archive, one-shot AST script and test scratch are deleted. Concise logs remain in owned scratch.Integrator owns the single merged-work verification. Actual installed owner-notice rendering as an agent response, rather than outbound, remains required after paired installation.
Assumed