Skip to content

chore: release v0.48.0 - #278

Merged
xxchan merged 1 commit into
mainfrom
release/v0.48.0
Oct 9, 2026
Merged

xxchan merged 1 commit into
mainfrom
release/v0.48.0

Conversation

@xxchan

@xxchan xxchan commented Oct 9, 2026

Copy link
Copy Markdown
Member

Release OAR and CLI 0.48.0. This PR changes only the two package version fields.

Added: Runtime.installPlan() and Runtime.install() (#275, closes #268)

  • installPlan(options?) is read only: the steps install() would run here (the vendor's own documented installer, with its own non-interactive switch), the source page, network: true, privileges: false; or why it would run nothing.
  • install(options?) runs that installer only when the runtime's probe finds no installation, and judges the outcome by the probe afterwards, never by the installer's exit code: installed { installation, line?, output }, already_installed, failed { exitCode, output }, or unsupported { reason, detail } with platform, requires_privileges (never sudo), requires_gui (antigravity), missing_tool, bundled, line_required, unknown_line.
  • claude, codex, grok and kimi use each vendor's native installer, chosen so checkUpdate()/upgrade() recognize the copy. opencode declares installLines (v1, v2): a host must choose one, and an install never replaces a copy of the other line.
  • The claude and codex probes now also look where their installers put the launcher (~/.local/bin), which a service process's PATH can miss.
  • macOS and Linux (x64 verified on a fresh VM, arm64 in a sandbox); on Windows the plan names the vendor's PowerShell command and runs nothing.

Fixed: OpenCode v2 alongside v1 (#274, closes #271)

  • One runtime opencode follows the installed line. On v2: no steer member (v2 refuses a second prompt; steerOrQueue and deliver queue), forwarded child-session updates become the child's own records and graph edge (attribution nested), appendSystemPrompt and systemPrompt are refused at open with the reason (v2 has no verified session-local channel), and listModels reports unsupported while v2's models --standalone returns an empty catalog (cli: opencode models prints empty list with exit 0 on a cold server anomalyco/opencode#53724).
  • Every ACP runtime: a steer the runtime refuses after it was accepted is now input_dropped { reason: "runtime_refused" }, handing the input back, and no longer ends the running turn as failed.

Fixed: Codex command output previews (#277, closes #261)

  • tool_call_progress has a new field outputDelta, appended to the preview; output stays a replacement snapshot (pi, ACP, Pi Durable). Codex reports its command output as outputDelta, so SessionView now shows the whole output instead of the last chunk.
  • Codex turn/started and pi agent_start report turn_active, so a turn the runtime started on its own shows as running before its first content.

Behavior changes

  • Codex tool_call_progress carries outputDelta instead of output. A host that folds tool progress itself must append it.
  • input_dropped.reason and ConversationInput.reason gain runtime_refused.
  • OpenCode v2 sessions have no steer, and refuse appendSystemPrompt and systemPrompt at open (not in the static refusedSessionOptions, which v1 still answers).

Validation: each PR passed all checks on its final head; #274's merged tree equals its CI tree, and #275 and #277 were each re-verified locally (typecheck, lint, full tests) on the main they merged into, whose merged trees equal those verified trees. After this PR passes CI and merges, tag its exact squash commit as v0.48.0 to trigger npm trusted publishing.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@xxchan
xxchan merged commit 087df16 into main Oct 9, 2026
17 checks passed
@xxchan
xxchan deleted the release/v0.48.0 branch October 9, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant