100 Commits
Author SHA1 Message Date
ciregenz 14120a43f7 [eric] changelog: 1.7.7 gains the passkey sign-in and board-wipe lines 2026-08-12 09:35:53 -07:00
ciregenz e9ec64c64b [eric] passkeys: the account-selection handler read the wrong argument and answered null, cancelling every passkey sign-in; sign-in works again (ENG-269)
(cherry picked from commit c00d8b8380)
2026-08-12 09:35:23 -07:00
ciregenz 3333408195 [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
(cherry picked from commit 0b0a5d78ca)
2026-08-12 09:35:14 -07:00
ciregenz 8032971468 [eric] service: a completed shutdown stands the hard-exit fuse down; it was firing os._exit(0) inside the test runner and silently killing 42% of the suite
(cherry picked from commit 25fb3677ca)
2026-08-12 00:02:40 -07:00
ciregenz c73264fbdd [eric] apps: the vite boot lock is loop-local here too, and the serve-static spawn test stops mocking a sync method with an async one 2026-08-11 23:36:23 -07:00
ciregenz 29f9e4401e [eric] apps: 1.7.7 takes the serve-static boot-lock fix; without it the first serve-static app wedged every other app on "Starting preview" 2026-08-11 23:25:47 -07:00
ciregenz ebb0603f45 [eric] release: 1.7.7 is exp.2's proven tree promoted to stable; 1.7.6 never shipped as stable so its changelog entry becomes 1.7.7's 2026-08-11 20:36:27 -07:00
ciregenz 074b1a9bec [eric] release: experimental versions use the documented exp.N form so successive builds share one update channel 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 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
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 366f74f688 [eric] browser: the first-message fast path learns which integrations are natively connected, so a Slack ask stops opening a browser when Slack tools exist 2026-08-10 08:18:59 -07:00
ciregenz 263ce73b05 [eric] release: 1.7.6 release notes + the spawn-env test learns the auto-memory kill switch, so the pre-tag gates go green 2026-08-10 08:15:38 -07:00
ciregenz 44d326e595 [eric] release: bump version to 1.7.6 2026-08-09 22:02:02 -07:00
ciregenz 91058c0663 [eric] browser: a dashboard-less session that asks for a browser gets a one-line error instead of a hung tool call and an empty errored sub-session 2026-08-09 20:24:03 -07:00
ciregenz 7297b0a8e3 [eric] agents: the CLI's own auto-memory is disabled on every spawn, so memories stop landing in per-chat buckets and MemoryRead/MemoryWrite on the shared store is the one memory surface 2026-08-09 19:53:14 -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 d7ed3cda2d [eric] apps: the template vite config loads as ESM (.mts) and deps ride a vendored lockfile, so a fresh app boots on the bundled node 20 instead of dying on ESM-only plugins 2026-08-09 18:17:44 -07:00
ciregenz 09df1c2d17 [eric] build: the webapp-template node_modules archive skips when already built for the digest, so an interrupted build stops re-running the 22s npm install every restart 2026-08-09 17:04:58 -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 97d0c7a8ef [eric] apps: an app nobody is editing serves its built bundle with no dev-server process (~270MB -> ~0), vite reboots the moment an agent binds or the dist goes stale 2026-08-09 16:53:14 -07:00
ciregenz 2476d4c03d [eric] linter: the file-size debt is reported (82 grandfathered oversized files, top offenders named) instead of hiding behind the enforcement zero 2026-08-09 14:47:31 -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 b47ad9c60f [eric] agents: active time is stall-capped inter-event work, so one wedged turn can't book 54 hours of 'agent time' 2026-08-09 14:08:34 -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 3c2aeb8fa7 [eric] apps: runtime status carries ready + serving_url, so 'spawned' and 'actually serving' stop being the same claim 2026-08-09 12:51:12 -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 14d4a71e15 [eric] agents: a TLS certificate failure is non-transient and says so, instead of burning 335s of retries on a broken cert chain 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
ciregenz 6bd3f93f07 [eric] chat: questions and tool permission asks render as the vendored tool-ui cards (question-flow + approval-card); QuestionForm extracted to kill an import cycle; registry loads the full question-flow union 2026-08-09 10:01: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 0592437941 [eric] memory: agents get MemoryRead/MemoryWrite (atomic batch, overflow-consolidate protocol) and the prompt block freezes per session, hermes-agent style 2026-08-09 08:52:30 -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 02cc65632a [eric] tool-ui: repair the payload shapes agents actually emit (stat keys, step ids, receipt outcomes), so widgets render instead of quietly falling back 2026-08-09 07:48:30 -07:00
ciregenz 4ac57967ff [eric] agents: the last silent-quit nudge demands a text answer instead of more work, and an exhausted budget says so in the chat 2026-08-08 22:35:41 -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 c9840eb00b [eric] hardening: legacy pre-collapse tool ids canonicalize to core, and the docked mini gets a load listener plus a 1s belt so a silent layout shift can't strand it 2026-08-08 20:48:47 -07:00
ciregenz 16d6b5e378 [eric] agents: combined server answers tool calls on threads and survives a broken module, restoring the parallelism ten processes gave for free 2026-08-08 14:35:35 -07:00
ciregenz 4faba74d55 [eric] agents: every builtin tool server rides ONE process per chat, and the gate enumerates its grants instead of wildcarding 2026-08-08 12:59:50 -07:00
ciregenz c0d33c0cfb [eric] browser: the docked mini re-measures when its slot announces a remount, retiring a 150ms forever-poll of layout reads 2026-08-08 09:47:25 -07:00
ciregenz 4d86b3377d [eric] agents: the three ungated meta MCP servers ride one process, cutting three idle interpreters per parked chat 2026-08-08 09:41:45 -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 5c0d6d52b6 [eric] apps: render-health beacons ride the runtime log stream where they actually arrive, vite-plugin-terminal owns the page console 2026-08-08 02:14:27 -07:00
ciregenz ab847fe2c4 [eric] apps: a spawned agent lands on the most-recent dashboard when the app names none, so the card is visible not just real 2026-08-08 02:14:27 -07:00
ciregenz 9541d0cf09 [eric] apps: the warm node_modules cache proves completion with a sentinel and never npm-installs on the request path, which wedged the whole backend 2026-08-08 02:14:26 -07:00
ciregenz a0e7e719fa [eric] browser: delete the orphaned BrowserAgentInlineFeed component (missed in the action-feed removal commit) 2026-08-08 01:22:54 -07:00
ciregenz a12047ae66 [eric] apps: the full tool-ui widget set is vendored into every app workspace behind an @toolui alias, deps exact-pinned to the host's locked versions 2026-08-08 01:22:43 -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 1f3c211146 [eric] apps: generated apps default to an Apple design language, SF-first type, system blue, iOS grays, hairline structure 2026-08-08 01:05:40 -07:00
ciregenz c764604a53 [eric] canvas: a rejected rect no longer scores as trusted, so the settle can fix a stale origin instead of parking fullscreen 52px off 2026-08-08 01:00:32 -07:00
ciregenz ce2ad6bf4b [eric] apps: Building only ever covers a frontend that actually threw while the agent edits, agent activity alone can never curtain an app 2026-08-08 00:40:54 -07:00
ciregenz f25fe95c37 [eric] browser: RequestHumanIntervention is never auto-injected, the toggle really removes it, and workflow runs never see it 2026-08-08 00:37:38 -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 6dd2a2b26f [eric] canvas: zoom dial runs 1.5x hotter so the default 50 feels like the old 75 2026-08-08 00:34:06 -07:00
ciregenz bb906d81b8 [eric] apps: a frozen app runtime is thawed before it is reaped, so a parked ghost stops surviving every TERM we send it 2026-08-07 21:48:58 -07:00
ciregenz b537a4ed63 [eric] apps: the ghost reaper reads working directories too, so an orphaned app backend whose argv never names the workspace stops being invisible 2026-08-07 21:36:51 -07:00
ciregenz 01e295ac5c [eric] agents: parked CLIs die at 10 minutes and the warm cap drops to 8, cutting the measured 1.3GB idle ceiling roughly in half 2026-08-07 21:10:44 -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 08694d18b8 [eric] apps: the ghost reaper matches workspace paths case-insensitively, so a packaged app's openswarm vs OpenSwarm casing no longer spares orphans 2026-08-07 21:00:44 -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 2bd42f7f35 [eric] tests: the sync-test contract tests now pin the progress-based wait, not the deleted fixed budget 2026-08-07 20:27:10 -07:00
ciregenz 8e9baee839 [eric] workflows: at most 3 run at once, extra due fires queue for a slot and give up honestly, so 30 saved workflows can never become 30 live agents 2026-08-07 20:26:27 -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 dfed363db7 [eric] apps: the scaffold ships a durable store and the skill forbids memory-only state, since the runtime dies on a timer 2026-08-07 20:01:06 -07:00
ciregenz dec16d78db [eric] apps: the ghost sweep fails closed, a bad ps scan or a mid-spawn race can no longer read working apps as ghosts 2026-08-07 19:54:11 -07:00
ciregenz f32bcafc01 [eric] apps: idle pool holds 6 frozen runtimes instead of 3, affordable now that the TTL bounds their lifetime 2026-08-07 19:51:25 -07:00