Commit Graph
386 Commits
Author SHA1 Message Date
ciregenz 7a942fa9fa Merge remote-tracking branch 'origin/eric/dev' into eric/browser-merged 2026-08-08 09:22:33 -07:00
ciregenz ec9941821c [eric] backend: respawn on unexpected exit (bounded, backoff), so a crash no longer leaves a dead shell and orphaned app runtimes 2026-08-07 21:02:08 -07:00
ciregenz ed8e7d6304 [eric] updater: OPENSWARM_NO_UPDATE=1 stops a local packaged build from downgrading itself mid-smoke 2026-08-07 20:30:05 -07:00
ciregenz 6d8ecc6fd4 [eric] canvas: the host window allows visual zoom, so macOS actually delivers a trackpad pinch to the dashboard (ENG-186) 2026-08-07 16:24:07 -07:00
ciregenz c0117d817b [eric] voice: reap fn-watchers stranded by a crash, so a dead session can't keep tapping the keyboard 2026-08-07 15:31:09 -07:00
ciregenz 571b10b521 [eric] release: 1.7.5 2026-08-07 12:48:06 -07:00
ciregenz 3017d73ad0 [eric] telemetry: a native crash reports its own cause on the next boot instead of leaving a file nobody reads 2026-08-07 12:01:06 -07:00
ciregenz c6a0c1f34b [eric] telemetry: silent-recovery rows carry journey context, and packaged builds stop shipping test files 2026-08-07 06:35:20 -07:00
ciregenz d59b61e810 [eric] telemetry: memory thresholds are env-overridable so support and tests can prove the wire 2026-08-07 00:16:10 -07:00
ciregenz 7a1518df32 [eric] telemetry: memory sensor reports cap crossings and leak-shaped growth, silent on healthy sessions 2026-08-07 00:08:53 -07:00
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 751747b293 [eric] telemetry: crash recoveries, wedge recoveries, and rage clicks reach analytics (silent-failure family A) 2026-08-06 22:45:32 -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 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 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 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 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 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 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 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 358ec9c9cb [eric] release: electron lockfile catches up to 1.7.4 2026-08-06 08:36:15 -07:00
ciregenz ef594f737d [eric] voice: survey-grade accuracy layer, Chromium AGC off, suppress-nst+no-context+flash-attn+temp ladder, window energy gate, sub-second zero-pad, stutter and glossary-echo filters 2026-08-06 00:22:32 -07:00
ciregenz 5130309a72 [eric] voice: text-landed chime cut, haptics toggle, full-clip decode wins at stop, beam search 5; dock tile says Browsers 2026-08-06 00:02:52 -07:00
ciregenz 753903cc16 [eric] voice: ambient typing no longer suppresses the legacy chord under an fn primary 2026-08-05 22:57:20 -07:00
ciregenz dff37925b7 [eric] voice: only the tier serving the PRIMARY combo retires fallbacks, a proven tap no longer kills Cmd+Shift+D under an fn primary 2026-08-05 22:55:21 -07:00
ciregenz 110d5a9b3b [eric] voice+canvas: personal dictionary rides every decode, local dictation history with copy-back, double-click empty canvas fits everything 2026-08-05 22:43:15 -07:00
ciregenz ba8a9c4038 [eric] voice: scratch-that discards the take, multilingual Small with auto language detect joins the catalog 2026-08-05 21:19:00 -07:00
ciregenz 2dd10e164a [eric] voice: one-time Globe-key conflict tip when macOS still binds fn to the emoji picker 2026-08-05 21:15:55 -07:00
ciregenz 99d8ef8314 [eric] voice: fn-watcher compiles per-arch into build-staging and ships via extraResources 2026-08-05 21:12:15 -07:00
ciregenz 3a2c0c3335 [eric] voice: fn/Globe is the dictation key (native CGEvent watcher), Ctrl+Win chord on Windows, legacy chord backs both until proven 2026-08-05 20:22:23 -07:00
ciregenz f75ae3fbf7 [eric] voice: small.en-q5_1 is the accuracy-first default, bundled base serves while it downloads in background 2026-08-05 20:17:27 -07:00
ciregenz d9813de3cd [eric] voice: whisper's non-speech captions no longer inject as dictation (ENG-167) 2026-08-05 18:07:23 -07:00
ciregenz d5c01a31e6 [eric] release: 1.7.4 2026-08-05 16:39:33 -07:00
ciregenz e266d1ea38 [eric] shortcuts: Cmd+L works again (stale isActive closures fixed) and now fires from inside focused browser pages too 2026-08-05 16:06:40 -07:00
ciregenz 59edbb52f6 [eric] electron: slack connect UA pins to the runtime Chrome version instead of a rotting hardcode 2026-08-05 11:35:29 -07:00
ciregenz 34451d0b0d [eric] shell: native window background follows the theme, live-resize filler never flashes boot-dark under a light UI 2026-08-05 00:38:10 -07:00
ciregenz 7eae46c365 [eric] release: 1.7.3 2026-08-04 22:31:44 -07:00
ciregenz 09f15c0865 [eric] browser: see into cross-origin iframes, which Chromium reports as pages not iframes 2026-08-04 20:59:44 -07:00
ciregenz 4554af3b1e [eric] browser: pinch reaches the page like real Chrome, Figma and Maps own their canvas zoom inside browser cards 2026-08-04 19:45:22 -07:00
ciregenz 540bf91bd9 [eric] browser: slack.com gets the bare Chrome UA, its support wall read our product token as an unsupported browser 2026-08-04 18:48:35 -07:00
ciregenz 2e0572ca72 [eric] voice: whisper boots from a private empty cwd and reaps mid-boot children, the temp-dir scan wedge killed dictation 2026-08-04 16:43:21 -07:00
ciregenz 6713ae7a2b [eric] release: 1.7.2 2026-08-04 11:09:37 -07:00
ciregenz 26e2a8e6d7 [eric] voice: streaming dictation engine, phrases commit once and preview re-decodes only the open phrase 2026-08-04 00:10:53 -07:00
ciregenz eec6e5d7dc [eric] voice: mic entitlement + TCC prompt, the reason prod dictation died silently while dev worked 2026-08-03 22:54:53 -07:00
ciregenz dcffaa5067 [eric] shell: crashes write a report the bug bundle attaches, agents finishing off-screen tap the OS, text size is a slider 2026-08-03 22:31:53 -07:00
ciregenz c118358307 [eric] release: 1.7.1 2026-08-03 16:53:54 -07:00
ciregenz 50d6010862 [eric] merge eric/browser-merged: browser hangs, wrong-surface sends, and measured latency 2026-08-03 12:22:10 -07:00
ciregenz f7720f7d32 [eric] vmp: sign-pkg wants the directory holding the app, not the app, or it finds nothing 2026-08-02 20:12:05 -07:00
ciregenz 171b4544ff [eric] vmp: find the EVS client in its own venv, PEP 668 keeps it out of system python 2026-08-02 19:54:17 -07:00