feat(coding-agent): added plan mode with approval workflow and tool gating

- Plan mode provides structured workflow where agents propose plans for user approval before execution.
- Added plan:// internal URL protocol for accessing plan files and injecting plan-mode context into subagent prompts.
- Added plan mode toggle shortcut and paused status indicator in status line.
- Fixed plan reference injection to properly pass workflow state to plan-mode system prompts.
- Improved autocomplete fuzzy matching to support subsequence matching for skill suggestions.
This commit is contained in:
can1357
2026-01-25 19:35:26 +01:00
parent d26f759b80
commit 79079e6ecd
100 changed files with 2310 additions and 304 deletions
@@ -51,7 +51,7 @@ describe("python tool settings", () => {
vi.spyOn(pythonKernel, "checkPythonKernelAvailability").mockResolvedValue({ ok: true });
const tools = await createTools(createSession(testDir), ["python"]);
expect(tools.map(tool => tool.name)).toEqual(["python"]);
expect(tools.map(tool => tool.name).sort()).toEqual(["exit_plan_mode", "python"]);
});
it("falls back to bash when python is unavailable", async () => {
@@ -61,7 +61,7 @@ describe("python tool settings", () => {
});
const tools = await createTools(createSession(testDir), ["python"]);
expect(tools.map(tool => tool.name)).toEqual(["bash"]);
expect(tools.map(tool => tool.name).sort()).toEqual(["bash", "exit_plan_mode"]);
});
it("passes kernel mode from settings to executor", async () => {