Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/coding-agent/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Changed

- Changed the built-in default thinking level to `xhigh` when no user or project default is configured.
- Changed the IPython system prompt section to use the upstream rlm-harness IPYTHON_CONTROL_PROMPT: IPython is framed as a persistent control environment, not the target project's runtime. Shell commands should use `%%bash` cells instead of `!cmd` escapes. The agent should not install dependencies into the IPython kernel but use the project's own environment instead.
- Removed the `.venv` interpreter hint from the system prompt (no longer needed with the control-environment framing).

Expand Down
4 changes: 2 additions & 2 deletions packages/coding-agent/docs/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Edit directly or use `/settings` for common options.
|---------|------|---------|-------------|
| `defaultProvider` | string | - | Default provider (e.g., `"anthropic"`, `"openai"`) |
| `defaultModel` | string | - | Default model ID |
| `defaultThinkingLevel` | string | - | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"` |
| `defaultThinkingLevel` | string | `"xhigh"` | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"` |
| `hideThinkingBlock` | boolean | `false` | Hide thinking blocks in output |
| `thinkingBudgets` | object | - | Custom token budgets per thinking level |

Expand Down Expand Up @@ -247,7 +247,7 @@ See [packages.md](packages.md) for package management details.
{
"defaultProvider": "anthropic",
"defaultModel": "claude-sonnet-4-20250514",
"defaultThinkingLevel": "medium",
"defaultThinkingLevel": "xhigh",
"theme": "dark",
"compaction": {
"enabled": true,
Expand Down
2 changes: 1 addition & 1 deletion packages/coding-agent/src/core/defaults.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import type { ThinkingLevel } from "@earendil-works/pi-agent-core";

export const DEFAULT_THINKING_LEVEL: ThinkingLevel = "medium";
export const DEFAULT_THINKING_LEVEL: ThinkingLevel = "xhigh";
16 changes: 16 additions & 0 deletions packages/coding-agent/test/model-resolver.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,22 @@ describe("default model selection", () => {
expect(result.model?.id).toBe("openai/ghost-model");
});

test("findInitialModel uses xhigh as the built-in default thinking level", async () => {
const reasoningModel = mockModels[0];
const registry = {
getAvailable: async () => [reasoningModel],
} as unknown as Parameters<typeof findInitialModel>[0]["modelRegistry"];

const result = await findInitialModel({
scopedModels: [],
isContinuing: false,
modelRegistry: registry,
});

expect(result.model).toBe(reasoningModel);
expect(result.thinkingLevel).toBe("xhigh");
});

test("findInitialModel selects ai-gateway default when available", async () => {
const aiGatewayModel: Model<"anthropic-messages"> = {
id: "anthropic/claude-opus-4-6",
Expand Down