356 Commits
Author SHA1 Message Date
jason.woltje 62ba124f2c fix(webui): keep keyboard focus and reveals on screen in zoomed transcripts
In page flow (200% zoom), the S11 follow logic re-pinned the document on
any scroll without wheel, touch, pointer or scroll-key input, so Tab,
Shift+Tab, focus(), find-style reveals and dialog return focus were pulled
back to the tail with focus thousands of pixels off screen.

Re-pin only a downward scroll with no reader input while following (scroll
anchoring as content grows). Count Tab as reader input, expire the reader
flag after two frames, and resume following when a transcript is opened.
2026-11-07 03:51:59 -06:00
jason.woltje 388fa5d0ca fix(webui): follow transcripts in page flow 2026-11-07 03:21:51 -06:00
jason.woltje 2f4470eed2 fix(webui): keep short 100% windows on the pinned transcript layout
S10 review P1: the max-height:700px page-flow rule moved the composer
off screen on 1440x700 and 1366x650 windows at 100%. Page flow now
applies only at max-height:540px (200% tab zoom on desktop screens) or
below 320px wide. S10 review P2: the moved Room details control keeps
its 44px target.
2026-11-07 03:02:02 -06:00
jason.woltje 66d14c00da fix(webui): keep zoomed transcripts and titles readable 2026-11-07 02:44:37 -06:00
jason.woltje 8832267574 fix(webui): wrap narrow conversation status and keep Overview geometry off Requirements
At 200% zoom on a 390px viewport the compact conversation row held a decision status on one line, so Needs your input pushed the page 12px sideways. The status now takes its own line under the icon and text and wraps. The Overview column margin and split were scoped to Overview, so Requirements keeps its base geometry. Tests cover a real decision status and the Requirements position.
2026-11-07 02:07:29 -06:00
jason.woltje 8aef086838 Fix narrow project reflow and overview action alignment 2026-11-07 01:47:35 -06:00
jason.woltje 5db88945d2 Add project header action icons 2026-11-07 01:08:19 -06:00
jason.woltje 5d2e96bbcd fix(webui): keep a followed transcript at the newest message when the log resizes
The conversation and room logs pinned to the bottom only on mutation, so a
log that settled shorter after paint stopped 23px short on every load.
Re-pin on resize too, and cover the room log.
2026-11-07 00:54:53 -06:00
jason.woltje b74c8c88c1 Fix S7 claim liveness and project layout fidelity 2026-11-06 23:55:17 -06:00
jason.woltje 31de69f2f6 Improve conversation fidelity and claim labels 2026-11-06 23:31:20 -06:00
jason.woltje 3081b587e9 Merge commit '9649c46ee' into ui-int-s6
# Conflicts:
#	docs/SESSIONS.md
#	packages/webui/src/public/shell.css
#	packages/webui/tests/dev-local-owner.test.mjs
2026-11-06 21:30:23 -06:00
jason.woltje 9649c46ee0 Keep project read failures visible 2026-11-06 21:29:20 -06:00
jason.woltje 617d7e4a7a Keep Routing when a route edit lands during a harness save
A harness or catalogue save clears routesView. A route draft made while
the save was in flight kept routesSection from adopting the fresh read,
so the next render dereferenced a null view and Routing disappeared
until a page reload. Adopt the fresh view whenever none is held; the
draft keeps its cells.

