ciregenz and Claude Opus 5
fb92d785b4
[eric] agents: a human's Stop outranks every recovery path, checked before any of them (ENG-402, ENG-369)
...
The liveness door resurrected stopped sessions; a stopped browser agent looks exactly like a dead sidecar.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 22:59:44 -07:00
ciregenz and Claude Opus 5
10084b1b28
[eric] agents: split the delegation backstop and the quit telemetry into their own files
...
Both host files crossed the 300-line ceiling; the seams were already there (quick-tool wedge vs delegation backstop, ladder logic vs its telemetry).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 22:07:31 -07:00
ciregenz and Claude Opus 5
b2ae28bd8c
[eric] agents: record the one nudge outcome the user actually sees (ENG-399)
...
1,695 nudges were counted on one install and zero outcomes, so "how often does the recovery fail" was unanswerable.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 22:02:03 -07:00
ciregenz and Claude Opus 5
8761320213
[eric] agents: a frozen sidecar can no longer hang a delegation forever (ENG-402)
...
Exempt from the 25s wedge deadline was silently also exempt from the 300s ceiling; the discriminator is liveness, not time. Reported by Haik Decie.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 21:27:13 -07:00
ciregenz and Claude Opus 5
dc014c5377
[eric] skills: an export never ships a venv, and a licence id is not an API key (ENG-401)
...
Both halves diagnosed by Haik Decie.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 11:38:26 -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
264f2ef6de
[eric] agents: the nudge ladder's last rung is bounded by construction, and can never widen a ratchet (ENG-399)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 10:54:05 -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
596c0479ca
[eric] agents: a ceiling on harness-started turns, so a runaway loop cannot spend an account (ENG-398)
...
Measured across 79 installs: median 1/min, 76 of 79 under 10/min, and one install at 186/min that produced 44 of 45 policy blocks.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 10:22:54 -07:00
ciregenz and Claude Opus 5
482e94ecb2
[eric] tests: one shared logger capture, and the shaper's names follow the p_ convention
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 01:06:56 -07:00
ciregenz and Claude Opus 5
f8d67fdfd1
[eric] release: 1.7.9 ships with a story, and two log assertions stop reading the root logger
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 01:04:59 -07:00
ciregenz and Claude Opus 5
3e0e1f67c6
[eric] agents: a malformed request is never transient, whatever reset hint rides along (ENG-395)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 00:48:51 -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 and Claude Opus 5
cf5093d24f
[eric] agents: a process that will inject failures says so, and names a typo that armed nothing
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-23 21:12:06 -07:00
ciregenz and Claude Opus 5
dc807e09ef
[eric] agents: a drilled fault must be the one the real classifier catches, and fire once (ENG-382)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-23 21:09:23 -07:00
ciregenz
b047e31abd
[eric] agents: a refusal guard may not eat a real answer; wording alone never destroys content (ENG-387)
2026-08-23 15:27:36 -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
d4bfc122f0
[eric] agents: OSW_FAULT fires real provider failures on demand so the guards get drilled, not hoped for
2026-08-23 11:31:58 -07:00
ciregenz
7e4bb7a43b
[eric] agents: OSW_COMPACT_CEILING_TOKENS makes the mid-turn breaker drillable without a 180K turn
2026-08-22 21:55:05 -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
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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
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
e8dc7c5fdd
[eric] import: only markdown becomes a bare skill, and skills always confirm (ENG-376)
...
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 and Claude 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
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 and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
ciregenz and Claude 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
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
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
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 and Claude 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
a00f277821
[eric] agents: a retry re-failing identically bumps the existing error card instead of stacking clones
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
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