Repository navigation
Show the commander with shared HUD columns, groups and original details - #1321
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.
trissim
force-pushed
the
work/commander-screen--toad
branch
from
October 29, 2026 07:19
5febfbc to
77daacb
Compare
trissim
force-pushed
the
work/commander-screen--toad
branch
from
October 29, 2026 10:09
77daacb to
942367d
Compare
…mander-screen--P930--toad
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
P930, depends on Core OpenHCSDev/agent-comms#3589. 23 commits; +684/-388 across four files against main
c59b3766249f928c710a981e1fc40d491141e5b1. Current pushed pair: Core078fb1d29a270e1a9233450dda31c45288548324(Core main62c029335647dd11381effbb99099ccce8bbd527), Toad53e8554ebdb7fd3c7ba8002cbdeeb8240bd902da. Both remote refs equal local HEAD. Core's final requested main-only merge preserves the feature delta. Previous native checkpoints, including a131, remain ancestors. Native disclosure reconstruction is deleted, selection borrows Core's prepared identities, and fixtures use their declared keyword fields. The latest native correction migrates all seven production/test calls from deleted DisclosureText.of to inherited DisclosureText.describe.Source delivery, not accepted or installed. Core now corrects both nominal alarm views and the duplicated health prefix, retains current main's ratchet deletion and shares one prepared board across recipient-specific committed publication histories. No tests, checker, product imports, App/provider/install or live changes were run by the author. Land/install the pair together after Root accepts it; never this native half alone.
Before / after
Before: CommanderUnitCard flattened Core facts, repeated PR identity and rebuilt per-card widgets. The replacement still carried a DisclosedValue family that re-walked Core records, identities and collection children. Native frame selection and table construction independently recovered each record's identity.
After:
Deleted in place: the entire DisclosedValue/StructuredValue/RecordValue/IdentifiedRecordValue/SequenceValue/MappingValue family, native DisclosureKey subclasses and DisclosureEntry, singledispatch adaptation, field/identity/collection walks, native entity-map construction and duplicate-identity classifier. Native code imports canonical Core entries/keys, borrows
source.entities, and paints existing DisclosureText or StructuredText capabilities. There is no native raw-shape probe or second string formatter.The earlier CommanderUnitCard, brief_lines, fit_title/TITLE_INDENT, keyed cards and duplicate PR formatting stay deleted. Core owns labels, cells, measured geometry, semantic keys, tone tiers, alarm membership and complete original evidence. Native widgets own expansion, focus, viewport and paint.
Selection and lifecycle
TableSelection retains nominal empty/selected dispatch; SelectedTableRecord stores the existing key/record. CommanderDetails alone owns ReadCommanderUnit, its exclusive worker, cancellation, stale/refused-result handling, removal and unconditional Refresh. ToadNode remains the single app-type refinement.
Core ViewTable owns identity preparation and rejection of repeated declared identities. Both frame selection and tables use that prepared map; there is no writable native alias. Native maps still derive solely from add_row-returned RowKeys. A real changed record reaches selection/details even when painted cells are equal.
CommanderGroup.update_row keeps frozen value equality (
row.source != source), preserving existing native source/rows for a fresh equal table. Filter clear/refill, group movement and native cursor/focus retain semantic selection. The shared navigation migration remains with #1338/Textual#211: this PR does not add an alias or prematurely change the old MovesCursor import. Integration must migrate that import and cursor adapters together.Original details, geometry and dynamic paint
Core child entries keep all recorded fields even when the summary contains identity only. Child descriptions and summary strings cache on their source, not across revisions. Native expansion borrows those exact entries. A changed hidden strikes field must replace its original detail while preserving the child widget and unchanged identity title.
DeclaredTable.reconcile_source still consumes ViewTable.layout/widths, minimums and StackedViewTable at narrow widths. CommanderAlarm.present still consumes CommanderHud.alarm_detail. Alarm age painting uses the event time even when membership is equal. No second alarm store or equality shortcut suppresses repaint.
Controls authored, UNRUN
The four existing real-Workspace controls remain: refusal/recovery/focus/Refresh, waiting without frames, filter clear/refill/group move/60-to-160 resize, and Core disclosure/alarm-age rendering. Equal frozen tables and paint-equal changed records retain their previous controls. The disclosure control now also mounts an actual record, checks native children are the exact Core entries, re-presents the same source without replacing child widgets, and changes strikes while retaining the same identity summary.
Latest correction evidence:
p930-corrected-order-source.txtparses/compiles all four changed native and54 Core modules with zero omissions, lists the final description owners and preserved cached/descriptor behavior, and searches all tracked src/tests/tools in both repositories: no DisclosureText.of, FieldCodec.describe or ValueDescription[...] callers remain. Both diff checks pass. No product imports, checker, test or application run was launched. Core's sole-factory Self domain still needs Root's typing qualification.Historical source evidence:
p930-final-source.txtuses the existing audit ParsedModule to parse all 636 tracked native Python files over src/tests/tools with zero omissions and compile all four changed modules without executing them. It also covers 1,183 Core files/54 changed compiled modules and enumerates the nominal table callers. Full-diff whitespace checks pass. Earlierp930-native-owner-source.logretains the source audit for one native disclosure class, no raw type probes and no remaining deleted-family callers. Dynamic aliases remain unresolved. This is syntax/source evidence, not behavior, typing or performance acceptance.Current-main integration keeps the native single status_strip consumer.
published_hudnow names CommanderHud fields rather than relying on the old pre-inheritance positional order; the alarm control supplies ServicePassFailing watch/since/error keywords. The actual Workspace/worker/control behavior is unchanged and remains UNRUN.Per-production-file growth rationale
Existing real commander controls: +196/-31; authored, not executed.
Retained qualification and assumptions
Root's archived matched Toad
56c3f1caf/ Coreb7c7748bfthree-file typing selection exited0 in23.149s. That qualifies only its original cut, not this pair. Preserve P941's twelve-plus-six results, frozen frame.pulls ownership and native-pin qualification at their actual cuts. Root retains typeshed/property.set_name and exact-head qualification. NRA #158's cached identity-return correction is included in Core's uv-generated lock at d0667af3; that source pin is not a green gate result. No Any/cast/ignore, allowlist or green-CI claim was added.The old a131 hosted debt job reported TypeErrors +12 in commander.py and +1 in each disclosure/table file against its installed Core dependency; it does not qualify this pushed pair. No fresh typing or behavior run was made by the author.
Assumed: DisclosureText is the sole admitted factory, as Root specified; inherited factory calls through concrete result variants are excluded. Root selects the changed-owner controls, resolves actual typing/gate owners, records exact-head verdicts, refreshes dependencies and verifies the real paired narrow/wide commander journey, including ordinary heartbeat and shared recipients. Preserve human read markers and uncertain inputs. Current source corrections are implemented; actual application acceptance remains owed.