v0.9.30
Claude Code mode chats (opt-in) + quest XP bounty fix
Rolls up v0.9.29 + v0.9.30 (v0.9.28 was the last published build).
Claude Code mode chats (v0.9.30) — opt-in, off by default
- Hold the Operator Mode button until the amber bar fills to escalate that one chat to raw Claude Code: direct file edits, shell, every tool, no approval gate. Every other chat keeps your normal capability tier. Voice loop still works — long replies render on screen, only the spoken summary is read aloud.
- Requires opting in: set
"allow_code_mode": trueinside theagent_safetyblock of yoursettings.json, then restart. Without it, nothing changes — the gesture doesn't exist and the server refuses code-mode requests (403). - Watch it work: a live activity line shows each tool call as it happens ("Thinking… 84s · #12 Bash: python test_x.py").
- ■STOP button: kill a running turn mid-flight (any mode). The chat keeps its context — just speak again to redirect. Stops are audited.
- Room to code: code turns get
code_claude_timeout_seconds(default 60 min) instead of the 10-minute cap, andagent_safety.code_mode_dirsgrants file-tool access to repos beyond the vault. - Deliberate by design: a tap never enters or exits code mode, new chats never inherit it, the button + sidebar badge turn amber, and every code turn lands in the audit log.
- This is owner-grade power. In a code chat there is no proposal gate, no backup-before-write, no allow-list. Leave it off unless it's your machine and you want exactly that.
Quests always carry their XP bounty (v0.9.29)
- Staged quests now always carry their planned XP bounty (
xp_valueis never 0 — whether it's awarded is decided at shutdown review against evidence), and questtypeuses the real vocabulary (micro / routine / boss_step / milestone).
Tests: 78-check code-mode suite + full regression green. The zip is built by the allow-list packager and verified secret-free.