Skip to content

Commander board with derived commit cadence - #1937

Closed
trissim wants to merge 28 commits into
mainfrom
feat/cn-phase6-page
Closed

trissim wants to merge 28 commits into
mainfrom
feat/cn-phase6-page

Conversation

@trissim

@trissim trissim commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Commander board and derived cadence (P243; duplicate P245)

Paired UI: OpenHCSDev/toad#1080 at 83393d08a. Core implementation checkpoint: ca9c4f881.

/commander <commander-thread> shows open orders, deadlines, delivery state, overdue-first cards, expanded original turns/commits, and alarms. The collapsed cards now display next-commit cadence and deadline margin. UnitCard.momentum (src/agent_comms/ui_model/commander.py:105) derives CommitMomentum (src/agent_comms/todos.py:274) from order times and bounded actual branch commits. Unknown cadence is not a zero timestamp. No momentum is stored and no timer or separate scorer was added.

Commit cadence does not establish remaining work: the UI explicitly labels completion unknown. Full parity row 27's prediction/outcome comparison remains unverified; pi-plan-claims owns its binding in #1992. No parallel parity registry or plan_phases.py edit was added here.

Ownership repairs

  • Retained Core's canonical Todo/order/identity and observation owners; Toad renders only.
  • Adopted main's PresentCheckout/MissingCheckout capability family. Reverted P254: own PR integration states and finish record-plane checks #1935's competing source changes.
  • CheckedProblemOrder owns numeric order-time normalization across its consumers.
  • Progress selection has one implementation. Page reads never execute acceptance checks. Actual GitHub command errors/timeouts are displayed; other source/Git failures propagate.
  • Removed the FailedProgress isinstance filter. DeliveryProgress variants select their own failed notifications, retaining the original notification object.
  • Removed Conversation's cached optional GoalBar assumption; its actual composition supplies resize capabilities. The real bus-to-commander journey no longer shows a goal_bar traceback.

Checks

  • Stable broader batch: 142 passed in 72.67s.
  • Current failure-owner change: 10 commander-model checks passed in 1.88s.
  • Existing outer timeout 300 ... -X faulthandler enforced; pytest-timeout plugin warning only.
  • Ruff for the model and diff checks pass.
  • AST source/consumer evidence across both production roots reports zero parse omissions. Production page has no family type filter or string identity switch.
  • Ratchet baseline is the branch's integrated main b793c7325; no subsequent merge-main or rebase was done. Stable full reports: src 1 (+465 SourceLines only), tools 1 (+205 SourceLines only), introduced findings empty. At ca9c4f881, completed full reports are src 1 (+474 SourceLines only) and tools 1 (+205 SourceLines only), with introduced findings empty. No budget, baseline or suppression was changed. Commander's message 3617 explicitly rules SourceLines-only findings non-blocking.
  • Checker uses shared QA Python with actual paired Toad source and installed stack dependencies visible. Toad exports its inline declarations through py.typed; no copied schema/stub. The installed stack interpreter lacks checking modules and was not altered.

Actual behavior proof

Normal Toad under plain st on isolated Xvfb, real observation child, copied real saved sessions, real tool-created scratch-bus orders, and an actual retained refusal. Opened via normal prompt, clicked a real card, expanded original turns, recorded delivery through Core's tool, observed the same open page update and clear the stall, then returned to the same conversation. No provider was launched; originals and uncertain inputs were preserved.

Latest inspected captures and successful continuous-journey receipt:
/home/ts/.cache/agent-scratch/pi-cn-phase6/physical-failure-owner/

  • level-0.txt/png
  • level-1.txt/png
  • live-delivery.txt/png
  • sources.txt, result.txt

Visible text includes:

P1: 3.0m/commit; next commit ~17:17 (132.1m before due); forecast missed by 133.2m; due 1.2m ago; completion unknown
P2: cadence unknown (need two increasing commit times); due in 29.8m; completion unknown

Integration status

Not merged or installed. GitHub reports a conflict with current main; per the no-merge-main rule, published history is preserved and no rebase is attempted without the commander's explicit conflict instruction. The native immutable order identity below is generated by Core's existing order owner, not handwritten. The mandated order pr P243 create command failed because its derived pi-cn-phase6--P243 checkout does not exist; the assigned checkout is pi-cn-phase6--P1 and this PR already exists. Its existing review thread is updated in place using Core-generated metadata, not replaced.

Assumed:

  • Next-commit cadence is not a delivery/completion promise.
  • SourceLines alone does not block under message 3617.
  • Fresh-main integration and installation belong to the merger/installer.

Agent-Comms-Order: 69f8a4afa37a

…atus source"

This reverts commit fcc5e75, reversing
changes made to 6182e05.
@trissim trissim changed the title Phase 6: observed commander board and lazy unit cards Commander board with derived commit cadence Oct 19, 2026
@trissim
trissim marked this pull request as ready for review October 19, 2026 23:59
Copilot AI balanced review requested due to automatic review settings October 19, 2026 23:59

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 reached their quota limit.

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.

@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Sent back by desktop merger mB. The branch is 556 commits behind main and conflicts in commander/order.py, external_transcript.py, todos.py, tools.py, turn_digests.py and two tests. Main moved the commander board into todos.py (P707), so CommanderView, CommanderOrder and CardDetail have to read main's CheckedProblemOrder and board_cells rather than re-deriving orders. Merge current main once, delete anything here that main's board already owns, then rerun tests and ratchets. Due 00:45.

@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Not merged: conflicts with main in commander/order.py and external_transcript.py. Rebase.

@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Dropped from batch cl-49: this is a real conflict, not a trivial one. Rebase onto current main (d543640) before it can land.

Main has since replaced the progress model this PR builds on:

  • src/agent_comms/todos.py: main now has ProgressPoint (todos.py:454), MeasuredProgressSource (todos.py:724) and OrderProgress.from_source (todos.py:743), with recorded check results and WorkBranchError. This PR adds a second ProgressPoint, ProgressSource.progress(), StatusProgressSource, branch_commits and CalledProcessError handling over the old shape. Merged as is, the progress selection and the branch-commit decode would each be written twice.
  • src/agent_comms/commander/order.py: first_calls and deadline_lines are now Commander methods. The ordered_at substitution has to go onto those methods, and onto main's new .checked().at.recorded_at("An order") sites in turn_digests.py:148 and todos.py:814.
  • src/agent_comms/external_transcript.py:216/392: main reads the edit-call rows through ToolDeclaration with GeneratedTimestamp. The old TranscriptEvent.edit_calls(..., since) call is gone.

Keep these parts and port them onto main's owners:

  • ProblemOrder.ordered_at, deriving it at every order.at.recorded_at("An order") site, including main's new ones.
  • CommitMomentum, and the board's cadence_commits/latest_commit reads, built over main's ProgressPoint.
  • TodoStore.source_paths.

@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Closed: replaced by #2179 (P769), which ports this board onto main's progress owners. Stable-base cleanup 2026-10-20.

@trissim trissim closed this Oct 20, 2026
@trissim
trissim deleted the feat/cn-phase6-page branch October 20, 2026 14:30
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