ciregenz
|
e2602f96de
|
[eric] state: the last seven data.X thunks reject on non-2xx, closing the ENG-277 payload class
|
2026-08-12 19:47:27 -07:00 |
|
ciregenz
|
c58d9e1657
|
[eric] ui: the input readability fix touches colour only, not the geometry of 74 controls (ENG-281)
|
2026-08-12 19:09:18 -07:00 |
|
ciregenz
|
5cf1b2ddff
|
[eric] state: the last two array-spread reducers are guarded at both layers (ENG-277)
|
2026-08-12 19:03:16 -07:00 |
|
ciregenz
|
33b1d9d8e3
|
[eric] test: exhaustive invariant suite for the exp.1 fixes; it found a multi-slash proxy URL bug on first run
|
2026-08-12 18:48:05 -07:00 |
|
ciregenz
|
b5f010fbb8
|
[eric] ui: every input inherits readable colours from the theme, so no field can be black on black (ENG-281)
|
2026-08-12 18:25:03 -07:00 |
|
ciregenz
|
471c0a9dd5
|
[eric] state: list thunks reject on non-2xx, so a failed fetch never resolves undefined into a reducer (ENG-277)
|
2026-08-12 16:59:34 -07:00 |
|
ciregenz
|
17653af557
|
[eric] state: a wrong-shaped API answer changes nothing instead of throwing inside immer (ENG-277)
|
2026-08-12 16:05:49 -07:00 |
|
ciregenz
|
f4bb5f566b
|
[eric] signin: a not-ready install refuses locally instead of landing on the cloud's install_id error
|
2026-08-12 15:32:22 -07:00 |
|
ciregenz
|
9a1dffe811
|
[eric] notifications: six real controls instead of two, and workflow alerts stop obeying the agent toggle
|
2026-08-12 15:14:52 -07:00 |
|
ciregenz
|
eb85fe428b
|
[eric] browser: agent keystrokes can no longer land in the user's composer (ENG-252)
|
2026-08-12 14:39:57 -07:00 |
|
ciregenz
|
e7f7079f9e
|
[eric] canvas: stress the closed-position cap under flaky-backend and long-life pressure; 200 cards x 30 strip-restore cycles lose nothing and the map stays bounded at 3000 churned cards
|
2026-08-12 13:21:29 -07:00 |
|
ciregenz
|
13de02f91a
|
[eric] canvas: the closed-position cap clears a real board (a 60-card board lost 10 spots at 50), with a guard that pins both the bound and the restore
|
2026-08-12 13:11:00 -07:00 |
|
ciregenz
|
eb21e6eb9b
|
[eric] canvas: closed-card positions are capped at 50 instead of remembered forever; the reconnect pill confirms it healed instead of just vanishing
|
2026-08-12 13:01:18 -07:00 |
|
ciregenz
|
df32505aca
|
[eric] compounding-growth pass: zOrders is pruned on every card removal, a model switch persists so the notice heals once, orphaned app workspaces are listable and deletable, and two browsers opened in the same millisecond no longer collide into one
|
2026-08-12 11:17:46 -07:00 |
|
ciregenz
|
0431844621
|
[eric] ui: every Alert in the app inherits the design tokens from one theme override, so stock Material blue cannot leak through any of the ~15 call sites
|
2026-08-12 10:35:22 -07:00 |
|
ciregenz
|
0b0a5d78ca
|
[eric] agents: a garbled dashboard file can no longer wipe the board; the sessions list fails loud instead of answering empty, and an unscoped fetch loses its delete authority
|
2026-08-12 02:10:41 -07:00 |
|
ciregenz
|
9ece424d1f
|
[eric] workflows: a running workflow gets a real agent card, so its browsers dock inside it and are reaped with it; the card goes when the run stops (ENG-256)
|
2026-08-12 01:28:54 -07:00 |
|
ciregenz
|
00624f230c
|
[eric] canvas: a card tiled to fill the screen hides the floating chrome the same way fullscreen does, so tidy and zoom stop sitting on its composer (ENG-259)
|
2026-08-12 01:25:30 -07:00 |
|
ciregenz
|
3ac55520d6
|
[eric] browser: the upload tool also finds inputs inside shadow roots and embedded frames, and a refused path names the exact staging copy that unblocks it (ENG-47)
|
2026-08-11 20:22:10 -07:00 |
|
ciregenz
|
ba97d141ee
|
[eric] browser: agents can attach a file to an upload field without the OS picker; the path is allow-listed backend-side so a hostile page cannot turn it into exfiltration (ENG-47)
|
2026-08-11 20:10:36 -07:00 |
|
ciregenz
|
45b133d82a
|
[eric] voice: mark the dev-only inject test seam's promise as intentionally floating
|
2026-08-11 17:58:30 -07:00 |
|
ciregenz
|
f5b9a8ae50
|
[eric] revert the ENG-252 focus-restore attempt: webview focus fires zero host DOM events, so no renderer-side hook can detect the steal (proven live)
|
2026-08-11 16:55:53 -07:00 |
|
ciregenz
|
f598becfd2
|
[eric] browser: reap finished-agent browsers, close an agent's browsers with it; dictation confirms the guest target before claiming success; agent-driven focus steal restores the user's caret; window size persists across a crash-recovery recreate
|
2026-08-11 14:53:16 -07:00 |
|
ciregenz
|
1215cfec50
|
[eric] browser: detect Electron by the preload bridge not the UA string, so the Electron token can be stripped app-wide and cross-origin sign-in iframes stop reading as an embedded browser (ENG-238)
|
2026-08-11 02:54:40 -07:00 |
|
ciregenz
|
6afa7a1a1d
|
[eric] dictation: only the composer the transcript lands in shows Stop dictation, not every chat at once (ENG-239)
|
2026-08-11 01:48:40 -07:00 |
|
ciregenz
|
38a4b95450
|
[eric] resilience: one failed request now confirms with a probe instead of waiting for a second, and the reconnecting pill actually centres
|
2026-08-11 01:05:47 -07:00 |
|
ciregenz
|
210e8c7410
|
[eric] canvas: a stray pinch can no longer magnify the whole app out of view, and a non-finite camera is refused instead of bricking navigation
|
2026-08-11 01:00:07 -07:00 |
|
ciregenz
|
3a2d1049c3
|
[eric] resilience: a stalled request probes the backend instead of waiting out its timeout, so a wedged port surfaces in seconds
|
2026-08-10 21:45:23 -07:00 |
|
ciregenz
|
b56e91b1eb
|
[eric] resilience: api fetches ride backend restarts (bounded retry), a dead backend shows an honest reconnecting pill and self-heals
|
2026-08-10 20:35:07 -07:00 |
|
ciregenz
|
6a49713695
|
[eric] sign-in: deep links queue-and-drain (no lost race) with durable retry-until-identity-lands handoff
|
2026-08-10 19:44:18 -07:00 |
|
ciregenz
|
ade1207d86
|
[eric] crash: shutdown fuse hard-exits a wedged backend tree in 10s, uvicorn drains connections on an 8s budget, and three GPU deaths buy one boot of software rendering with an honest pill
|
2026-08-10 09:02:31 -07:00 |
|
ciregenz
|
7ba5a067d7
|
[eric] crash: browser-card teardown quiesces every webview to a committed about:blank before unmount, closing the live-surface destroy gap app cards already had covered
|
2026-08-10 08:46:23 -07:00 |
|
ciregenz
|
8aac6656c4
|
[eric] crash: app-card teardown waits for the about:blank commit event plus a settle frame instead of a 250ms fail-open timer, so a loaded machine stops destroying live GPU surfaces mid-composite
|
2026-08-10 08:37:42 -07:00 |
|
ciregenz
|
df8af72125
|
[eric] crash: safe-mode loop breaker; two dirty exits in ten minutes boots with webviews parked as screenshots and app runtimes held until clicked, with a crash fingerprint from the newest minidump
|
2026-08-10 08:36:47 -07:00 |
|
ciregenz
|
2d5f35ad6e
|
[eric] browser: agent commands restore the user's typing focus, so a running browser agent stops yanking the cursor out of the composer
|
2026-08-10 08:27:12 -07:00 |
|
ciregenz
|
45b3a9de37
|
[eric] canvas: layout load keeps exactly one fullscreen owner, so a pre-1.7.6 profile with a second persisted fullscreen entry can no longer drag cards while fullscreen
|
2026-08-09 18:31:04 -07:00 |
|
ciregenz
|
5eca1df72d
|
[eric] agents: mid-turn provider backoff shows a muted retrying pill instead of a dead card, and transient pills survive session status frames
|
2026-08-09 14:01:11 -07:00 |
|
ciregenz
|
8fdc1fa2f9
|
[eric] settings: the shortcut recorder owns the keyboard while armed (window-level capture, hotkeys suppressed), so rebinding no longer snaps back to fn
|
2026-08-09 13:51:55 -07:00 |
|
ciregenz
|
e4454a0b9e
|
[eric] skills: the Add box resolves pasted README install commands (npx/pnpm/bunx, skills.sh URLs) through the parser that shipped without a client
|
2026-08-09 12:51:02 -07:00 |
|
ciregenz
|
0688c85607
|
[eric] apps: apps can call the user's connected tools behind a per-app grant gate (approval card, deny-by-default, Origin-derived identity)
|
2026-08-09 08:52:36 -07:00 |
|
ciregenz
|
31a5386186
|
[eric] voice: the mic parks warm for 5 minutes after each dictation, so the next fn press skips the ~2.5s device power-up
|
2026-08-09 08:24:30 -07:00 |
|
ciregenz
|
4ebf9a91f6
|
[eric] canvas: fullscreen can no longer strand a chromeless shell (ghost-id guard, one owner, layout-fetch prune, always-clickable exit pill)
|
2026-08-09 07:48:30 -07:00 |
|
ciregenz
|
18cc7c7417
|
[eric] voice: mic open overlaps the IPC, context and worklet setup, and the stop path no longer waits on the streaming shutdown it rarely needs
|
2026-08-08 22:08:13 -07:00 |
|
ciregenz
|
d60a99ddd1
|
[eric] boot: bootstrap fetches retry until the backend answers and heal on focus, so a lost boot race stops bricking first paint
|
2026-08-08 09:34:13 -07:00 |
|
ciregenz
|
610ba00a9d
|
[eric] apps: the host SDK lands, apps call the user's models, fire workflows, and spawn positioned agents through pre-wired helpers
|
2026-08-08 01:14:00 -07:00 |
|
ciregenz
|
b2181e5a1c
|
[eric] browser: the black action-feed box is gone everywhere, the live mini browser IS the progress display
|
2026-08-08 00:34:07 -07:00 |
|
ciregenz
|
256e922886
|
[eric] canvas: browsers and apps share one 10-renderer ceiling, so the two caps can no longer stack to 14
|
2026-08-07 20:10:59 -07:00 |
|
ciregenz
|
5b63c98854
|
[eric] dictation: the cursor wins, so a transcript lands where you clicked, not where you started (reverts ENG-176)
|
2026-08-07 16:01:05 -07:00 |
|
ciregenz
|
4293904214
|
[eric] canvas: the stock wash is one flat colour, so a default install has no texture left to tear
|
2026-08-07 15:41:07 -07:00 |
|
ciregenz
|
ec0d706a80
|
[eric] canvas: cut the evictable full-window texture 98MB to 43MB, so the wash has far less left to drop as a band
|
2026-08-07 15:23:43 -07:00 |
|