Skip to content

Menu, composer and panel fixes from Milo stress run 3 - #159

Merged
fxck merged 6 commits into
mainfrom
fix/menu-composer-panels
Oct 9, 2026
Merged

fxck merged 6 commits into
mainfrom
fix/menu-composer-panels

Conversation

@fxck

@fxck fxck commented Oct 9, 2026

Copy link
Copy Markdown
Member

Defects from the recorded live run on Milo (0.15.18), segment B (and A for the composer).

  • Data → db summary: Milo's zcp (v9.200.3) console has no /api/summary; its / answers 200 text/html, the broker called it an unreadable response, and the panel told the up-to-date Mate to update and repeated "Something went wrong." under the list. The broker now reads a 2xx HTML answer as unsupported. The panel stays quiet for a summary the console doesn't offer, says "update the Mate" only for a no-reason failure on a server older than 0.15.13, and keeps the summary failure out of the list's error line.
  • Zerops → coding agents card: when the conversation's agent is signed in, the card says " is signed in". Another agent that only offers a sign-in becomes one quiet line with its link.
  • Composer: the editor wrote a new text in a layout effect but took the new handler in a passive one. A keystroke between the two went to the previous text's keeper, so the draft handed back after a question became that question's answer. The handler now changes in the same commit.
  • Panel tab strip: tabs cut off by the strip's edges are listed in a chevron menu beside it.
  • Menu row height: the "Needs an answer" line now holds the 18 px of the other lines (it was 76 → 82 px).
  • Menu reload: change-only project sections no longer paint before the Mates are read. A reload's open Mate that is found late is no longer scrolled into view.

Not changed: the "Draft:" flash on send. The rig pastes, waits 300 ms, then presses Enter (tools/say.mjs). The draft is cleared in Enter's own task.

Gates: node scripts/gate-changed.ts green (web 6848, server 337 related cases); web/server/client-runtime typecheck clean.

🤖 Generated with Claude Code

fxck added 6 commits October 9, 2026 21:32
…ate to update

Milo 0.15.18 runs zcp v9.200.3, whose data console has no /api/summary: its
"/" serves the console's page, so the summary read came back 200 text/html,
the broker failed it as an unreadable response (internal), and the panel
matched the generic "Something went wrong." against its no-reason sentence
and told the up-to-date Mate to update, repeating the failure under the list.

The broker now reads a 2xx text/html answer as unsupported. The panel leaves
an unoffered summary quiet (no error, no retry), says "update the Mate" only
for a no-reason failure on a server older than 0.15.13 (the summary's first
release), and keeps the summary's failure out of the list's error line.
…s signed in

Milo, signed in to Claude, sat under "Sign in inside this Zerops Control
Plane" with a full Codex sign-in row beside it (stress run 3): the card read
as a sign-in request. The panel now knows the conversation's agent; signed
in, the card says "<agent> is signed in", and another agent that only offers
a sign-in shrinks to one quiet line with its link. An agent with a sign-in
running or further logins keeps its row.
The composer hands its editor one text at a time, the draft or the open
question's answer, with the handler that keeps it. The editor wrote the new
text in a layout effect but took the new handler in a passive one, so a
keystroke between the two (a throttled machine: stress run 3 A +12:45) went to
the previous text's keeper: the draft handed back after a question became that
question's answer, and a keystroke on a just-opened question replaced the
draft. The handler now changes in the same commit, before the text is written.
With ten tabs open the panel's strip cut the left ones off ("…ff", "…les")
with only a fade and a sideways scroll to reach them (stress run 3). The
strip now measures which tabs its edges cut, as it scrolls or resizes, and a
chevron beside it lists them; choosing one opens it, and the strip scrolls it
into view. The vault harness takes ?tabs=many to show ten tabs.
The row's last line held 18 px while the Mate worked and grew to 24 px when
it showed "Needs an answer": the marker sat in an inline box on the menu's
taller line, so Milo's row went 76 -> 82 px and moved every row under it
(stress run 3, +0:31 and +2:27). The status line now holds the other lines'
18 px.
… to the open Mate

Stress run 3's reload (+16:58.9) painted every project as its "Review" row
alone, then the Mates' menu, then slid down to Milo:
- the tree let a project's open changes bypass its unread gate, so with no
  Mate row yet it drew change-only sections the Mates' menu then replaced.
  A project's changes alone now draw only once the listing is complete.
- the open Mate is found from the listing, which a reload reads after the
  menu drew; the tree took the late-found Mate for one opened afterwards and
  scrolled it into view. The Sidebar now says when the route's Mate is still
  being found, and the Mate a reload opened on is never revealed
  (openMateReveal).
@fxck
fxck merged commit ff59550 into main Oct 9, 2026
19 checks passed
fxck added a commit that referenced this pull request Oct 9, 2026
- #159 Menu, composer and panel fixes from Milo stress run 3
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.

1 participant