Commit Graph
759 Commits
Author SHA1 Message Date
ciregenz df31e8d5d2 [eric] tests: the suite can never resume real chats with live credentials (ENG-388) 2026-08-21 11:51:14 -07:00
ciregenz 6cc705c0ee [eric] models: only the catalog retires a pinned model, so a router bounce cannot move a chat vendors (ENG-386) 2026-08-21 11:51:14 -07:00
ciregenz 2c8ae9a3b8 [eric] agents: extraction-shaped handoffs and relayed refusals never reach the subscription lane (ENG-387) 2026-08-21 11:51:14 -07:00
ciregenz 2583c80f6c [eric] agents: a session about to continue reports running, and releases it if the continuation dies (ENG-390) 2026-08-21 11:51:14 -07:00
ciregenzandClaude Opus 5 771a7243b0 [eric] agents: a silent quit rebuilds only when the rebuild would buy something (ENG-354)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-21 10:29:56 -07:00
ciregenzandClaude Opus 5 da18c0a5ef [eric] agents: the Resume chip is a human, so a stopped chat honours it (ENG-384)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-21 08:07:55 -07:00
ciregenzandClaude Fable 5 de70e9fe79 [eric] agents: a subscription-lane policy block fails over to the user's own API key (ENG-383)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-21 00:20:05 -07:00
ciregenzandClaude Fable 5 42e4f9116b [eric] agents: transport heals respawn the CLI on the same transcript instead of rebuilding it (ENG-382)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-21 00:20:04 -07:00
ciregenzandClaude Fable 5 a4be8c469f [eric] agents: the recap carries no model text, nudges are short and unlabeled (ENG-358)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-21 00:20:04 -07:00
ciregenzandClaude Fable 5 295a7b52e2 [eric] agents: a policy block ratchets the recap down instead of bricking the chat (ENG-358)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 23:44:44 -07:00
ciregenzandClaude Fable 5 5e0e89abe1 [eric] agents: a fresh heartbeat extends the unwedger to a 300s hard ceiling (ENG-368)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:49 -07:00
ciregenzandClaude Fable 5 e90abb7bfc [eric] system: watchdog deaths blame no workflow, card tails not owed, 20s probe (ENG-366)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:49 -07:00
ciregenzandClaude Fable 5 1f1ce09d7a [eric] agents: 401 needs auth context; answers can be blocks; quits forgiven (ENG-364/365)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:49 -07:00
ciregenz 3235324122 [eric] agents: a user's Stop or Close is final; no watchdog resend, disk reload, read, or late-booting child revives the card 2026-08-20 19:39:33 -07:00
ciregenzandClaude Opus 5 6edce86d68 [eric] browser: children survive turn 1 on every lane, never report "done" for nothing, tables render first try
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 18:16:51 -07:00
ciregenz b14791074f Revert "[eric] agents: Stop disarms every queued injection, so a stopped agent can never resurrect"
This reverts commit 332ae7d183.
2026-08-20 16:13:50 -07:00
ciregenz 10bca6ba17 Revert "[eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost"
This reverts commit 6ed6206c7b.
2026-08-20 16:13:50 -07:00
ciregenzandClaude Opus 5 6ed6206c7b [eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 15:50:55 -07:00
ciregenzandClaude Opus 5 332ae7d183 [eric] agents: Stop disarms every queued injection, so a stopped agent can never resurrect
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 15:50:55 -07:00
ciregenzandClaude Opus 5 ea04b1da11 [eric] agents: one provider verdict per ask, and a spent plan is never sold as a short wait
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 15:08:12 -07:00
ciregenzandClaude Opus 5 7c04c755ae [eric] agents: an invisible thinking pill no longer breaks the repeat-card dedup
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 12:32:14 -07:00
ciregenzandClaude Opus 5 e5e8da37ac [eric] agents: a provider's error never reaches the user as the agent's own words
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 12:22:34 -07:00
ciregenzandClaude Opus 5 0f2543db65 [eric] agents: a finished turn always leaves the user something to read
Every silent-stop fix so far was a detector for a shape somebody had already
found in the field, which is why the class kept coming back wearing a new hat.
turn_spoke.py moves the question down a tier: at the one exit every terminal
path passes through, ask whether anything readable appeared since the user last
spoke, and if not, say the honest line. Cause no longer has to be enumerated for
the user to be answered.

proactive_prune.py is the hermes trigger we were missing. Their own tests say
our bug out loud: on a large window, a percentage-of-window compaction check
almost never fires, so aged tool output rides in history and is re-sent verbatim
every turn. Measured here, our shaping cut 0.0% at every session size; with a
fixed 60K-token cost trigger it cuts 88% at 12 turns, 93% at 30, 94% at 60. The
prompt-cache contract is load-bearing rather than optional, because our prune is
a rebuild: it commits only when it reclaims enough to pay for the busted prefix,
then disarms until history has regrown a full runway.

Also: lane preflight now treats only 401/403 as a dead credential, since
testStatus=="unavailable" conflated a throttled lane with a revoked one and told
users to reconnect a merely rate-limited Gemini; and awaiting_reconnect is
cleared when the retry budget is spent, so a stale flag can no longer muzzle the
floor and end an ask in total silence.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 11:36:34 -07:00
ciregenzandClaude Opus 5 9a7570092f [eric] agents: never spend a turn on a lane the router gave up on, and stop our own retries stacking cards
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 09:20:46 -07:00
ciregenzandClaude Opus 5 58e376496e [eric] agents: an outage parks the turn and resumes when the provider answers; OAuth connects survive a backend restart
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 08:39:41 -07:00
ciregenzandClaude Opus 5 d5934b1da1 [eric] agents: no turn ends silent, and a codex 401 waits out the rotation window
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 07:21:00 -07:00
ciregenz 7a4af2c419 [eric] workflows: the restart-loop-guard pause notice called a nonexistent broadcast; it never reached the user (linter catch) 2026-08-19 17:24:23 -07:00
ciregenz 4be2f10d02 [eric] agents: every sub lane self-heals a mid-run token expiry before any card; codex retries wait out the rotation window instead of burning the one shot inside it 2026-08-19 17:24:23 -07:00
ciregenz cf7790ca3b [eric] agents: status flips to running BEFORE the user-message snapshot; a stale completed on disk hid follow-up-turn crashes from the boot detector (exp.19 drill catch) 2026-08-19 16:51:35 -07:00
ciregenz 455b8fa4d3 [eric] agents: MCP responses over the CLI's silent output ceiling get shrunk instead of dropped; a 340KB result line was written and never resolved, the lost-delegation class (ENG-327 root) 2026-08-19 16:43:38 -07:00
ciregenz cbfb8ea9b6 [eric] agents: the error path dispatches an armed self-heal continuation; the recap-free policy retry armed and then rotted because only the success path had a dispatcher (exp.19 drill catch) 2026-08-19 16:39:32 -07:00
ciregenz 7e3a98e315 [eric] agents: a turn cut off by a dirty exit auto-resumes at boot, gated by a consecutive-crash breaker; a clean Cmd+Q keeps the manual chip (hermes #30719 pairing) 2026-08-19 15:36:01 -07:00
ciregenz 8c482aa351 [eric] agents: the session recap moves to the SYSTEM channel; history-as-user-text was the anti-distillation filter's exact target shape and no rewording made it safe (ENG-358 structural fix) 2026-08-19 15:29:09 -07:00
ciregenz da3c1be6ca [eric] agents: the recap-free policy retry arms on ANY fresh-session recap, not just post-compaction; the packaged drill caught the gate firing never (ENG-358) 2026-08-19 15:10:51 -07:00
ciregenz 108287eda4 [eric] agents: provider content-policy blocks are terminal (no snag flicker), recap-bearing sessions get ONE recap-free retry, and the recap reads first-person instead of a User:/Assistant: transcript that trips distillation filters (Alex's bricked chats) 2026-08-19 14:07:29 -07:00
ciregenz 6a1dbc4212 [eric] agents: recap ages history hermes-style instead of dropping it; stubs keep the re-runnable command, duplicates collapse, newest results survive verbatim (ENG-354 endgame) 2026-08-19 13:40:47 -07:00
ciregenz 39d8da2697 [eric] agents: a vanishing quit (nothing persisted) on a session that already silent-quit is claimed and compacted; the poke-storm hole the one-for-one repro exposed (ENG-354) 2026-08-19 11:41:02 -07:00
ciregenz a66b0b0eaa [eric] agents: a REPEAT silent quit compacts from a 40% floor; Haik's opus-5 quits at ~149K, under the 180K trigger, so the band fix alone missed his storms (ENG-354) 2026-08-19 11:32:29 -07:00
ciregenz 8ae3f94d20 [eric] browser: fast path refuses multi-page sweeps (3+ URLs deterministic + classifier rule); a grabbed sweep answered INSUFFICIENT from one read (ENG-355) 2026-08-19 08:00:40 -07:00
ciregenz e6d05dfb1b [eric] agents: RunToolScript (PTC): scripts chain allowlisted tools in one turn and only printed output enters context (hermes code_execution lift, ENG-354 lever) 2026-08-18 23:41:38 -07:00
ciregenz 16b8f21177 [eric] agents: a silent quit at high context compacts history and goes fresh before the nudge; re-sending the bloat just burned a nudge (ENG-354) 2026-08-18 21:17:57 -07:00
ciregenz 4f3e68c7ac [eric] agents: the 25s unwedge verifies the sidecar is actually wedged (heartbeat file) before shooting it; alive-but-slow gets 120s (ENG-353) 2026-08-18 21:13:47 -07:00
ciregenz 123f71b8cb [eric] browser: RequestUserSignIn is a first-class tool; auth walls hand off to the user in place instead of killing the run (ENG-351) 2026-08-18 19:06:38 -07:00
ciregenz 82a9860eaa [eric] agents: pip installs stop no-oping (bundle PYTHONPATH shadow stripped from agent env) and agents self-serve deps instead of nagging (ENG-347) 2026-08-18 19:04:56 -07:00
ciregenz 182409c2ac [eric] agents: every git exec rides a non-prompting availability check; the CLT shim's install dialog fired at session start on clean Macs (ENG-344) 2026-08-18 19:04:56 -07:00
ciregenz ce2989ea1b [eric] agents: CanvasCommand lets an agent move, collapse, tile, tidy and close its own cards after spawn (ENG-334) 2026-08-17 16:04:21 -07:00
ciregenz d45e2b3731 [eric] browser: a failed navigation now fails loudly; a reused card that cannot move is replaced instead of answering from the old page 2026-08-17 15:48:49 -07:00
ciregenz 8185e3b52a [eric] browser: a hard login wall with nothing to borrow hands off to the user at the card and resumes itself when the wall clears (ENG-279) 2026-08-17 08:25:18 -07:00
ciregenz ced541997d [eric] agents: the unwedge watchdog runs on daemon threads, sealing the suite's flaky hang at interpreter exit 2026-08-16 22:20:46 -07:00
ciregenz ab4d7b2db7 [eric] streaming: stream frames stop riding the dashboard socket and the backgrounded chat batches to 1Hz (ENG-329) 2026-08-16 20:52:51 -07:00