Skip to content

chore: release v0.77.0 - #534

Merged
stamp-build[bot] merged 1 commit into
mainfrom
agent/cindy/release-0.77.0
Oct 29, 2026
Merged

stamp-build[bot] merged 1 commit into
mainfrom
agent/cindy/release-0.77.0

Conversation

@stamp-build

@stamp-build stamp-build Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Cindy from open-agent-runtime opened this pull request through Stamp
View in Stamp →


Minor release: CodeBuddy Code joins the built-in runtimes.

Breaking changes

Runtime set, brand keys and redaction rules (#525)

  • defaultRuntimes now includes codebuddyRuntime (id codebuddy). Code that assumes the previous set of runtime ids needs a case for it.
  • runtimeBrands gains codebuddy; because it is declared as const, an exhaustive Record<keyof typeof runtimeBrands, ...> must add the key.
  • REDACTION_RULES.version is now 2 and frameTypePrefixes adds _codebuddy.ai/authUrl. A host that pre-filters stored records by these prefixes, or caches redaction by version, should re-run redaction on stored records. Records OAR itself wrote are unaffected: earlier releases had no CodeBuddy, and live CodeBuddy frames are redacted before they are recorded.

New

CodeBuddy Code (#525)

codebuddyRuntime, also at @botiverse/oar/runtimes/codebuddy. The root entry also exports codebuddySession, codebuddyInstallation, codebuddyListModels and projectCodebuddyModels; brand assets codebuddy.svg, codebuddy-on-light.svg and codebuddy-on-dark.svg are added. Install the vendor CLI separately; OAR finds OAR_CODEBUDDY_BIN, codebuddy on PATH or ~/.local/bin/codebuddy. There is no OAR installer, updater, logout, account quota reader or provider facade for CodeBuddy.

  • Sessions use CodeBuddy's own ACP server (codebuddy --acp), one native process per session, with ACP new/load and the native session ID as the resume key. Messages queue in OAR (queue.durable: false) and can be withdrawn before dispatch. There is no steer: no native injection interface was verified. Sessions run with --permission-mode bypassPermissions, which is not a sandbox.
  • Why ACP: with a custom model endpoint, CodeBuddy's stream-json interface sent a prompt that followed the previous result immediately to the model twice, so any tool calls in it would repeat too. This happened in all three immediate runs and in 8 of 9 runs with 0.5 to 2 second provider response delays (the ninth timed out); a one-second delay before the second input did not duplicate. It was not reproduced on the official account backend in four immediate runs plus a one-second control. With the same custom endpoint, native ACP sent exactly one request per input in three immediate and three one-second-delay runs. Reported upstream as CodeBuddy issue 1847 on CNB.
  • Login and status use CodeBuddy's private stream-json control channel (initialize, authenticate): one browser authorization per login, the URL delivered as an auth_url event and never stored in records. openBrowser: false sets a login-only BROWSER (true on POSIX, hostname.exe on Windows). A native authentication failure maps to cancelled, or to failed with timed_out or process_failed by its native type; no explicit native denial signal was verified, so OAR does not report rejected. A native success contradicted by a fresh status read is failed / not_logged_in, and a throwing URL handler is interaction_failed. Status reads the native account (object, null or absent). With CODEBUDDY_API_KEY set, status is unknown with configured: ["environment: CODEBUDDY_API_KEY"], because the native account can be synthesized from the key without validating it.
  • Models and effort: listModels() opens a disposable ACP session without a prompt. Opening applies the model through session/set_config_option but does not strictly confirm it; effort is checked against the native readback.
  • System prompt replacement through a private mode-0600 file, never argv; an empty replacement and appended prompts are refused. disallowedTools, MCP (stdio and HTTP, with credential overlays) and images are supported.
  • Failures: a successful prompt reply carrying refusal or a FAILED* native outcome is a failed turn, with the native message as its reason and the native error category taking precedence over HTTP status.
  • Usage: ACP usage_update describes context, not a billing ledger, so usage().total stays null. A native used: 0, size: 0 is kept as reported and does not mean the context is empty.
  • Refused options: goals: true, appendSystemPrompt, userConfiguration: "exclude", outputSchema, name, serviceTier, additionalDirectories; in launchArgs, transport, permission, session-identity and system-prompt flags and --.
  • Verified: CodeBuddy 2.178.1; the shared behavior suite and five native tests with a scripted provider in Linux and macOS CI; Linux x64 with a local provider; and Linux arm64 with a real international account (login, status, two immediate turns and a resumed third turn). Not verified: Windows, logout, renewal, the China region, and real-account login on other platforms.

CLI (#525)

@botiverse/oar-cli builds its registry from defaultRuntimes, so oar list, installation, models, run and login include codebuddy, commands without a runtime argument also probe it, and oar mcp offers it to subagents unless --runtimes narrows the set.

Fixes

Docs

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@stamp-build
stamp-build Bot merged commit 8116cfd into main Oct 29, 2026
36 checks passed
@stamp-build
stamp-build Bot deleted the agent/cindy/release-0.77.0 branch October 29, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants