Repository navigation
Repair Toad-main Core API callers and sidebar worker typing - #1344
Merged
Merged
Conversation
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.
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
2 source commits carried on one PR; 5 files, +7/-6; 5 removed Messaging calls → 0; 22 assertion ASTs and all sender/target/body arguments unchanged. No new classes, adapters, fixture framework, or compatibility methods.
P972 migrates actual Toad main fea097d callers against Core main 3274448901ece95c671110cbf8c1bb6e6b765136. Source-only author proof; application acceptance remains with the integration owner.
Message publication: before / after
Before, four read/unread tests called deleted
Messaging.send_messageand expected a full Message. Core's existingMessaging.sendalready owns registered agent lookup, executable-role validation, sender incarnation and publication; itsSendResult.messageis the committed full envelope (src/agent_comms/messaging.py:62–110).After, each test calls
Messaging.send(original_sender, original_target, original_body).message. The existingWorkspace.thread(tests/support/workspace.py:41–52) declares every original sender; no Workspace change is needed. Actual human UI sends keep the existingsend_user_messagepath. No agent message is relabeled human; sequence, view key, sender, role and source evidence remain on the real envelope.Deleted: five obsolete API selections. No behavior-owning class changed, and no duplicate send helper was introduced.
Consumer closure and preserved behavior
tests/app/test_channel_display_basis.py: hidden DM and channel history retain their original authors; visible-only marking and hidden expansion assertions unchanged (5 assertions).tests/textual/test_saved_view_read_only.py: union history still uses the three real committed envelopes; read-only submission, unchanged wire bytes and pin assertions unchanged (4 assertions).tests/textual/test_divider_only_viewport_stays_unread.py: divider-only unread case uses the real final Message (5 assertions).tests/textual/test_channel_partial_paint.py: partial painting, scroll-to-read and style-switch identity assertions unchanged (8 assertions).git diff --checkpassed. NRAModuleSyntaxIndexinventory before/after parsed 632 source modules and 2,099 class declarations with zero parse omissions (all Toad src/tests plus selected existing Core owners). It records lexical imports, inheritance and relevant consumers; dynamic reflection/runtime alias resolution is not proved. Removedcomms.messaging.send_messagesites: 5 → 0. Both legitimate Textualapp._driver.send_messagesites remain unchanged. A separate AST comparison proves all 22 assertions and all five original argument lists unchanged. These are source checks, not execution.Evidence retained under
/home/ts/.cache/agent-scratch/awareness-schema/:p972-source-{before,after}.json, corresponding logs, andp972-assertion-proof.json. One-shot collector is retired after recording its hash before delivery.Actual main versus companion-only drift
ReadCommanderUnitatui_model/observation.py:432; Toad main's import is therefore not a removed-main-API failure. Core #3566 and Toad Integrate owner reads and common queue presentation #1319 own its paired replacement. This PR neither restores a compatibility API nor prematurely applies that unmerged companion.HudRecord,message_partsandagent_comms.nominalhave zero actual-main Toad source/test references. No unmerged nominal package is imported.DetachedChildStdiofixture migration. Exact-head hosted run 40987997770 at this PR's ab6e7f8 collected 696 tests and stopped on one ImportError attests/textual/test_compaction_turn_events.py:12(construction at :24 insideSpawnedProcess.launch, not ProcessCommand.start). Actual Core origin/main a8b8b95709c4b110c69a1fea9f11ead880e09df6 has zero DetachedChildStdio references. OPEN Core #3619 head 27d6b5691aeaff357335f61728a205b5aa2079b0 declares it atnative_build_inputs.py:93, preserving DEVNULL stdin and the existing configurable stdout/stderr. The class was not deleted: the fixture caller landed before its declaration. install-speed retains #3619's declaration and related review repairs; root owns matched integration. This PR does not restore old stdio keywords, add compatibility code, or duplicate that author's API. Source and hosted failure evidence were sent to install-speed and root._row_mounting: Worker[None] | Noneatsidebar_tree.py:242. This deletes the false inferred always-None field contract; it changes no mounting decisions. The author read its exact diff, fast-forwarded the owned P972 allocation to that carrier, and added the Messaging migration there. The contributor explicitly stopped further pushes while this closure is owned here.submodulesduplicated at.github/actions/core-from-main/action.yml:43) before collection. Current Run Core's client ratchet entry, with the audit submodule it pins #1342 head is 9b9e28e and has a separate owner. No claimed suite result is derived from that failed setup. Older main run 39659981340 belongs to 43b0467, not the main revision repaired here.Exact-head hosted evidence and remaining red checks
The actual #1344/ab6 run 40987997770 is retained in
p972-ab6-hosted-failures.log: collection reached 696 tests, then the one missing-declaration import above caused exit 2 after 5.72 s. This is not a green suite, and no tests executed in that collection job.The SAME run's production debt job exited 1:
NoneAbsence:src/toad/widgets/sidebar_tree.pygrew 9 → 10, introduced at line 242 by the suppliedWorker[None] | Noneannotation. Existing slot guards are at :394–397; its only other lexical consumers aretests/textual/test_channel_member_mount_lifetime.py:26–29andtests/textual/test_sidebar_rows_in_steps.py:65/:87. Root was notified while exact-head review remains open. No counter rebudgeting, spelling trick, compatibility wrapper or author ratchet run was used. This red needs an owned source decision before full acceptance, not an invented pass.The PR remains source-delivered, NOT complete API/application closure. These exact-head results supersede the older setup-only run for current failure attribution; that older failure is retained as historical evidence.
Required integration proof (author UNRUN)
Root/Claude owns one necessary combined collection and app execution under the native test lease: the four affected paths, actual current-main commander import/open, ordinary conversation open, visible-only read marks, saved-view read-only behavior and tab return. Then exact-head review, queue landing and installed acceptance. No author pytest, ratchet, provider/runtime launch, package/environment change or input replay was run.
Assumed: the existing registered agent role and SendResult.message contract are intended; this is the explicit P972 order, not an invented sender policy. No performance improvement, merge, install or live usability is claimed.