ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude Fable 5.1
383c04b0e2
[eric] agents: the rebuild recap's tool trail is bounded, so a 766-call chat restarts at 78K tokens instead of 192K and the CLI stops compacting on its first step
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_012G8kyALnPjsA7aJFmMBq3R
2026-09-01 18:14:32 -07:00
ciregenz
b204009402
[eric] agents: the compaction summary quotes exact values and covers the kept span, so the agent's own facts survive a rebuild
2026-09-01 12:25:07 -07:00
ciregenz and Claude Opus 5
b133ef7a1a
[eric] agents: a pruned recap says it is partial, and the prune that reclaimed the history is counted
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-29 11:17:38 -07:00
ciregenz
38c5bfe072
[eric] crash: safe mode is enforced in main, and offscreen windows are never torn down mid-call (ENG-400)
2026-08-26 13:05:09 -07:00
ciregenz and Claude Opus 5
2e8d431118
[eric] agents: a run's result is not a replay, so the final answer survives the trail (ENG-396)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 11:16:06 -07:00
ciregenz and Claude Opus 5
5d3eb5cc52
[eric] agents: no renderer bound for a model replays another agent's turns (ENG-396)
...
Four paths still emitted the USER:/ASSISTANT: shape ENG-358 removed from the recap, because they were tool results and aux calls rather than the recap.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 10:30:36 -07:00
ciregenz and Claude Opus 5
626d9ea4dd
[eric] agents: bound what one tool result costs the model, without ever deleting the answer (ENG-385)
...
The 50KB cap shaped our own transcript copy, never the model's context, so it could not have cut a token at any threshold.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 00:45:37 -07:00
ciregenz
8ed2330c76
[eric] agents: the two guards that could fail silently now declare themselves (ENG-388, ENG-386)
2026-08-23 13:19:26 -07:00
ciregenz
05cd0f1990
[eric] agents: drop an unused import from the aging recap
2026-08-21 11:51:14 -07:00
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 and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
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
ciregenz and Claude 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
ciregenz and Claude 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
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
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
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
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
0f29b9a7bb
[eric] agents: a session reaches disk the moment you send, so a backend death can no longer erase the conversation (ENG-313)
2026-08-15 22:13:52 -07:00
ciregenz
df32505aca
[eric] compounding-growth pass: zOrders is pruned on every card removal, a model switch persists so the notice heals once, orphaned app workspaces are listable and deletable, and two browsers opened in the same millisecond no longer collide into one
2026-08-12 11:17:46 -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
86e323cbce
[eric] telemetry: per-session flight recorder, error envelopes name cause+lane+phase+crumbs, silent recoveries hit the ledger
2026-08-06 22:39:30 -07:00
ciregenz
7399076906
[eric] boot: only mid-turn sessions hydrate at startup, 2269 settled ones lazy-load, agents lifespan 850 to 537ms median
2026-08-06 16:08:30 -07:00
ciregenz
b29c75d5e0
[eric] agents: crossing the compact threshold now actually trims next turn, and a pasted log can't ride the recap back over the wall
2026-08-03 15:47:18 -07:00
ciregenz
b5d0461828
[eric] backend: queue messages typed mid-turn and replay them when the turn ends
2026-07-31 14:21:47 -07:00
ciregenz
61d79ce5d0
[eric] backend: boot restore keeps session files on disk instead of unlinking them
2026-07-31 14:13:01 -07:00
ciregenz
b8a9793b65
[eric] distill: pin the touched file paths back onto a summary that paraphrased them away
2026-07-31 01:21:49 -07:00
ciregenz
e10bd2ed9d
[eric] tool-results: middle-elide oversized spills so the tail (where the verdict lives) survives
2026-07-31 01:17:14 -07:00
ciregenz
600c04dd02
[eric] history: stop losing chats (merge live sessions, drop agent-spawned children, sort by last activity, never render a blank row)
2026-07-30 12:59:45 -07:00
ciregenz
68b079cc5e
[eric] ws: slim status frames, cross-socket dedupe, REST-seeded resume cursor, closed-only history
2026-07-17 11:11:35 -07:00
ciregenz
95f1996c19
[eric] distill: use the reliable cheap aux tier, not the chat's family (gemini/codex sessions 404'd/401'd the same-family aux)
2026-07-06 18:09:34 -07:00
ciregenz
9da027a948
[eric] context: distill dropped history via aux LLM on rebuild + model-aware compaction threshold
2026-07-06 15:25:58 -07:00
ciregenz
3e0c4811e2
[eric] agents: wire persistent client behind OSW_TTFT_PERSISTENT_CLIENT (warm TTFT 535ms -> 6ms)
2026-07-03 02:48:16 -07:00
ciregenz
ed40d9dc72
[eric] agents: backfill pending_approvals + validate disk browser-agent children (undefined .some() crash)
2026-06-25 23:10:41 -07:00
ciregenz
bb31d359ee
[eric] analytics: retire the old session-snapshot cloud path (sync_session_close); full transcript + classification now come from Haik's per-message product-analytics bridge, and it was 413ing the 100KB /sync edge
2026-06-25 03:40:35 -07:00
ciregenz
36626be089
[eric] backend: one-line comments + collapse blank runs across backend root + tests (AST-verified, 1 test skipped: embedded #-lines)
2026-06-25 03:04:16 -07:00
ciregenz
7564f9c301
[eric] agents: on restart, a session whose last message is a finished assistant reply restores as completed not stopped (kills the spurious Resume button on done chats)
2026-06-25 02:42:20 -07:00
ciregenz
8d01452e24
[eric] agents: collapse per-session startup/shutdown logs into one summary line (hundreds of sessions flooded the console)
2026-06-25 02:36:12 -07:00
ciregenz
d5cd4db026
[eric] agents: one-line every comment + collapse 3+ blank runs across manager/ surface (33 files, -550 lines, code byte-identical)
2026-06-25 02:16:14 -07:00
ciregenz
448c0deafd
[eric] agents: rename cryptic names — LivePartial->PartialReply, session/lifecycle.py->resume_and_duplicate.py (it held resume/duplicate, and collided with SessionLifecycle)
2026-06-25 00:58:57 -07:00
ciregenz
b9cea6c647
[eric] agents: drop the Mixin suffix, name the 9 manager classes by domain (Messaging, SessionLifecycle, ...) + AgentManagerState -> AgentManagerProtocol
2026-06-25 00:50:47 -07:00