chore(release): update version to 0.4.0-rc.1

This commit is contained in:
Nathan Flurry 2026-03-15 20:34:01 -07:00
parent cf7e2a92c6
commit 2f9f25ae54
28 changed files with 72 additions and 40 deletions

View file

@ -4,7 +4,7 @@ members = ["server/packages/*", "gigacode"]
exclude = ["factory/packages/desktop/src-tauri", "foundry/packages/desktop/src-tauri"] exclude = ["factory/packages/desktop/src-tauri", "foundry/packages/desktop/src-tauri"]
[workspace.package] [workspace.package]
version = "0.3.2" version = "0.4.0-rc.1"
edition = "2021" edition = "2021"
authors = [ "Rivet Gaming, LLC <developer@rivet.gg>" ] authors = [ "Rivet Gaming, LLC <developer@rivet.gg>" ]
license = "Apache-2.0" license = "Apache-2.0"
@ -13,13 +13,13 @@ description = "Universal API for automatic coding agents in sandboxes. Supports
[workspace.dependencies] [workspace.dependencies]
# Internal crates # Internal crates
sandbox-agent = { version = "0.3.2", path = "server/packages/sandbox-agent" } sandbox-agent = { version = "0.4.0-rc.1", path = "server/packages/sandbox-agent" }
sandbox-agent-error = { version = "0.3.2", path = "server/packages/error" } sandbox-agent-error = { version = "0.4.0-rc.1", path = "server/packages/error" }
sandbox-agent-agent-management = { version = "0.3.2", path = "server/packages/agent-management" } sandbox-agent-agent-management = { version = "0.4.0-rc.1", path = "server/packages/agent-management" }
sandbox-agent-agent-credentials = { version = "0.3.2", path = "server/packages/agent-credentials" } sandbox-agent-agent-credentials = { version = "0.4.0-rc.1", path = "server/packages/agent-credentials" }
sandbox-agent-opencode-adapter = { version = "0.3.2", path = "server/packages/opencode-adapter" } sandbox-agent-opencode-adapter = { version = "0.4.0-rc.1", path = "server/packages/opencode-adapter" }
sandbox-agent-opencode-server-manager = { version = "0.3.2", path = "server/packages/opencode-server-manager" } sandbox-agent-opencode-server-manager = { version = "0.4.0-rc.1", path = "server/packages/opencode-server-manager" }
acp-http-adapter = { version = "0.3.2", path = "server/packages/acp-http-adapter" } acp-http-adapter = { version = "0.4.0-rc.1", path = "server/packages/acp-http-adapter" }
# Serialization # Serialization
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }

View file

