Skip to content

One Code 0.4.0

Choose a tag to compare

@IsuruMaduranga IsuruMaduranga released this 22 Sep 13:34
· 738 commits to master since this release
d7a7499

The Windows release, with a batch of Claude Code parity work behind it.

Install

npm i -g @one-ai/one-code

On Windows without Node.js:

powershell -c "irm https://raw.githubusercontent.com/IsuruMaduranga/one-code/master/install.ps1 | iex"

Native Windows

  • One Code runs on native Windows in Claude Code's shape. The powershell tool is on by default on Windows and is the primary shell when active; Git Bash stays alongside when it exists, and CLAUDE_CODE_USE_POWERSHELL_TOOL / CLAUDE_CODE_GIT_BASH_PATH behave as they do in Claude Code. PowerShell(...) permission rules work, with a read-only allowlist and a deterministic pre-gate for auto mode.
  • Windows path spellings. Git Bash /c/… and /tmp/… forms in bash command lines, drive-relative paths refused in the read-only check, ~ expanded with forward slashes.
  • npm .cmd language servers start through cmd.exe, so TypeScript and friends work from an npm global install; a shimmed server's whole process tree is killed on shutdown.
  • Hooks are detached properly on Windows so an exiting parent never waits on them.
  • Keys and chrome. Permission modes cycle with alt+m on Windows and WSL (pi's key table takes ctrl+q there), and the mode badge's pause icon is a single cell.
  • An installer script. install.ps1 finds Node ≥ 22.19 or downloads the newest Node LTS for the CPU, verifies it against SHASUMS256.txt, installs the app, fixes the user PATH, and points at Git for Windows when git is missing.
  • Verified live on CI. A real model drives the bash and PowerShell tools end to end on windows-latest and ubuntu-latest on every push touching shell code. A new guide page, Windows, says what is and isn't verified.

Claude Code parity

  • /btw asks a side question answered from the live conversation context, shown in a scrollable overlay that never enters the transcript.
  • Slash commands are visible to the model. Local commands leave Claude Code's <local-command-caveat> and breadcrumb blocks, so a /clear or a model switch is no longer invisible to it.
  • Sessions are named automatically the way Claude Code names them, in the terminal title and the session picker.
  • Harness notifications use Claude Code's wire shape (<task-notification>, the subagent hand-back frames) instead of One Code's own prose frame.
  • Prompt caching on Anthropic. The tools array stays byte-stable across tool_search loads, so loading a deferred tool no longer busts the cached prefix.
  • Footer. Counts pi's cache-warming usage in the total, and shows the worktree's path and branch during a worktree session.

Doctor and update notice

  • The Homebrew update hint waits until brew can actually install the release (Homebrew passes --min-release-age=1), and names the renamed onecode formula.
  • The doctor reports the shell tools in its Dependencies section and reads transcripts with one-line read-only commands.

pi

  • The app pins pi 0.86.1; the extension package's tested range now covers 0.86.x.

Fixes

  • Subagent cancellation status is preserved across hand-back review; saved model choices are validated.
  • Subagent model selection and the retry menus' default model only pick image-capable models.
  • The compaction clamp estimate counts the system prompt and tools.
  • The shell tools inherit pi's strict JSON-schema sampling.
  • Hand-back reasons are bounded and non-terminal statuses rejected.
  • A skill's command turn runs in one-shot mode.
  • LSP: a global-only TypeScript install is refused up front with the install line, and servers are keyed on the resolved path.

Homebrew

  • The onecode formula is bumped to 0.4.0. A fresh brew install isurumaduranga/one-ai/onecode resolves about a day after the npm publish because of Homebrew's minimum-release-age guard.