fix(web): parked fleet threads list in Settled and Snoozed, compact rows keep titles - #166
Conversation
A settled worker thread now leaves the fleet tree and lists in the Settled section with the other settled threads, where Un-settle works. Un-settling it puts it back under its second mate. Snoozed workers and settled second mates stay in the tree as before.
|
Code review, two axes. Each finding has a confidence and an estimated severity. StandardsSix findings: two hard violations, both in the PR body, and four judgement calls in the code. The code itself breaks no documented standard. PR body (hard violations)
No findings
SpecPR 166 does what the spec asked. A settled worker leaves the fleet tree, lists in Settled, and goes back under its second mate when un-settled. The main problem is a display defect in Settled that this change now shows on most rows. I checked it against the code and the local screenshot. (a) Missing or partial
(b) Not asked for
(c) Implemented, but looks wrong
Checked and fine
|
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
A snoozed worker now lists in Snoozed, and waking it puts it back under its second mate. A settled second mate moves to Settled and takes all its workers out of the tree, each listed by its own state. Un-settling it brings it and its live workers back. A snoozed second mate stays in the tree. resolveParkedState is the one parking rule for the tree and the sections. A drag out of Settled or Snoozed lands a worker in the tree at once instead of passing through Active. Compact rows in Settled and Snoozed keep the whole role word and leave the model and thinking level to the hover card, so the title always shows.
|
This round, in commit 8bec146:
Left:
|
Settled fleet workers filled the sidebar. Since #162, every settled or snoozed fleet thread stayed in the fleet tree as a dimmed full row.
What changed
Parked fleet threads now leave the tree and list in the sidebar's own sections.
Why live workers of a settled second mate go to Active, not Settled: every Settled row carries Un-settle. A worker that is not settled has nothing to un-settle, so that control would do nothing. It also keeps a running worker in view.
How
resolveParkedStateinfleetSidebar.logic.tsis the one parking rule. Snooze outranks settlement until the thread wakes. A server without the capability never parks a thread. The tree and the section loop inSidebar.tsxboth call it, throughparkedStateOf, so they cannot drift apart.sidebarSectionForpicks the section for a thread outside the tree. The section loop uses it.buildFleetTreenow requiresparkedState, so a caller cannot forget it.Compact rows keep their titles
In Settled and Snoozed, a read-only worker row showed no title. The model and thinking badges never shrank, and the role word was cut to one letter. Compact rows now keep the whole role word and leave the model and thinking level to the hover card. Full rows still show the badges.
fork-features.json
The
fm-fleet-sidebar-treedescription andkeepline name the new behaviour,resolveParkedState,sidebarSectionFor, theparkedStateOfhelper inSidebar.tsx, the drop hold, and the compact row. The read-only model entry says a compact row leaves the badges to the hover card. The user guide's First Mate section says where parked fleet threads go.Screenshots
Taken headless from a dev build run against a copy of real data. They show real thread titles, so they are kept locally and not attached.
The data copy has no snoozed thread and no settled second mate, so the screenshots cannot show those cases. The tests cover them.
Tests
The new tests fail on the previous commit of this branch and on
main, then pass. I ran the new test file against each older copy offleetSidebar.logic.ts:The settled worker test now checks the section it lands in, Settled, not only that it left the tree. A test also pins that a snoozed second mate stays in the tree with its workers. The compact row fix has no unit test. The screenshot above is its check.
Checks
The 11 failures are all in
scripts/build-desktop-artifact.test.ts. They fail onmainon this Windows machine too:Surfaces
Web and desktop. The mobile sidebar has no fleet tree and is unchanged.