@ -10,7 +10,7 @@
"license": { "license": {
"name": "Apache-2.0" "name": "Apache-2.0"
}, },
"version": "0.3.2" "version": "0.4.0-rc.1"
}, },
"servers": [ "servers": [
{ {

View file

@ -1234,7 +1234,7 @@ export function buildInitialTasks(): Task[] {
updatedAtMs: minutesAgo(40), updatedAtMs: minutesAgo(40),
branch: "perf/transcript-virtualizer", branch: "perf/transcript-virtualizer",
pullRequest: null, pullRequest: null,
tabs: [ sessions: [
{ {
id: "stress-transcript-tab", id: "stress-transcript-tab",
sessionId: "stress-transcript-session", sessionId: "stress-transcript-session",

View file

@ -939,7 +939,7 @@ const TranscriptPanel = memo(function TranscriptPanel({
messageRefs={messageRefs} messageRefs={messageRefs}
historyEvents={historyEvents} historyEvents={historyEvents}
onSelectHistoryEvent={jumpToHistoryEvent} onSelectHistoryEvent={jumpToHistoryEvent}
targetMessageId={pendingHistoryTarget && activeTabId === pendingHistoryTarget.tabId ? pendingHistoryTarget.messageId : null} targetMessageId={pendingHistoryTarget && activeSessionId === pendingHistoryTarget.sessionId ? pendingHistoryTarget.messageId : null}
onTargetMessageResolved={() => setPendingHistoryTarget(null)} onTargetMessageResolved={() => setPendingHistoryTarget(null)}
copiedMessageId={copiedMessageId} copiedMessageId={copiedMessageId}
onCopyMessage={(message) => { onCopyMessage={(message) => {

View file

@ -1,4 +1,7 @@
import { AgentTranscript, type AgentTranscriptClassNames, type TranscriptEntry } from "@sandbox-agent/react"; import { AgentTranscript as AgentTranscript_, type AgentTranscriptClassNames, type TranscriptEntry } from "@sandbox-agent/react";
// Cast to work around React 18/19 type incompatibility between @sandbox-agent/react and foundry
const AgentTranscript = AgentTranscript_ as unknown as (props: Record<string, unknown>) => JSX.Element;
import { memo, useEffect, useMemo, type MutableRefObject, type RefObject } from "react"; import { memo, useEffect, useMemo, type MutableRefObject, type RefObject } from "react";
import { useStyletron } from "baseui"; import { useStyletron } from "baseui";
import { LabelSmall, LabelXSmall } from "baseui/typography"; import { LabelSmall, LabelXSmall } from "baseui/typography";
@ -291,7 +294,7 @@ export const MessageList = memo(function MessageList({
scrollRef={scrollRef} scrollRef={scrollRef}
scrollToEntryId={targetMessageId} scrollToEntryId={targetMessageId}
virtualize virtualize
renderMessageText={(entry) => { renderMessageText={(entry: TranscriptEntry) => {
if (entry.id === PENDING_MESSAGE_ID && pendingMessage) { if (entry.id === PENDING_MESSAGE_ID && pendingMessage) {
const pendingMsg: Message = { const pendingMsg: Message = {
id: PENDING_MESSAGE_ID, id: PENDING_MESSAGE_ID,

3
pnpm-lock.yaml generated
View file

@ -492,9 +492,6 @@ importers:
'@sandbox-agent/foundry-shared': '@sandbox-agent/foundry-shared':
specifier: workspace:* specifier: workspace:*
version: link:../shared version: link:../shared
'@sandbox-agent/persist-rivet':
specifier: workspace:*
version: link:../../../sdks/persist-rivet
better-auth: better-auth:
specifier: ^1.5.5 specifier: ^1.5.5
version: 1.5.5(@cloudflare/workers-types@4.20260316.1)(drizzle-kit@0.31.9)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20260316.1)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(bun-types@1.3.10)(kysely@0.28.11)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2)) version: 1.5.5(@cloudflare/workers-types@4.20260316.1)(drizzle-kit@0.31.9)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20260316.1)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.18.0)(bun-types@1.3.10)(kysely@0.28.11)(pg@8.20.0))(pg@8.20.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(solid-js@1.9.11)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.5.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2))

View file

@ -0,0 +1,32 @@
{
"sdkDeps": {
"@agentclientprotocol/sdk": "^0.16.1"
},
"adapters": [
{
"agentId": "claude",
"npmPackage": "@zed-industries/claude-agent-acp",
"pinnedVersion": "0.20.0"
},
{
"agentId": "codex",
"npmPackage": "@zed-industries/codex-acp",
"pinnedVersion": "0.1.0"
},
{
"agentId": "amp",
"npmPackage": "amp-acp",
"pinnedVersion": "0.7.0"
},
{
"agentId": "pi",
"npmPackage": "pi-acp",
"pinnedVersion": "0.0.23"
},
{
"agentId": "cursor",
"npmPackage": "@blowmage/cursor-agent-acp",
"pinnedVersion": "0.1.0"
}
]
}

View file

@ -1,6 +1,6 @@
{ {
"name": "acp-http-client", "name": "acp-http-client",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "Protocol-faithful ACP JSON-RPC over streamable HTTP client.", "description": "Protocol-faithful ACP JSON-RPC over streamable HTTP client.",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-shared", "name": "@sandbox-agent/cli-shared",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "Shared helpers for sandbox-agent CLI and SDK", "description": "Shared helpers for sandbox-agent CLI and SDK",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli", "name": "@sandbox-agent/cli",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "CLI for sandbox-agent - run AI coding agents in sandboxes", "description": "CLI for sandbox-agent - run AI coding agents in sandboxes",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-darwin-arm64", "name": "@sandbox-agent/cli-darwin-arm64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "sandbox-agent CLI binary for macOS ARM64", "description": "sandbox-agent CLI binary for macOS ARM64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-darwin-x64", "name": "@sandbox-agent/cli-darwin-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "sandbox-agent CLI binary for macOS x64", "description": "sandbox-agent CLI binary for macOS x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-linux-arm64", "name": "@sandbox-agent/cli-linux-arm64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "sandbox-agent CLI binary for Linux arm64", "description": "sandbox-agent CLI binary for Linux arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-linux-x64", "name": "@sandbox-agent/cli-linux-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "sandbox-agent CLI binary for Linux x64", "description": "sandbox-agent CLI binary for Linux x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/cli-win32-x64", "name": "@sandbox-agent/cli-win32-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "sandbox-agent CLI binary for Windows x64", "description": "sandbox-agent CLI binary for Windows x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode", "name": "@sandbox-agent/gigacode",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "Gigacode CLI (sandbox-agent with OpenCode attach by default)", "description": "Gigacode CLI (sandbox-agent with OpenCode attach by default)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-darwin-arm64", "name": "@sandbox-agent/gigacode-darwin-arm64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "gigacode CLI binary for macOS arm64", "description": "gigacode CLI binary for macOS arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-darwin-x64", "name": "@sandbox-agent/gigacode-darwin-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "gigacode CLI binary for macOS x64", "description": "gigacode CLI binary for macOS x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-linux-arm64", "name": "@sandbox-agent/gigacode-linux-arm64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "gigacode CLI binary for Linux arm64", "description": "gigacode CLI binary for Linux arm64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-linux-x64", "name": "@sandbox-agent/gigacode-linux-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "gigacode CLI binary for Linux x64", "description": "gigacode CLI binary for Linux x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/gigacode-win32-x64", "name": "@sandbox-agent/gigacode-win32-x64",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "gigacode CLI binary for Windows x64", "description": "gigacode CLI binary for Windows x64",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-indexeddb", "name": "@sandbox-agent/persist-indexeddb",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "IndexedDB persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "IndexedDB persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-postgres", "name": "@sandbox-agent/persist-postgres",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "PostgreSQL persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "PostgreSQL persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-rivet", "name": "@sandbox-agent/persist-rivet",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "Rivet Actor persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "Rivet Actor persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/persist-sqlite", "name": "@sandbox-agent/persist-sqlite",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)", "description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@sandbox-agent/react", "name": "@sandbox-agent/react",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "React components for Sandbox Agent frontend integrations", "description": "React components for Sandbox Agent frontend integrations",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -1,6 +1,6 @@
{ {
"name": "sandbox-agent", "name": "sandbox-agent",
"version": "0.3.2", "version": "0.4.0-rc.1",
"description": "Universal API for automatic coding agents in sandboxes. Supports Claude Code, Codex, OpenCode, and Amp.", "description": "Universal API for automatic coding agents in sandboxes. Supports Claude Code, Codex, OpenCode, and Amp.",
"license": "Apache-2.0", "license": "Apache-2.0",
"repository": { "repository": {

View file

@ -2637,13 +2637,13 @@ function deriveModesFromConfigOptions(configOptions: SessionConfigOption[] | und
} }
const modeOption = findConfigOptionByCategory(configOptions, "mode"); const modeOption = findConfigOptionByCategory(configOptions, "mode");
if (!modeOption || !Array.isArray(modeOption.options)) { if (!modeOption || modeOption.type !== "select" || !Array.isArray(modeOption.options)) {
return null; return null;
} }
const availableModes = modeOption.options const availableModes = modeOption.options
.flatMap((entry) => flattenConfigOptions(entry)) .flatMap((entry: unknown) => flattenConfigOptions(entry))
.map((entry) => ({ .map((entry: { value: string; name: string; description?: string }) => ({
id: entry.value, id: entry.value,
name: entry.name, name: entry.name,
description: entry.description ?? null, description: entry.description ?? null,
@ -2674,7 +2674,7 @@ function applyConfigOptionValue(configOptions: SessionConfigOption[], configId:
return null; return null;
} }
const updated = cloneConfigOptions(configOptions) ?? []; const updated = cloneConfigOptions(configOptions) ?? [];
updated[idx] = { ...updated[idx]!, currentValue: value }; updated[idx] = { ...updated[idx]!, currentValue: value } as SessionConfigOption;
return updated; return updated;
} }