Commit Graph
2624 Commits
Author SHA1 Message Date
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 a28268bab9 [eric] agents: an unclassified turn failure arms a fresh CLI session, so a chat bricked on "hit a snag" heals on the user's own next send instead of needing a manual branch (ENG-258) 2026-08-11 19:43:54 -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 5516c8d808 [eric] browser: disable FedCM so Google sign-in buttons fall back to the classic popup Electron can actually drive; account chooser proven live on pinterest (ENG-238) 2026-08-11 14:06:18 -07:00
ciregenz 514c21e0ef [eric] release: 1.7.6-exp.3 carries the canvas, pinch, fullscreen, dictation, sign-in-iframe and metadata-deadline fixes 2026-08-11 12:50:47 -07:00
ciregenz 1a00fe93b8 [eric] frontend: port the esbuild test runner from the debt branch so npm test works here; 139 tests green 2026-08-11 12:20:32 -07:00
ciregenz 294db570ed [eric] outputs: the vite boot lock is loop-local, so a runtime started on a later event loop cannot silently hang forever; the serve-static test mock goes sync to match 2026-08-11 11:46:53 -07:00
ciregenz 2a3440ae8e [eric] agents: drop the unreachable 504 branch; the manager already swallows an aux timeout and returns a fallback group meta 2026-08-11 11:04:33 -07:00
ciregenz d216bb7f24 [eric] shell: a quit drained through the fullscreen guard re-issues the quit, so it exits instead of stranding a headless app 2026-08-11 11:03:02 -07:00
ciregenz c7c71b6ea0 [eric] build: the cancel trap fires only on INT/TERM and walks the tree; the EXIT variant flipped a green build's exit code to 1 under set -e 2026-08-11 10:57:14 -07:00
ciregenz a7c1a8256e [eric] build: a cancelled build reaps its whole process tree, so a killed run no longer orphans a 7za holding a 300MB archive for hours (ENG-247) 2026-08-11 06:33:51 -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 c4ded9a3ab [eric] browser: strip the Electron token from every request UA in the browser partition, so out-of-process sign-in iframes stop reading as an embedded browser (ENG-238) 2026-08-11 02:44:22 -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 8eee7ee16a [eric] agents: aux metadata streams get a 45s deadline and time out as an honest 504, not a ten-minute hang the console calls CORS 2026-08-11 01:36:17 -07:00
ciregenz 52afeb4222 [eric] shell: closing during a fullscreen transition waits for AppKit to finish, sealing the exit-fullscreen SIGTRAP 2026-08-11 01:28:45 -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 074b1a9bec [eric] release: experimental versions use the documented exp.N form so successive builds share one update channel v1.7.6-exp.2 2026-08-10 23:32:11 -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 fe77b64d8c [eric] release: 1.7.6-exp2 carries tonight's sign-in, update, resilience and tool-ui fixes 2026-08-10 22:07:34 -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 69c34b7439 [eric] agents: CreateApp is offer-first; track/organize/plan asks answer in chat instead of scaffolding an app 2026-08-10 17:55:10 -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 49dfab9eb9 [eric] tool-ui: validation bounces return plain content, not isError, so they persist and dead asks can demote 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 b0b7df3f61 [eric] agents: tool-ui default-on with media; WebFetch names its authed tier by-design 2026-08-10 14:06:49 -07:00
ciregenz 784b33c15a [eric] web: bing + brave join the keyless race behind ddg; bing went 50/50 on the burst that tripped both ddg and brave 2026-08-10 14:02:42 -07:00
ciregenz 321b1ef549 [eric] release: the experimental publish belt also sets the prerelease flag, which electron-builder dropped on both exp1 cuts 2026-08-10 13:04:52 -07:00
ciregenz d506cf1896 [eric] web: startpage's proof-of-work wall now covers POST too; name it a refusal so the breaker benches the dead engine honestly 2026-08-10 13:01:38 -07:00
ciregenz 785ee1301c [eric] boot: a failed first window load retries with backoff instead of stranding the splash forever, so a boot-time network-service crash stops reading as a bricked app v1.7.6-exp1 2026-08-10 10:38:36 -07:00
ciregenz de1915e20f [eric] updates: opting out of experimental builds offers the current stable even though it is a downgrade, so a tester is never stranded on a prerelease 2026-08-10 10:17:32 -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 edd72376f6 [eric] browser: the routing classifier treats the browser as last resort; native integrations beat it, search beats a page visit, reading beats acting 2026-08-10 08:47:13 -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 d215facb94 [eric] release: version 1.7.6-exp1; an experimental build rides its base release notes and the Help agent names the running version 2026-08-10 08:39:15 -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