From 66afc9799d441717dfb3bf4edf90d069381bd553 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Sat, 12 Sep 2026 13:21:51 -0700 Subject: [PATCH 1/2] Correct Deterministic progress value prop on tool-less turns --- docs/PRODUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PRODUCT.md b/docs/PRODUCT.md index d59ccc023..0cd10feaa 100644 --- a/docs/PRODUCT.md +++ b/docs/PRODUCT.md @@ -34,7 +34,7 @@ The evidence is in how the product fails today: the personas already produce exc ## Key Value Propositions -1. **Deterministic progress** — Every turn must produce a tool call. No idle thinking; the director aborts a stalled run rather than spinning. +1. **Deterministic progress** — Primary chat is multi-turn and text-only turns are legal; sub-agent workers complete on a tool-less turn plus the report envelope. Loop protection is a wrap-up nudge after a long tool-only streak, not a hard abort for missing tool calls. 2. **Task tracking** — The agent can maintain a `manage_tasks` checklist for multi-step work; non-interactive `submit_output` is blocked while checklist items remain open. (A "task" here is a work item, not a child agent — spawning uses the separate `spawn_agent` fleet-agent surface.) 3. **Stall detection** — The director detects idle cycles and intervenes. 4. **Safe by default** — Consequential actions (writes, edits, shell) pass a permission gate; secret files and catastrophic commands are denied outright, regardless of intent. From e32a736586e34e1f6cd1262822f361dabb1c0ca4 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Sat, 12 Sep 2026 17:20:38 -0700 Subject: [PATCH 2/2] Remove auto-pause fiction from Stall failure mode --- docs/PRODUCT.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/PRODUCT.md b/docs/PRODUCT.md index 0cd10feaa..36301fdae 100644 --- a/docs/PRODUCT.md +++ b/docs/PRODUCT.md @@ -123,11 +123,11 @@ Config-driven `postTurn` and `postRun` hooks (TypeScript or shell) run automatic ### Stall (tool-only turns with no narration) -**What the user sees:** The agent runs several turns in a row that are all tool calls with no explanation of what it's doing. After a one-shot nudge to explain itself, if the pattern continues the session **auto-pauses**: it stops issuing new inferences and replies with "Auto-paused: the model ran N steps in a row without explaining its progress. Send a message to resume." The session is not aborted — sending any message resumes it. +**What the user sees:** The agent runs several turns in a row that are all tool calls with no explanation of what it's doing. After a configured number of such turns the director injects a one-shot wrap-up nudge asking for an explanation — a check-in, not a stop. There is no automated stop or pause: the session keeps running until the operator intervenes. -The exact turn thresholds are model-family-dependent (tighter for models with observed runaway tool-only behavior); see "Main-session loop protection" in `docs/ARCHITECTURE.md`. +The exact turn threshold is model-family-dependent (tighter for models with observed runaway tool-only behavior); see "Main-session loop protection" in `docs/ARCHITECTURE.md`. -**Recovery:** Send a message to resume. To inspect state first, see `~/.corbits/projects///run.json` (or a legacy in-repo `.agent-state/` tree if not yet migrated). +**Recovery:** Nothing to recover — the session never pauses. To redirect it, send a message (steer) or interrupt. To inspect state, see `~/.corbits/projects///run.json` (or a legacy in-repo `.agent-state/` tree if not yet migrated). ### Permission denied (exec)