ciregenz
|
f8f119a892
|
[eric] canvas: exiting a screen-filling card holds the chrome down through the shrink animation, instead of painting tidy/zoom over the still-large card
|
2026-08-12 02:26:51 -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
|
a3882f2e27
|
[eric] browser: a docked browser follows its chat while the chat is collapsed, instead of painting at the spot the chat used to be (ENG-260)
|
2026-08-11 23:24:31 -07:00 |
|
ciregenz
|
43c0580438
|
[eric] dashboard: a new dashboard shows the empty-canvas hero again; the emptiness check counted sessions from every OTHER dashboard too
|
2026-08-11 21:37:39 -07:00 |
|
ciregenz
|
62e707293e
|
[eric] models: retire the free tier (nothing mints it, existing installs migrate off) and drop the silent mid-run pin to Haiku it carried; pull Fable, which was selectable and never worked
|
2026-08-11 21:00:38 -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
|
54c336f5bc
|
[eric] canvas: a pan released outside the window self-heals on the next button-less move, so the canvas can never keep following the cursor (ENG-257); add .claude/VERIFICATION.md
|
2026-08-11 19:30:01 -07:00 |
|
ciregenz
|
bb278ffdff
|
[eric] copy an agent and its inline browser comes with it (ENG-250); browsing caches are swept past a 1.5GB cap at boot so runaway disk use cannot get the app killed (ENG-247)
|
2026-08-11 19:13:09 -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
|
98af7a2b1c
|
[eric] browser: closing a popped-out agent browser returns it inline to its chat instead of destroying it; the dead handleRemove was the wrong seam, the real X is WindowControls onClose (ENG-251)
|
2026-08-11 15:12:29 -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
|
9efc0cb515
|
[eric] browser: a sign-in popup from a browser card keeps that card's user agent, so Google stops refusing it (ENG-238); reconnecting pill portals to body so it centres
|
2026-08-10 23:19:27 -07:00 |
|
ciregenz
|
8ceca9ac97
|
[eric] tool-ui: every ShowUI card needs a stable id, and one question can only be answered once across all its surfaces
|
2026-08-10 22:46:12 -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
|
08d04d39f3
|
[eric] tool-ui: a press on an ask button in the collapsed pill reaches it, drag-capture no longer eats the click (ENG-232)
|
2026-08-10 21:30:48 -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
|
bceb407b56
|
[eric] updates: first check reads the experimental toggle from disk, ending the prerelease self-downgrade ping-pong
|
2026-08-10 17:55:10 -07:00 |
|
ciregenz
|
fb71f3b686
|
[eric] tool-ui: posts, links and images open as browser cards on click, leaving fullscreen first (ENG-234)
|
2026-08-10 17:32:53 -07:00 |
|
ciregenz
|
91c273c8e3
|
[eric] tool-ui: question-flow answers deliver (onSelect/onComplete), respond dedupes, dead sessions never look answerable
|
2026-08-10 17:32:53 -07:00 |
|
ciregenz
|
4cf0971693
|
[eric] tool-ui: asks pair by tool_use_id, early clicks held, stops release waits, dead asks go quiet
|
2026-08-10 14:45:11 -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
|
b91b271e19
|
[eric] ui: dead Create Custom connector entry removed, browser AI badge removed, and choice widgets show their question title and description
|
2026-08-10 08:24:41 -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
|
0d98fd6bc7
|
[eric] model picker: groups render subscriptions first, API keys second, routers last with tier separators, never interleaved
|
2026-08-09 17:01:41 -07:00 |
|
ciregenz
|
4804e232d9
|
[eric] canvas: NOTHING drags in fullscreen (untileForDrag chokepoint + guards on app and window cards; exit is the pill, green dot, or Escape)
|
2026-08-09 14:47:31 -07:00 |
|
ciregenz
|
f10591f07c
|
[eric] canvas: the legacy inline app picker is gone (Cmd+M and the composer route open the Applications window)
|
2026-08-09 14:15:27 -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
|
d050517c4e
|
[eric] canvas: fullscreen locks canvas panning (drag joined the wheel gate), thirds cut from the tile menus, Applications window gets always-on search + image-only tiles (screenshot > symbol > svg, letters never)
|
2026-08-09 13:27:26 -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
|
c8c3e7be0e
|
[eric] canvas: app card chrome carries no identity (bare strip); the dock tile is the personalized mark and prefers the app's real thumbnail over any glyph
|
2026-08-09 12:13:05 -07:00 |
|
ciregenz
|
d013ac5f1f
|
[eric] canvas: app chrome identity is the app's own monogram tile (no name), and the Workflows strip goes bare like Settings/Marketplace
|
2026-08-09 11:56:27 -07:00 |
|
ciregenz
|
95a41451b3
|
[eric] apps: grant identity is server-derived only (minted per-app tokens + serve-path referer), forged ids refused, grant dialogs queue
|
2026-08-09 11:47:27 -07:00 |
|
ciregenz
|
c794706281
|
[eric] settings: the in-body X is gone (traffic lights are the close), onboarding cursor re-anchored to the red dot
|
2026-08-09 11:47:27 -07:00 |
|
ciregenz
|
99433fd399
|
[eric] canvas: window chrome homogenized (no separator, same surface as the body), app title centered, one exit affordance in fullscreen
|
2026-08-09 11:47:27 -07:00 |
|
ciregenz
|
54bdd42018
|
[eric] apps: card chrome goes slim (identity + reload/share/kebab), and fullscreen flips it to a dark edge-to-edge system bar with its own exit
|
2026-08-09 11:03:41 -07:00 |
|
ciregenz
|
5f6cf216ad
|
[eric] canvas: the marquee inverts the PAINTED transform instead of a second camera copy, so a drawn-vs-painted mismatch can't exist
|
2026-08-09 10:28:23 -07:00 |
|