Commit Graph
772 Commits
Author SHA1 Message Date
ciregenzandClaude Fable 5.1 9bdd45f791 [eric] policy: a block on Opus 5 finishes the ask on Opus 4.8 on the same lane before touching the user's key, one failover per ask; fleet 14 days: 78 blocks on opus-5, 0 on opus-4-8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 18:32:56 -07:00
ciregenzandClaude Fable 5.1 7004555f85 [eric] tests: the marketplace job test keeps one event loop across its requests; a bare TestClient tore the loop down after the POST and the job never ticked on Windows (ENG-490)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 10:58:28 -07:00
ciregenzandClaude Fable 5.1 d82cdf75c1 [eric] tests: the reaper's ps-fed tests pin the POSIX path, a Windows runner rightly took the PowerShell path and never read the fake (ENG-490)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 10:39:07 -07:00
ciregenzandClaude Fable 5.1 5d5a58fc29 [eric] pro: a pool with nothing to serve with ends the turn with a card that names OpenSwarm Pro and the way around it, instead of parking the chat 21 minutes as a transient; the probe reports it too (ENG-462)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 10:23:59 -07:00
ciregenzandClaude Fable 5.1 87ebcc47d7 [eric] windows: the ghost reaper scans and kills through PowerShell and taskkill instead of raising on SIGCONT, the publish gate and skill files use / keys, the time pin drops the glibc-only strftime flags, the shutdown fuse arms on Windows; eleven tests state their platform (ENG-490)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 10:23:58 -07:00
ciregenzandClaude Fable 5.1 46ab862ef4 [eric] tests: the websocket end-to-end test fakes the router present and stops on a failed turn; on a router-less runner it waited ten minutes for a reply the refused turn never sent (ENG-486)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 21:30:38 -07:00
ciregenzandClaude Fable 5.1 053cac99bb [eric] health: a chat resumes on a healed login only if it died in this run of the app; the fault kit takes a fire budget so a drill can watch a lane come back; the exp.9 notes carry the week
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 21:01:51 -07:00
ciregenzandClaude Fable 5.1 51bd1f990a [eric] ci: a test process never spawns a router (OSW_NEVER_SPAWN_ROUTER), the boot hook's sync npm install hung the suite on every router-less runner; the slot-size test locates its source on Windows (ENG-486)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 20:58:03 -07:00
ciregenzandClaude Fable 5.1 96cb953a27 [eric] models: Fable 5 back on both lanes (1-token probe 200, drill turn completed), Fable 5.1 API-key only (the pinned router's CLI version is refused on the sub lane), gpt-5.4 off the ChatGPT lane (OpenAI refuses it), Sonnet 5 at its $2/$10 rate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 20:58:03 -07:00
ciregenzandClaude Fable 5.1 e188b704f8 [eric] oauth: the refresh loop POSTs the router's test route (a GET was 405 and read as unknown, so it renewed nothing), reads the router's live rows instead of a stale db.json, and logs any answer it cannot read
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 20:58:03 -07:00
ciregenzandClaude Fable 5.1 a6ab863724 [eric] health: a dead-login verdict owns its second look; the lane answering again closes the pill and resumes its chats, capped at two resumes per chat so a flapping login cannot loop
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 20:58:03 -07:00
ciregenzandClaude Fable 5.1 2bc9d4eeb9 [eric] diagnostics: every envelope names the machine that wrote it (OS, version, chip, cores, memory), the fleet is not one M-series Mac
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 17:58:24 -07:00
ciregenzandClaude Fable 5.1 cca034fce3 [eric] models: GPT-6 Astra on both lanes (gpt-6-astra, 1.05M ctx, $10/$50); the gpt-5 body patch covers gpt-6; the sub-lane row is unverified until ChatGPT is reconnected
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 15:55:27 -07:00
ciregenzandClaude Fable 5.1 da56b2cd1a [eric] auth: a dead login heals itself: renewed before expiry, a turn's 401 advances the verdict, the retry pushes the pill, a reconnect resumes the chats; preflight never restarts the router
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 15:55:26 -07:00
ciregenzandClaude Fable 5.1 548a55a6d2 [eric] preflight: a lane is dead only on the router's CURRENT verdict, a stale errorCode 401 on an active row bounced the router every turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 10:23:28 -07:00
ciregenzandClaude Fable 5.1 05e8310691 [eric] health: a mid-refresh 401 that outlives the token rotation window is a dead login; recheck at 240s and push the pill
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 09:28:59 -07:00
ciregenzandClaude Fable 5.1 b965bf9118 [eric] usage: a By lane list names which credential served the requests; the by-lane counter read a key the router never sends and showed 0 everywhere
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 14:35:46 -07:00
ciregenzandClaude Fable 5.1 3054024285 [eric] settings: the agent and the Help agent read connected subscriptions from the router; three dead token fields told a subscribed user nothing was connected
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 13:22:26 -07:00
ciregenzandClaude Fable 5.1 1fe148305b [eric] tests: the Tisusa-shaped image is incompressible like a real one, and the importer's regenerated .env is counted as its own
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 12:59:48 -07:00
ciregenzandClaude Fable 5.1 126d23a539 [eric] tests: the Tisusa-shaped path is exactly 80 characters, as the client's longest name is
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 12:58:13 -07:00
ciregenzandClaude Fable 5.1 2378414b88 [eric] swarm: a Tisusa-shaped bundle (507 files, eight deep, dotfiles, spaces, a 1.2 MB file) round-trips through the real exporter and importer, drilled on windows-latest
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 12:57:34 -07:00
ciregenzandClaude Fable 5.1 efba6ea26a [eric] telemetry: every diagnostic envelope carries app_version; Alex's -11 crashes had to be dated by which fields they carried
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-04 12:17:12 -07:00
ciregenzandClaude Fable 5.1 8f8cadea79 [eric] outputs: POST /outputs/create honours the workspace_id its request model advertises; the route dropped it and an API-created app had no workspace
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-04 11:11:53 -07:00
ciregenzandClaude Fable 5.1 6abc71e2ac [eric] swarm: bundle keys are slashes on every OS; a Windows import walked staged files with backslashes, matched no workspace/ entry, and saved a hollow app that then said its files were missing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-04 09:30:05 -07:00
ciregenzandClaude Fable 5.1 425df32fc4 [eric] workflows: a cloud with no workflows API reads as unavailable with the honest reason, not as the cloud declining the request
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-04 08:24:20 -07:00
ciregenzandClaude Fable 5.1 9bad3f5ab3 [eric] tools: a connector's auth change is broadcast and the Tools page settles on it; the popup-close guess read the status once, before the claim landed, and never again until a reload
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 17:52:01 -07:00
ciregenzandClaude Fable 5.1 377c5f3a69 [eric] agents: a CLI that died between turns is respawned and resumed instead of carded on every send; a crash signal is named on the exhausted card
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 17:45:29 -07:00
ciregenzandClaude Fable 5.1 e20ff99631 [eric] tests: serve mode's URL is the bundle server's root, not the deep serve route
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 17:24:17 -07:00
ciregenzandClaude Fable 5.1 35bafaa2f4 [eric] outputs: serve mode hands a built bundle out from the root of its own loopback server; a deep path under the serve route left every React Router app blank after a reload
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 17:17:59 -07:00
ciregenzandClaude Fable 5.1 aadcf45398 [eric] outputs: an app's icon is one emoji (ported from eric/feature-requests, ENG-425); Material icon names were stored and never rendered, so every tile fell back to the grid
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 17:09:25 -07:00
ciregenzandClaude Fable 5.1 5b7c8ee2ba [eric] streaming: a finished reply no longer hands a still-thinking bubble to the next socket; the live thought is dropped when the answer starts and at every turn end, and a snapshot is only built for a turn in flight
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 16:14:53 -07:00
ciregenzandClaude Fable 5.1 09f839496f [eric] release: 1.7.10-exp.4 notes, and the one-key lane test follows the workspace-header env shape
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 13:39:13 -07:00
ciregenzandClaude Fable 5.1 6253429050 [eric] marketplace: Install becomes the App Store ring that fills with the bytes; the download is a job the pill polls, and a dev reload can no longer hold the port hostage
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 12:57:38 -07:00
ciregenzandClaude Fable 5.1 48886e4746 [eric] providers: an Anthropic key that spans workspaces sends anthropic-workspace-id on every lane, with a Workspace ID field beside the key and a card that names the fix
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 12:44:30 -07:00
ciregenzandClaude Fable 5.1 f06643fcd6 [eric] tests: the suite runs on a throwaway data root; one test wrote an Output named probe past its patch and 330 runs left 330 probe apps in the real Applications window
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 12:44:30 -07:00
ciregenzandClaude Fable 5.1 b43faecdac [eric] chat: a streamed reply lands whole instead of re-typing from zero, the action bar waits for a reveal to settle, and a socket that connects mid-thought gets the thinking so far
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 10:40:05 -07:00
ciregenzandClaude Fable 5.1 bc1e7acac9 [eric] marketplace: Get on every card and sheet, spinner, then Open; installs remembered by the backend and Open launches the app, workflow or skill
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 09:14:31 -07:00
ciregenzandClaude Fable 5.1 2afbdc5b05 [eric] streaming: a session socket that connects mid-reply is handed the text so far after its resume ack, instead of a static Thinking then the whole reply at once
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-03 00:18:22 -07:00
ciregenzandClaude Fable 5.1 6672140a99 [eric] outputs: the ghost-runtime reaper recognises the packaged backend.serve spawn; it found no owner since 92b8f461 and reaped nothing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C9zwUaHucUgrdxvK8FvjYT
2026-09-02 20:12:59 -07:00
ciregenzandClaude Opus 5 8afec84986 [eric] marketplace: the published .swarm catalog is the store tab, installed through the existing import door
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 15:32:10 -07:00
ciregenzandClaude Opus 5 f57e9509f8 [eric] swarm: a zip is judged by what its manifest contains, not by the fact that one is named manifest.json
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 15:32:09 -07:00
ciregenzandClaude Fable 5.1 e6f84c3412 [eric] lint: drop the unused imports and leading-underscore names the batch left in tests and two modules
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 08:30:13 -07:00
ciregenzandClaude Fable 5.1 f7472a36af [eric] outputs: a restart that binds clears the previous bind-timeout verdict instead of reporting boot_failed forever
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 08:25:54 -07:00
ciregenzandClaude Fable 5.1 5e4d7cd096 [eric] agents: OSW_FAULT=sidecar_wedge finally does something; the sidecar never received the flag, so the fault armed nothing for weeks and its own liveness test exempted it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 00:12:09 -07:00
ciregenzandClaude Fable 5.1 5cc9754709 [eric] agents: OSW_FAULT=unclassified_error makes the generic error card drillable, pinned as owned by no classifier
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-02 00:06:45 -07:00
ciregenzandClaude Fable 5.1 f38016efb2 [eric] agents: self-heals stop being invisible: a stuck tool's restart and the CLI's own compaction reach the card, any signal death resumes, previews never quote the harness, spent retries are not "Done", one copy of the token-rotation notice
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 23:52:59 -07:00
ciregenzandClaude Fable 5.1 e6b3865851 [eric] agents: the unwedge envelope carries each child's status and age, so a lost result can be told from a dead child
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 23:44:21 -07:00
ciregenzandClaude Fable 5.1 d2f1523004 [eric] agents: a SIGKILLed CLI (-9) is an external kill too, and the shutdown line is stamped before the shutdown stops the turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 20:38:56 -07:00
ciregenzandClaude Fable 5.1 1ca4d0c5a3 [eric] agents: a CLI killed from outside resumes on a fresh process once, instead of carding the turn and forcing the recap rebuild
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 19:49:29 -07:00
ciregenzandClaude Fable 5.1 6d97692ea7 [eric] agents: a chat still running when the backend shuts down says so in its transcript, instead of reading like the user's own Stop
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 19:45:38 -07:00