S6a review P2 1.
2026-11-06 21:25:32 -06:00
jason.woltje 35f687f9bf fix(webui): distinguish empty project states 2026-11-06 21:08:56 -06:00
jason.woltje 8a6a641b42 Enable harness selection in routing 2026-11-06 21:08:13 -06:00
jason.woltje 43686b1451 merge: ui slice 5 polish and review fix into ui-dev 2026-11-06 20:07:16 -06:00
jason.woltje c2f655ff90 fix(webui): read again after a failed history read (ui slice 5 review) 2026-11-06 20:02:54 -06:00
jason.woltje 6e6eb16271 merge: model provider plugins (#1858, #1855) into ui-dev 2026-11-06 20:02:05 -06:00
jason.woltje b48396b68e fix(plugins): provider review fixes, admission binding, alias-safe models, no provider names in core (#1858) 2026-11-06 19:52:57 -06:00
jason.woltje 5915c99809 style(webui): polish round from the live audit (ui slice 5) 2026-11-06 19:33:00 -06:00
jason.woltje ccccac2ade feat(plugins): model providers as plugin modules, cliproxy catalogue on Routing (#1858) 2026-11-06 19:11:13 -06:00
jason.woltje 1d03ef5fbb fix(webui): slice 4 review fixes, conversation layout and mobile density 2026-11-06 19:05:12 -06:00
jason.woltje f713bb7b81 style(webui): polish round for project, settings and agent pages (ui slice 4) 2026-11-06 18:26:59 -06:00
jason.woltje ad9b2dee42 fix(webui): keep model proxy on the root hash route 2026-11-06 17:08:15 -06:00
jason.woltje fcc0f01aa0 fix(webui): project pages review fixes (ui slice 3) 2026-11-06 16:34:20 -06:00
jason.woltje 71bc3a4294 merge: project pages (ui slice 3) into ui-dev
Merges ui-dev-projects (c907e4d0d) onto the Settings slice (65df511f3).
Conflicts resolved by keeping both sides: the slice 3 token block in
tokens.css, and in bus.js the Settings display redirect plus the
Projects route test. Whole webui suite on Node 26: 729 passed, 0 failed.
2026-11-06 15:35:05 -06:00
jason.woltje c907e4d0d0 feat(webui): project pages redesign (ui slice 3) 2026-11-06 15:29:46 -06:00
jason.woltje 65df511f38 fix(webui): settings review fixes (ui slice 2) 2026-11-06 15:25:14 -06:00
jason.woltje a06d792ff9 feat(webui): settings page redesign (ui slice 2) 2026-11-06 14:43:04 -06:00
jason.woltje 1186cf7b1e fix(webui): record request misses only from the request read (#797)
The chat.js fetch wrapper recorded a request-not-found from /api/requests/<id>/workspace as a missing request and then served a synthetic 404 to the request panel's rereads, failing 11 request-browser tests. Only the request's own read records a miss now. Adds a regression test that fails on 9d3eb9e11, and bounds the r3 held-404 test's check on its refresh reads, which raced Files' cached repaint under load.
2026-11-06 12:34:00 -06:00
jason.woltje 700259aa38 feat: allow agent launches in dev local owner mode 2026-11-06 12:16:36 -06:00
jason.woltje 545f77dd86 feat(webui): dark/light switch in the navbar (ui slice 1) 2026-11-06 12:12:25 -06:00
jason.woltje f12021c6d7 fix: dev local owner mode requires the named instance's data-root marker 2026-11-06 12:10:11 -06:00
jason.woltje 4638c07fcc style(webui): council fixes for type, surfaces, targets and focus (ui slice 1) 2026-11-06 11:52:47 -06:00
jason.woltje 7a67db9c41 style(webui): match the dashboard reference palette, type and header (ui slice 1) 2026-11-06 11:28:26 -06:00
jason.woltje b73e55b794 feat: dev-only local owner mode for named loopback instances 2026-11-06 11:23:36 -06:00
jason.woltje 9d3eb9e115 fix(webui): fence in-flight request misses on an observed state (#797)
A mosaic-request-state for an id now advances that id's own generation on every thread retaining it, so a 404 still in flight from before the observation cannot record the miss afterwards. Generations are pruned with the misses to retained rows. Adds a held-404 regression that fails on 16384bb12.
2026-11-06 11:15:15 -06:00
jason.woltje 67c1bcd891 feat(webui): dashboard shell, navbar, sidebar and logo (ui slice 1) 2026-11-06 11:14:54 -06:00
jason.woltje 16384bb120 fix(webui): retry missing requests on thread open and observed state (#797) 2026-11-06 11:06:04 -06:00
jason.woltje 97d670da94 fix(bus): name task evidence gaps and stop request polling (#797) 2026-11-06 10:49:33 -06:00
jason.woltje 6b84fe136e fix(webui): order same-key files settles by commit, not start 2026-11-06 09:35:25 -06:00
jason.woltje 86383a9d1e fix(webui): retain files content across redraws 2026-11-06 09:19:17 -06:00
jason.woltje 521b34bdd7 Merge feat/mvp3-project-archive-r9 (e75c33947) into integrate/mvp3-ux-1106 2026-11-06 07:50:10 -06:00
jason.woltje e75c339470 fix(webui): withdraw request writes when a refresh resolves archived
A same-thread refresh kept the last resolved live controls until the session and history reads finished. When the fresh project lookup finds the project archived or the archive state unknown, withdraw the unguarded thread controls and remount the request panel fenced before those reads.
2026-11-06 07:15:31 -06:00
jason.woltje 4c85d37842 Keep resolved archive state during thread refresh 2026-11-06 06:40:45 -06:00
jason.woltje 5bf07f35f0 fix(webui): retain archive state on failed refresh 2026-11-06 06:19:40 -06:00
jason.woltje 2511e79673 fix(webui): give archive controls the shared button treatment (#797) 2026-11-06 06:13:21 -06:00
jason.woltje 51892cf95a fix(webui): suppress writes on archived projects 2026-11-06 05:26:42 -06:00
jason.woltje 8c3f48113f fix(webui): restrict writes when archive state is unknown 2026-11-06 04:48:14 -06:00
jason.woltje 526d3e3b7d fix(webui): keep threads readable when archive lookup fails 2026-11-06 03:44:44 -06:00