Files
stack/agents/dewey/work/wui/HISTORY.md
T
jason.woltjeandClaude Opus 5.5 1f4882d2b4 docs(wui): Dewey's design work: brand board, five mockups, slice 1 S5 views and checks
Brand board revisions, the five dashboard mockups with their verify
script and evidence, the slice 1 S5 design note (SLICE1-VIEWS.md, rev 3
plus the S2c section 10 update), the Console mockup of inbox, tasks,
agents and trail (mockups/slice1/) and checks/slice1-verify.mjs (16
checks; check 16 pinned to bus at d27042fa). Also the CHAT-03 progress
log and the 2026-09-26 dirty-tree manifest. Design and evidence only;
no package code. Row 40 (#1522), committed on its own at Sage's
direction, 2026-10-09.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 17:54:50 -05:00

13 KiB

WUI work history

Append-only author notes. Goal lifecycle belongs to the operator's extension; TASKS.md tracks this assignment.

2026-09-08: first brand-board implementation

  • Reconciled BRIEF.md, DECISIONS.md, TASKS.md and the separate CURRENT.md owner gate. No v1 inspection or unrelated queue advancement.

  • B02: inspected live t3.codes and buzz.xyz public pages in installed Chromium. Saved desktop/mobile screenshots and DOM observations. RESEARCH.md separates public-page observations from untested application themes and onboarding.

  • B03: created Assembly, Relay, and Aperture as original SVG studies. Integrated monochrome 16/24/32 px and reversed samples. Recognition/trademark suitability remains unapproved.

  • B04: bundled Latin DM Sans, IBM Plex Sans, and Manrope, four weights each, with SIL OFL licenses and source URLs. Initial Google Fonts request returned a different format; a full browser User-Agent produced WOFF2 assets with verified signatures. Created a consistent original outline icon family.

  • B05: defined ten palettes with individual harmony rationales. Generated 30 mode token sets in assets/palettes.json. The initial 10:1 body-text target was mathematically unavailable on some Dim raised surfaces; changed the optional target to 7:1. Normal text minimum remains 4.5:1, required boundaries/focus 3:1. All generated combinations now pass their declared pair checks.

  • B06: built local index.html, styles.css, brand.js and board.js. Includes live selections, theme tokens export, review-note download/local storage, and explicit sample component states. No backend work.

  • B07 in progress: checks/verify.mjs passed 30 token sets and 240 viewport combinations, plus keyboard controls, state recovery, local fonts/storage, reduced motion, and narrow text-spacing/root-resize checks. Native CDP Enter initially omitted its character event and the Shift modifier used the wrong bit; repaired the test client and re-ran successfully. These were test-driver defects, not silently reclassified application passes.

  • Inspected saved Light, Dim, mobile, and ultrawide screenshots. Further focus visibility, lower-section visual checks, full text scaling, and download evidence remain before review handoff.

  • Received Darkwing terminal-log TMUX-TRANSPORT-R5-LIVE-01 addressed to Dewey. Transport-only notice, no requested reply or assignment change. Filed without acting on the transport task.

2026-09-08: verification and review handoff

  • B07 completed for prototype review with documented limits. Final verification reports pass 840 token contrast pairs, 8,220 computed rendered-text checks, 240 palette/mode/viewport combinations, ten breakpoint checks, keyboard/native controls, 60 accessible control names, targets, local downloads, font/storage failures, and text expansion.

  • Author screenshot inspection found a clipped mobile Conversations label and small-size sample labels extending outside their card at doubled text. Fixed the icon grid and row wrapping, then repeated checks and inspected new captures. Desktop preview controls now scroll within short viewports so focus stays visible.

  • Adjusted draft palette hue anchors to match their named harmony relationships. Regenerated the 30 token sets and repeated all affected tests.

  • B08 handed off through index.html and README.md. VERIFY.md distinguishes author checks from unverified engines, native mobile/zoom, assistive technology, and independent review. No production or brand approval claim.

  • B09 remains Jason's branding decision. Dashboard construction has not begun. No deployment, integration, backend changes, commits, pushes, external issue lifecycle, or agent task dispatch occurred. Test Chromium processes/profiles were closed by the check scripts.

  • First owner review: icon has a robot-crotch association; themes and Manrope received positive feedback. Recorded interpretation and next revision in DECISIONS.md and B09. Prototype files unchanged. First goal remains closed; no dashboard work started.

  • Owner removed final logo/iconography as a dashboard prerequisite. Updated BRIEF.md and TASKS.md: D01 is ready, with Manrope/current themes, text wordmark and provisional labeled icons. This clarification changes task dependencies, not the completed first goal or backend authority.

2026-09-12: five dashboard mockups and comparison (D01 to D05)

  • Took over the Dewey seat from the pi session 01a08111 at Jason's direction. Registered in docs/SESSIONS.md. Folded in owner decision MOSAIC-STACK-D-001: the control board is the landing page of every design.
  • D01: FEATURES.md inventories capabilities from README, TOOLS, plans, CURRENT.md, and the control board plan, marked implemented, planned, or proposed. No v1 UI was opened.
  • D02: DESIGN.md fixes 14 routes, primary flows, demo states, and the five styles. mockups/shared/data.js holds a hand-written sample mirroring current sessions and records; credentials appear only as "runtime mount, not shown".
  • D03: built mockups/index.html and five designs (Rail, Deck, Console, Board, Stream) over one shared app, views, data, and stylesheet. Hash router, palette/mode/state URL overrides, local-storage persistence, and a global rule that every action produces a labelled simulated notice.
  • D04: wrote checks/mockups-verify.mjs. First run found 11 failures; most were real layout defects at 320 px, two were harness defects (colour parser, static check reading over file URL). Fixed absolutely positioned hidden labels escaping scroll boxes, nav rows growing past headers, breadcrumb and kanban wrapping, bottom-tab sizing, tinted counters failing contrast, and badge tints. Final run: 31 checks, 0 failed, 2 not verified. Author inspected phone, desktop, and 3440 px captures for every design and fixed a stretched avatar and an accidental header wrap in Board.
  • D05: README.md now opens with the mockup entry path, a comparison table, and an eight-step review script. Stopped at the selection gate. No design is approved; no commit, push, backend, or fleet change occurred. Test Chromium processes and profiles were closed by the script.

2026-09-26: tracking reconciled to D-002

  • Took over the Dewey seat from pi session 01a0981a in T3, under Sage as lead. Found TASKS, README, DESIGN and DECISIONS still saying D05 was waiting on Jason, two weeks after he picked Console (D-002). Recorded the selection, marked D05 and I01 done, and marked I02 and I03 superseded. The Console implementation (ea00ec66) and the session-chat plan replaced them.
  • Sage asked for this on 2026-09-26. Nothing else in this workspace changed. Nothing was committed.

2026-10-04: slice 1 S5 mockup (row 40, #1522)

  • Built mockups/slice1/: inbox, tasks, agents and trail views in the live Console shell, from fixture rows. reads(S) in app.js stands in for the packages/bus read module that Rocko owns (lead decision 56, Q1). The renderers see only its output.
  • Moved the fixtures from schema v3 to v3a (d55e41fd) once S2 switched. task.created now cites its human.input in request, and the task trail joins through that id. Section 5 of SLICE1-VIEWS.md corrects my Q3 wording, which had put the task ref on the human.input.
  • checks/slice1-verify.mjs: 15 checks, 0 failed, 3 not verified. One check inserts every fixture row into schema v3a. On its first run it found a malformed digest, and message and delivery seq numbers that ran against time. All three are fixed.
  • Mutation round 1 (12 mutants): 11 killed. The skip-link mutant survived because the hashchange guard alone kept the router away. The keyboard check now also requires the route to stay in the URL.
  • Mutation round 2 (15 mutants, run in a scratch copy that mirrors the repository paths, after a clean baseline): 15 killed. The three new mutants cover the request join, a task.created citing an unknown request, and message seq out of time order.
  • Reported a finding for Rocko and Darkwing (SLICE1-VIEWS.md section 8): a stale poll read becomes the latest snapshot, so tasks_open shows the old bucket until the next tick.
  • Nothing committed.

2026-10-04: S5 mockup reshaped to the Q1 module and schema v3b

  • Lead decision 60: check 15 now loads schema v3b (179ffe35) and reads current state from task_current and tasks_open. It agrees with the page on every task, #42 included. The "stale read" marks must be exactly the snapshot rows task_current skips.
  • Reshaped to Sage's Q1 shapes. data.js holds raw v3b rows, written the way the candidate broker writes them, with millisecond timestamps (the candidate Store refuses the 20-character form; the schema doesn't check it). New q1.js ports the four reader verbs. reads(S) builds views only from them, and labels anything else "not in the Q1 module". Inbox and decision pages show the authorization context and badge the approving option.
  • New check 16 runs Rocko's uncommitted Store and Broker on a temporary data root with the same rows and compares inbox, tasks, agents and 21 trails with q1.js: 203 rows, equal (broker.mjs ead6e668, store.mjs e69cb395). It only imports from packages/bus.
  • Verify: 15 checks, 0 failed, 2 not verified (forced colors, screen reader). The "Q1 module shape" not-verified entry is gone.
  • Mutation round 3 (21 mutants, scratch copy): 20 killed on the first pass. Reversing the decision trail survived, because check 8 only checked the task trail's order. Check 8 now checks both, and the rerun killed it. M5 was caught by check 15 rather than the check I had named.
  • SLICE1-VIEWS.md revision 3; section 9 lists what the views need that no Q1 verb returns, for Rocko.
  • Nothing committed.

2026-10-05: lead decision 63

  • Sage sent the section 9 gap list to Rocko for S4; session events go to S6, credential events to S3. Unfilled gaps keep their label in S5. Check 16 will pin shas from the S2 round 2 commit (manifest 61519059) once Sage names it. Recorded in SLICE1-VIEWS.md and TASKS.md. Nothing committed.
  • Checked ahead of the commit: the working tree's packages/bus now matches the round 2 manifest (broker.mjs aa5efbbf, store.mjs e69cb395, views.mjs 446b6da4, schema.sql 179ffe35). Verify against it: 15 checks, 0 failed, 2 not verified; check 16 compared 203 rows, all equal (~/dewey-scratch/s1-verify-r2.txt).
  • S2 landed at 38828a2c (Sage; the round 2 manifest 61519059). Check 16 now extracts packages/bus from that commit with git archive into its temporary directory and imports from there, so working-tree edits (Rocko's uncommitted README change for row 43, or anything later) don't count. It prints the shas from the commit: broker.mjs aa5efbbf, store.mjs e69cb395, schema.sql 179ffe35. Run from a copy outside the repository it needs DEWEY_S1_REPO, or it records "not verified"; tried both ways in the scratch copy. Verify: 15 checks, 0 failed, 2 not verified; 203 rows equal. The six mutants that reach the stand-in (M4, M13, M14, M15, M19, M20) are still killed. Writer shapes in the committed broker match data.js. Headers and SLICE1-VIEWS.md no longer call packages/bus a candidate. Nothing committed.

2026-10-05: S2b (4afab552)

  • Repinned check 16 to 4afab552: broker.mjs 44c161c2, store.mjs e69cb395, schema.sql 179ffe35. Verify: 15 checks, 0 failed, 2 not verified; 203 rows equal. Check 15 doesn't use packages/bus and is unchanged.
  • Finding (SLICE1-VIEWS.md section 10): S2b sends every agent message.send through the single-use authority helper, so a supplied decision is checked as an authorization even for a within-role send. A PM DECISION message citing an open role.launch decision is refused with decision-mismatch; at 38828a2c it was written. Reproduced on both commits extracted with git archive (~/dewey-scratch/s2b-probe.w9pJ). The fixture's decision DMs (messages 101, 102) are such messages. Check 16 can't see this: it loads rows by SQL and tests only the reader. Recommended the connector send the DM from the decision itself. Fixture unchanged pending a ruling. Nothing committed.
  • Lead decision 65 (dd35a0ab): a within-role message.send treats decision as a citation (exists check, stored, not class-matched, not consumed, not in action.allowed); otherwise it stays the authority. Messages 101 and 102 stay in the fixture. S2c (row 44, #1526) implements it. Recorded in SLICE1-VIEWS.md section 10 and TASKS.md. Nothing committed.

2026-10-05: S2c (d27042fa)

  • Repinned check 16 to d27042fa (S2c, row 44): broker.mjs 51e03b33, store.mjs e69cb395, schema.sql 179ffe35. Verify: 15 checks, 0 failed, 2 not verified; 203 rows equal; check 15 loads 106 rows. Output: ~/dewey-scratch/s1-verify-d27042fa.txt.
  • Probe rerun on 38828a2c, 4afab552 and d27042fa. At d27042fa a within-role citing send is written, the decision is stored and not consumed, an unknown decision refuses with decision-not-found, and the send's action.allowed carries no decision. That is lead decision 65 as written.
  • Fixture: added the action.allowed {action message.send, class within-role, target human} event 1 ms before messages 101 and 102, as the broker writes it since S2b. Headers in data.js and q1.js name d27042fa.
  • SLICE1-VIEWS.md: section 10 says S2c restores 101 and 102, with a d27042fa column in the probe table; sources, sections 1, 7 and 9 cite d27042fa. A broker-written fixture with a citing DECISION message is still the regression test check 16 can't give.