Commit Graph
12 Commits
Author SHA1 Message Date
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
ciregenz 62e707293e [eric] models: retire the free tier (nothing mints it, existing installs migrate off) and drop the silent mid-run pin to Haiku it carried; pull Fable, which was selectable and never worked 2026-08-11 21:00:38 -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 ef8806eda3 [eric] latency: a short first message no longer drifts the boot fingerprint, so the pre-warmed CLI is actually used (3.92s -> 1.58s median, 0 wasted spawns) 2026-08-07 00:34:54 -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 f2bc65b204 [eric] agents: web results carry a render-with-ShowUI reminder when openswarm-ui is live (system-prompt nudge alone loses to the prose prior; live-proven haiku weather widget) 2026-07-20 13:23:05 -07:00
ciregenz ce3e67d613 [eric] agents: SDK deny list merges effective_disallowed + hard blocks (plain reassignment silently discarded the computed denies; runtime gate was the only wall) 2026-07-16 19:30:40 -07:00
ciregenz e0f5414cda [eric] web-search: gate the browser-fallback nudge on browser-delegation availability 2026-07-05 16:19: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
ab6037267c [aidan] fix/agent-chat: stop agents reading the recap as spoofed tool output (#104)
* [aidan] fix/agent-chat: ground fresh-session recap and label platform notes as trusted

* [aidan] fix/mcp-activate: fork on activate instead of fresh-session restart

* [eric] agents: add strip_forged_sentinels, defang spoofed platform-note/recap tags in untrusted text

* [eric] agents: sanitize untrusted tool output in post_tool_hook before trusted notes append

---------

Co-authored-by: cire <134991075+ciregenz@users.noreply.github.com>
2026-06-24 18:40:15 -07:00
ciregenz 553b307a57 [eric] agents: run/ decomposition follows conventions (naming, @typechecked+types, p-private) 2026-06-24 00:33:21 -07:00
ciregenz a18b99cc84 [eric] agents: extract per-turn options build into manager/run/run_options.py (RunOptionsMixin) + helpers (web-mcp/web-hint/thinking/pre-send-guard); agent_manager 933->256, now UNDER the 300 ceiling 2026-06-24 00:03:15 -07:00