You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pre-release review of the v0.8.3 plan-mode refusal fix (#888) surfaced
follow-up hardening, all applied before tagging:
- `prompt.ts`: export `insertReminders` / `isAnthropicLikeModel` (project
"exported for testing" convention) so the trust boundary is covered by a
BEHAVIORAL test, not just source-regex guards. Document that `model.family`
is a free-form routing-trust input (a spoofed `claude-*` family on a
non-Anthropic gateway skips the hoist).
- `plan-layer-e2e.test.ts`: behavioral tests proving an attacker
`<system-reminder>` user/file part is NEVER promoted to
`trustedReminderParts`, the non-Anthropic `ignored: true` hoist, the
Anthropic leave-in-user-role path, and `isAnthropicLikeModel`
classification (anchored api.id match, gemini non-Anthropic, family footgun).
- `release-v0.8.3-adversarial.test.ts`: new adversarial suite — 25 malicious
parts, exact-marker spoof, prototype-pollution-shaped text, degenerate
message lists, hostile `familyVendor` strings, and altimate-backend routing
never landing on the Anthropic refusal fallback.
- `system.test.ts`: gemini-family altimate-backend routing test (parity with
direct gemini; not the codex default) — closes the J1 coverage gap.
- `processor.ts`: reword the plan-no-tool warning — drop the user-blaming
"too thin to act on", frame `/model` as the last resort ("if it keeps
refusing").
- `plan.txt`: broaden the trivial-task escape hatch to cover a single
well-specified edit to an already-read file, so the explore-first mandate
doesn't nag on one-line changes.
- docs: troubleshooting entry for the refusal symptom; agent-modes note that
plan mode investigates before drafting.
Deferred items filed as #890 (cross-turn ignored-flag under experimental
plan mode), #891 (unify the two anthropic-likeness classifiers), #892
(deterministic trivial-plan fast-path).
Typecheck clean. 163 affected + 26 new adversarial tests pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/docs/data-engineering/agent-modes.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -142,6 +142,8 @@ altimate --agent plan
142
142
143
143
Plan mode restricts the agent to reading files and editing plan files only. No SQL, no bash, no file modifications. Use this to outline an approach before switching to builder to execute it.
144
144
145
+
The plan agent investigates the repo before drafting: it makes at least one read-only call (`read`/`grep`/`glob`/`explore`) to ground the plan in your actual code, rather than guessing from the prompt alone. For a genuinely trivial, fully-specified change it will say so and skip straight to the plan.
146
+
145
147
### Two-step workflow
146
148
147
149
Plan mode uses a two-step approach to keep you in control:
Copy file name to clipboardExpand all lines: docs/docs/reference/troubleshooting.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -125,6 +125,15 @@ As of v0.7.1, altimate-code surfaces the **inner provider message** instead of d
125
125
```
126
126
3. No Python installation is required. All tools run natively in TypeScript.
127
127
128
+
### Plan mode refuses a benign request, or stops without exploring
129
+
130
+
**Symptoms:** In plan mode (`--agent plan`), the agent replies *"I'm sorry, but I cannot assist with that request"* to an ordinary planning ask, or you see the warning *"the `plan` agent … stopped without calling any tools."* Most common on the hosted `altimate-default` model (and other non-Anthropic models).
131
+
132
+
**Solutions:**
133
+
134
+
1.**Upgrade to v0.8.3 or later.** This was a known bug: altimate-code's internal plan instructions were delivered in a way that non-Anthropic models (GPT-5.x, Gemini, …) could mistake for a prompt-injection attempt and refuse. v0.8.3 delivers them as proper system-role messages, eliminating the refusal.
135
+
2. If you still see the agent stop without exploring, follow the in-product warning's recoveries: reply asking it to investigate first (`read`/`grep`/`glob`/`explore`), rephrase the request more concretely, or — if it keeps refusing — `/model` to a tier more eager to explore (e.g. Claude Sonnet/Opus).
136
+
128
137
### Warehouse Connection Failed
129
138
130
139
**Symptoms:** "Connection refused", authentication errors, or "No warehouse configured".
Before you write any plan content — outline OR full plan — you MUST call at least one read-only investigation tool against the actual codebase. Acceptable first moves:
@@ -29,7 +29,7 @@ Before you write any plan content — outline OR full plan — you MUST call at
29
29
- launching one or more `explore` subagents in parallel for broader sweeps
Plans written from the prompt alone — without inspecting the repo — are guesswork. They reference files that may not exist, miss existing patterns, and waste the user's time. If the task is trivial enough that you genuinely have everything needed (e.g. the user pasted the exact file contents inline), say so explicitly before drafting.
32
+
Plans written from the prompt alone — without inspecting the repo — are guesswork. They reference files that may not exist, miss existing patterns, and waste the user's time. If the task is trivial enough that you genuinely have everything needed — e.g. the user pasted the exact file contents inline, or the change is a single well-specified edit to a file you have already read this session — say so explicitly before drafting.
33
33
34
34
This applies on the very first step. Do not produce a plan, an outline, or a "summary of approach" as your first action.
0 commit comments