Skip to content

Restore original thread panels and lazy inherited settings editing - #1764

Merged
trissim merged 2 commits into
mainfrom
fix/viewed-object-panels
Nov 13, 2026
Merged

trissim merged 2 commits into
mainfrom
fix/viewed-object-panels

Conversation

@trissim

@trissim trissim commented Nov 13, 2026 •

Copy link
Copy Markdown

Restore the original viewed-object bar (P219)

  • Original SessionPanel declarations retain inbound/outbound, parent/forks, context and project views. ThreadDetailsPanel supplies the same original diagnostics in DM views; a separate ThreadIdentityScope keeps the peer distinct from the sending actor. Current/retired references preserve peer birth.
  • Shared CommandForm owns preparation, validation and confirmation in both modal and sidebar presentations. Both submit through the original ThreadAction writer. Backend ConfigurationCommand membership discovers settings, including the existing rule-gate form.
  • Raw ObjectState None shows a muted inherited preview. Typing/selecting creates an override. Reset uses the original parameter signature and original save owner. The Override here switch is deleted.

Focused result

P219 source checkpoint

Original viewed-object consumer passed 1/1 in 13.50s, exit 0:
/home/ts/.cache/agent-scratch/codex-latency/viewed-object-repair/consumer-4.log

It checks lazy inherited placeholder text, typing the same inherited value as an explicit override, upstream changes preserving the override, Reset returning to raw None and the current inherited preview, global-field saves, separate channel/file identities, shared context editor state, actual changing ACP advertisements, every original native SessionPanel member, a real rule-gate form and its original backend write, DM peer birth versus actor identity, and hidden-panel observation lifecycle.

Applied owners

  • ConfigurationCommand membership stays on the existing Core configuration commands. ConfigureCliCommand now uses the original named target/action contracts and its unchanged writer; ThreadConfiguredResult uses the target-edit result contract.
  • CommandForm owns preparation and submission in modal and sidebar presentations. Both use ThreadAction.submit. Native constraints stay on the original command decoder rather than being copied onto the encoded text draft.
  • ThreadDetailsPanel shares the existing diagnostics/relationship declarations with DM views. ThreadIdentityScope keeps the panel subject separate from the sender; current/retired references retain peer identity. Native context/project/plan owners remain intact.
  • ValueEditor derives preview styling from original raw/resolved values; no override flag or second resolved store. Reset uses ObjectState.reset_parameter on the original writer. The Override here switch is deleted.

Red history retained

consumer.log: helper could not move fds above the shell's 1024 limit; no UI proof.
consumer-2.log: preview style used an invalid empty flag; newly declared peer then missed by a registry read after the app observer started. Store failure reported to claude-laptop as message b65fcca1edb0. The peer fixture is now declared before opening the app.
consumer-3.log: numeric native constraints were incorrectly applied to editor text; rule-gate write refused. Fixed at the shared encoded-editor boundary, preserving original command decoding/validation.
consumer-4.log: passed.

Cold Toad/Core import and MRO passed; original panel family lists all five members and its two shared thread-details members. Native plans and apply logs retained. Existing unrelated guarded annotations remain unchanged; the touched lazy CommandDialog import was promoted to a module import with cold import proof.

No installed or physical-success claim at this checkpoint. No total CPU claim. No subagent, profiling, broad suite or provider request.

Installed and physically viewed

P219 installed result

Core #4687 merged as f71b89f99f28f38f3688e2524c050952e6842a4a.
Toad #1764 merged as 27b54aa.
Installed together in core-f71b89f99-lock-afe2a6d8e0a009a8. Exact installed source matches the tested editor, reset, command form, panel menu, peer sidebar, configuration declaration and command writers. Fresh bus delivery was answered by parallel-pi as 15047-9052131f682d, answering 15046-18a6faa348b4.

Original view-menu consumer: 1 passed in 13.50s, exit0. consumer-4.log contains the result; previous reds remain alongside it. The source/consumer report is .verification/viewed-object-repair/delivery.md in the Toad checkout.

Physical check

