Commit Graph
2472 Commits
Author SHA1 Message Date
ciregenz c4ff6dad93 Merge remote-tracking branch 'origin/eric/dev' into eric/browser-merged
# Conflicts:
#	electron/package-lock.json
2026-08-06 23:22:12 -07:00
ciregenzandClaude Opus 5 3c50359146 [eric] browser-v3: fix the instrument first, then the two composer bugs it could finally see
Six of the eleven defects here were in the MEASUREMENT, not the product, and they
were wrong in both directions.

Harness, all of which silently produced wrong numbers:
- coverage.py preflight refused every sweep on a box holding exactly one backend:
  stack.sh's supervisor is a `bash -c` quoting the whole uvicorn line, so it carries
  both "-m uvicorn backend.main" AND the venv python path. Discriminate on POSITION.
- stack.sh status reported 2 backends over 1 and 0 webpack over a live dev server
  (webpack retitles its process). A status check whose job is preventing a second
  stack, failing in the direction that lets one land.
- c7_run.sh/c8_run.sh slice r6_be.log while stack.sh names logs by TAG: a stack under
  any other tag hands every trial an empty slice and the sweep reports a confident
  0/108. Now refuses loudly; it caught this exact mistake on first use.
- "Browser command timed out" was bucketed infra. It is ONE command blowing its own
  budget, not a dead webview: all 4 such rows were BrowserFindComposer at exactly its
  30s cap, every run completed after, zero card-gone markers in the whole log. Filed
  as infra it read as 11.8% flake AND lifted holdout reach 70% -> 84%.
- api_retry / rate_limit_error now grade as infra. A provider 429 storm turned clean
  15-21s exclusions into 188s product_no_composer rows.
- bench.py prints reach BOTH ways when a row is UNVERIFIED. An exclusion resting on
  the agent's own word quietly flatters the score, and coverage.py's own instruction
  to confirm it by hand goes unread (I quoted a 100% that excluded onlinegdb).

Timing was measuring 0.2% of the run: prestage completes BEFORE metrics_started_at,
so other_ms was 25ms of a 12700ms median while prestage (4146ms, ~61%) sat in no
bucket at all. prestage_ms/task_ms are now recorded; total_ms is deliberately NOT
redefined, which would invalidate every before/after already taken against it.

Product:
- find_composer rejected ACE/CodeMirror-5/Monaco composers. Their input is a ~1x1
  offscreen textarea that paints into a sibling div, so it can never pass a size
  gate. Accept it when a VISIBLE ancestor is composer-sized; honeypots stay out
  because the input itself must not be display:none/visibility:hidden/opacity:0.
  anon reach 80% -> 100%, holdout 89% -> 90%, p95 38.6s -> 9.7s.
- the composer poll slept a blind 0+1.2+1.4 = 2.6s whenever prestage staged nothing,
  which is nearly every run, and it was the whole of other_ms's suspicious constancy
  (2610-2613ms regardless of tools_ms). Stop when two reads are identical, the rule
  the opener poll 40 lines below already applies. other_ms -53.7%, tools_ms flat.
- prestage no longer navigates to the page it is already on, nor sleeps 0.35s before
  its first settle probe.
- is_replay_boundary reasoned from the NAME alone, so x.com's composer textbox named
  "Post text" was ruled an irreversible send and truncated its replay to a bare
  navigate. Excluded by ROLE; first_unsafe_step now passes role through at all.

Measured on this box: reach 100% (83% if onlinegdb's unverified exclusion is bogus),
0 false successes in ~155 runs, prestage tier-0/1 2702ms, other_ms -53.7%, infra
flake 0/158, holdout 18/20. Criteria 2/4/9 need live writes and are untouched.
Full evidence, including what did NOT work, in e2e/browser-v3/RESULTS_2026-08-06.md.

Also drops the tracked electron/node_modules symlink pointing at another machine's
Downloads folder; it is dangling on every other checkout and re-breaks the install on
any stash or checkout.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 23:21:05 -07:00
ciregenz d492c46f02 [eric] apps: runtimes get OPENSWARM_HOST_TOKEN_FILE (path not value) so app backends can call the host API across rotations 2026-08-06 21:39:58 -07:00
ciregenz 474a6fdbb0 [eric] chat: connection-hiccup and provider-refresh failures get honest cards instead of the generic snag v1.7.4 2026-08-06 21:03:32 -07:00
ciregenz 7c3999d779 [eric] agents: a self-healing reset-window 401 retries silently instead of flashing the reconnect card 2026-08-06 20:58:42 -07:00
ciregenz d1d6e0e0e5 [eric] health: one banner line per provider, a 401 naming its own reset window is mid-refresh not dead 2026-08-06 20:58:42 -07:00
ciregenz d2ff1bdae7 [eric] experimental: quick pill overlay unwired and parked in .claude/slime-parked 2026-08-06 20:50:13 -07:00
ciregenz dbade1b25e [eric] agents: a turn whose router died mid-flight re-ensures it and resumes instead of a terminal snag 2026-08-06 20:50:13 -07:00
ciregenz 62b8167df6 [eric] apps: preview runtime reconnects after a backend bounce, hard reload falls through to start 2026-08-06 20:50:13 -07:00
ciregenz 83c327781a [eric] dictation: cue volume defaults to 0.7, Eric's ear-tuned level 2026-08-06 20:50:13 -07:00
ciregenz 6cbc1979d0 [eric] canvas: empty-state hero yields to open windows, Marketplace/Settings chrome titles dropped 2026-08-06 20:50:13 -07:00
ciregenz 92f00636df [eric] repo: untrack the electron/node_modules symlink the browser merge re-introduced, gitignore already covers it 2026-08-06 16:52:57 -07:00
ciregenz 1b2203fa75 [eric] boot: anthropic and the sdk+mcp chain leave the import graph, api-ready median 2531 to 1843ms, hooks re-import at call time 2026-08-06 16:33:22 -07:00
ciregenz 1a04797c09 [eric] chat: collapse hides instead of unmounting, re-expand is a display toggle at 20ms, windowing keeps the parked DOM small 2026-08-06 16:18:28 -07:00
ciregenz 1637085b9f [eric] overlay: Alt+Space summons a nonactivating slime pill over any app, typed text lands in the composer, Settings-gated off 2026-08-06 16:14:44 -07:00
ciregenz 7399076906 [eric] boot: only mid-turn sessions hydrate at startup, 2269 settled ones lazy-load, agents lifespan 850 to 537ms median 2026-08-06 16:08:30 -07:00
ciregenz b9b66e3d3c [eric] chat: open seeds one screen not four (525 to 293ms first paint), a live stream pins every frame so the bottom never drifts 2026-08-06 16:03:50 -07:00
ciregenz 8042da10da [eric] agents: the CLI pre-warms while the user types, first-turn answer median 2.42s to 1.23s, one spawn per session enforced 2026-08-06 15:50:32 -07:00
ciregenz bd822c16ed [eric] agents: spawn-phase logs carry monotonic ms stamps so a turn's latency attributes itself from one grep 2026-08-06 15:31:03 -07:00
ciregenz 42103a4e23 [eric] agents: launch honors its prompt instead of silently dropping it, spawn phases log their trail (the ENG-131 ghost hang) 2026-08-06 15:19:02 -07:00
ciregenz 3ea5167778 [eric] dock: browser and app tiles gain Minimize, scoped to kinds the rail actually parks 2026-08-06 14:58:55 -07:00
ciregenz 77ce26638d [eric] updater: a silent Squirrel check gets diagnosed by a main-side watchdog, DMG and translocated launches learn at boot they cannot update 2026-08-06 14:55:18 -07:00
ciregenz 0e43b7c0c9 [eric] workflows: settle seq forces a post-commit occurrences refetch, the optimistic toggle can no longer strand Coming up on pre-commit truth 2026-08-06 14:49:36 -07:00
ciregenz 712fd4e21d [eric] update: an accent breadcrumb walks gear tile to Advanced row to a relaunch pill the moment an update is downloaded 2026-08-06 14:49:36 -07:00
ciregenz 8a84927ce9 [eric] workflows: a schedule edit on a cloud-hosted workflow now pauses or repushes the CLOUD copy, unreachable fails honest with disk-truth rollback 2026-08-06 14:32:21 -07:00
ciregenz d1e666ddda [eric] shortcuts: Cmd+1..9 focus the Nth dock tile, routed through main so a focused webview cannot eat it 2026-08-06 14:16:44 -07:00
ciregenz a926a08190 [eric] email: Settings gains a real cloud-run email toggle behind a degrade-honest proxy, ghost label survives old prod 2026-08-06 14:06:46 -07:00
ciregenz 84c40f151e [eric] apps: the reload icon's hard-reload popover folds into the shared right-click menu 2026-08-06 13:54:25 -07:00
ciregenz aa2e5f46d2 [eric] spaces: tile right-click joins the shared menu, body stamp keeps the strip from sliding away under an open menu 2026-08-06 13:52:02 -07:00
ciregenz ad46338a9d [eric] electron: app-preview webviews get an app-flavored menu, no browser-tab verbs and links say Open in Browser 2026-08-06 13:49:15 -07:00
ciregenz 1cf4c15542 [eric] workflows: every hub surface answers right-click through one shared row set, calendar MUI menu and its window.confirm die 2026-08-06 13:46:54 -07:00
ciregenz 21a08c23be [eric] browser-v3: correct criterion 9, recording is 100% live; the 0% was a dry-log misread 2026-08-06 13:38:56 -07:00
ciregenz 2e7a1d0a37 [eric] browser-v3: skillstats counted a failure line as a match and mislabelled dry logs 2026-08-06 13:35:49 -07:00
ciregenz af69bd5017 [eric] composer: attachment chips answer right-click, file chips gain Copy path and a reveal-only Finder IPC 2026-08-06 13:34:37 -07:00
ciregenz dd8bac0552 [eric] settings: Commands tab joins the claude-flat grammar, hairline rows and ghost source column replace chips and hover cards 2026-08-06 13:29:55 -07:00
ciregenz 2f7ddc6dd3 [eric] browser-v3: move the measurement harness into the repo, out of a temp dir 2026-08-06 13:27:26 -07:00
ciregenz e3c778ff6f [eric] chat: finished-message markdown parses once ever, LRU tree cache cuts transcript remount paint 483ms to 126ms 2026-08-06 13:27:09 -07:00
ciregenz 4311a90114 [eric] canary: read both live handles from the environment, and refuse loudly when one is unset 2026-08-06 13:26:29 -07:00
ciregenz 5dd25b6948 [eric] usage: your own sessions, windowed, automation excluded, friendly model names, claude-flat rows 2026-08-06 12:45:09 -07:00
ciregenz 580a39fe99 [eric] dock: entries rebuild on a name+label fingerprint instead of every stream tick to any session 2026-08-06 12:37:46 -07:00
ciregenz 19926b5dea [eric] shortcuts: Cmd+T new tab or browser, Cmd+W closes the focused card undoably, routed through main like Cmd+R 2026-08-06 12:34:29 -07:00
ciregenz 9d0562db22 [eric] memory: the distiller learns real facts from real chats (proven live), list fetches skip the HTTP cache 2026-08-06 12:24:44 -07:00
ciregenz 5221540e17 [eric] canvas: fullscreen glides straight to the zone, shell wash renders identically to the canvas wash (grain seam class dead), grain hook survives two consumers, tool-ui repairs learn agent id aliases and array rows 2026-08-06 12:22:00 -07:00
ciregenz 0f4226dfef [eric] canvas: fullscreen tile re-derives its origin from the painted rect at settle, pill-to-fullscreen stops parking offset 2026-08-06 12:01:34 -07:00
ciregenz 9bf90cdcab [eric] voice: pill and capsule sit on the Help button line, no-drag island carries the clicks 2026-08-06 11:34:27 -07:00
ciregenz e2ec1f981d [eric] canvas: the translucent arrow-nav chevrons are gone, arrow keys still navigate 2026-08-06 11:31:50 -07:00
ciregenz 887a6a5531 [eric] bundles: youtube MCP drops the googleapis monolith for a one-API shim, 32.6M to 3.7M, handshake-verified 2026-08-06 11:20:53 -07:00
ciregenz 0ba7ca6d19 [eric] shortcuts: Cmd+C attaches the selection straight into composer context, Cmd+Z undoes card closes 2026-08-06 10:58:31 -07:00
ciregenz a64fcef234 [eric] memory: one user-curated fact store rides every agent turn, fully visible and editable in Settings 2026-08-06 10:42:54 -07:00
ciregenz 09e3116041 [eric] desktop: app tiles are always generated icons, the screenshot rides a hover quick-look instead 2026-08-06 10:23:36 -07:00