Successful actual installed Toad run: physical-v4/ in this evidence directory. Plain st on its own Xvfb display, copied bus, private frontend home/config/state/data. The controller selected the existing gutter with a real mouse click, opened the original panel dropdown, selected User interface settings, and clicked the original Reset control.

Viewed screenshots:

  • physical-v4/frontend/discovered-entries.png: original Thread, Comms, Plan, Project and Context entries alongside discovered settings.
  • physical-v4/frontend/inherited-previews.png: muted inherited column-width value and inherited checkbox, source labels and Reset controls; no Override switch.
  • physical-v4/frontend/after-reset.png: Reset retains the inherited preview.

The original UI consumer, not this physical copy, verifies the rule-gate form and actual backend save. CheckRoot intentionally does not copy the live rule deal or read evidence. DM actor/peer separation and channel/file isolation were also exercised by that original consumer.

Physical startup/control errors are preserved: physical.log lacked an explicit source root; physical-2.log exceeded the default framebuffer; physical-3.log incorrectly waited for native-agent readiness in an external CLI mailbox; physical-4.log incorrectly expected Ctrl+B to open the thread bar: ShowSidebarAction at src/toad/view_actions.py:28 explicitly reveals workspace_chrome.channels. The key worked on its declared Channels owner; this was a controller expectation error, not a keyboard product bug. physical-5.log passed using the original mouse gutter path. No product source was changed for those controller errors. Each failed run's owners retired its processes; physical-v4 has final st/Xvfb/journey/private-root retirement records.

No provider prompt was sent. No user desktop or user process was touched. No total CPU improvement claimed; CPU remains with claude-laptop. A later unrelated Core install moved current to 48b957826 with the same Toad lock; this physical proof names its actual f71 runtime.

Core accepted order 2ff7e43a8851 as delivered through order done codex-live P219, exit0. No delegated implementation or subagent was used.

Copilot AI balanced review requested due to automatic review settings November 13, 2026 06:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

debt-src at 5929421 failed without a verdict line; the last lines of its stderr:

  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 2556, in close
    self.stop_sync()
    ~~~~~~~~~~~~~~^^
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 2365, in stop_sync
    return SynchronousProcess.stop_together(((self, guard),), deadline=deadline)[0]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 2384, in stop_together
    outcomes = SynchronousProcess._stop_together(
        tuple((process, guard) for process, guard, _future in owned), deadline=deadline)
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 2427, in _stop_together
    waits.append(next(plan))
                 ~~~~^^^^^^
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 2009, in _stop_plan
    self.platform.terminate_group(self.identity)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 710, in terminate_group
    self.signal_group(identity, signal.SIGTERM)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/toad/toad/.core-gate/src/agent_comms/execution/child_process.py", line 786, in signal_group
    raise RuntimeError(f"Live process {leader.pid} was not signalled")
RuntimeError: Live process 4027 was not signalled
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/runner/work/toad/toad/.core-gate/tools/nra_client_gate.py", line 15, in <module>
    raise SystemExit(audit.gate.main(AgentCommsProject(Path.cwd(), CheckoutReader())))
                     ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/toad/toad/.venv/lib/python3.14/site-packages/nominal_refactor_advisor/audit/gate.py", line 1163, in main
    return gate(project, args.base, args.head, args.root, args.workers)
  File "/home/runner/work/toad/toad/.venv/lib/python3.14/site-packages/nominal_refactor_advisor/audit/gate.py", line 1136, in gate
    result = compare(repo, base, head, root, workers, Compared.members())
  File "/home/runner/work/toad/toad/.venv/lib/python3.14/site-packages/nominal_refactor_advisor/audit/gate.py", line 1103, in compare
    results[measure] = [part.result() for part in parts[measure]]
                        ~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.14.10/x64/lib/python3.14/concurrent/futures/_base.py", line 447, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.14.10/x64/lib/python3.14/concurrent/futures/_base.py", line 396, in __get_result
    raise self._exception
RuntimeError: Live process 4027 was not signalled

@trissim
trissim merged commit 27b54aa into main Nov 13, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants