mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 09:01:17 +00:00
* Fix Foundry auth: migrate to Better Auth adapter, fix access token retrieval - Remove @ts-nocheck from better-auth.ts, auth-user/index.ts, app-shell.ts and fix all type errors - Fix getAccessTokenForSession: read GitHub token directly from account record instead of calling Better Auth's internal /get-access-token endpoint which returns 403 on server-side calls - Re-implement workspaceAuth helper functions (workspaceAuthColumn, normalizeAuthValue, workspaceAuthClause, workspaceAuthWhere) that were accidentally deleted - Remove all retry logic (withRetries, isRetryableAppActorError) - Implement CORS origin allowlist from configured environment - Document cachedAppWorkspace singleton pattern - Add inline org sync fallback in buildAppSnapshot for post-OAuth flow - Add no-retry rule to CLAUDE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add Foundry dev panel from fix-git-data branch Port the dev panel component that was left out when PR #243 was replaced by PR #247. Adapted to remove runtime/mock-debug references that don't exist on the current branch. - Toggle with Shift+D, persists visibility to localStorage - Shows context, session, GitHub sync status sections - Dev-only (import.meta.env.DEV) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add full Docker image defaults, fix actor deadlocks, and improve dev experience - Add Dockerfile.full and --all flag to install-agent CLI for pre-built images - Centralize Docker image constant (FULL_IMAGE) pinned to 0.3.1-full - Remove examples/shared/Dockerfile{,.dev} and daytona snapshot example - Expand Docker docs with full runnable Dockerfile - Fix self-deadlock in createWorkbenchSession (fire-and-forget provisioning) - Audit and convert 12 task actions from wait:true to wait:false - Add bun --hot for dev backend hot reload - Remove --force from pnpm install in dev Dockerfile for faster startup - Add env_file support to compose.dev.yaml for automatic credential loading - Add mock frontend compose config and dev panel - Update CLAUDE.md with wait:true policy and dev environment setup Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * WIP: async action fixes and interest manager Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix Foundry UI bugs: org names, hanging sessions, and wrong repo creation - Fix org display name using GitHub description instead of name field - Fix createWorkbenchSession hanging when sandbox is provisioning - Fix auto-session creation retry storm on errors - Fix task creation using wrong repo due to React state race conditions - Remove Bun hot-reload from backend Dockerfile (causes port drift) - Add GitHub sync/install status to dev panel Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
61 lines
2.7 KiB
TypeScript
61 lines
2.7 KiB
TypeScript
import { $ } from "execa";
|
|
import type { ReleaseOpts } from "./main";
|
|
import { fetchGitRef, versionOrCommitToRef } from "./utils";
|
|
|
|
const IMAGE = "rivetdev/sandbox-agent";
|
|
|
|
export async function tagDocker(opts: ReleaseOpts) {
|
|
// Determine which commit to use for source images
|
|
let sourceCommit = opts.commit;
|
|
if (opts.reuseEngineVersion) {
|
|
console.log(`==> Reusing Docker images from ${opts.reuseEngineVersion}`);
|
|
const ref = versionOrCommitToRef(opts.reuseEngineVersion);
|
|
await fetchGitRef(ref);
|
|
const result = await $`git rev-parse ${ref}`;
|
|
sourceCommit = result.stdout.trim().slice(0, 7);
|
|
console.log(`==> Source commit: ${sourceCommit}`);
|
|
}
|
|
|
|
try {
|
|
await ensureArchImagesExist(sourceCommit, "");
|
|
} catch (error) {
|
|
console.warn(`⚠️ Docker images ${IMAGE}:${sourceCommit}-{amd64,arm64} not found - skipping Docker tagging`);
|
|
console.warn(` To enable Docker tagging, build and push images first, then retry the release.`);
|
|
return;
|
|
}
|
|
|
|
await createManifest(sourceCommit, opts.version);
|
|
if (opts.latest) {
|
|
await createManifest(sourceCommit, "latest");
|
|
await createManifest(sourceCommit, opts.minorVersionChannel);
|
|
}
|
|
|
|
try {
|
|
await ensureArchImagesExist(sourceCommit, "-full");
|
|
await createManifest(sourceCommit, `${opts.version}-full`, "-full");
|
|
if (opts.latest) {
|
|
await createManifest(sourceCommit, `${opts.minorVersionChannel}-full`, "-full");
|
|
await createManifest(sourceCommit, "full", "-full");
|
|
}
|
|
} catch (error) {
|
|
console.warn(`⚠️ Full Docker images ${IMAGE}:${sourceCommit}-full-{amd64,arm64} not found - skipping full Docker tagging`);
|
|
console.warn(` To enable full Docker tagging, build and push full images first, then retry the release.`);
|
|
}
|
|
}
|
|
|
|
async function ensureArchImagesExist(sourceCommit: string, variantSuffix: "" | "-full") {
|
|
console.log(`==> Checking images exist: ${IMAGE}:${sourceCommit}${variantSuffix}-{amd64,arm64}`);
|
|
console.log(`==> Inspecting ${IMAGE}:${sourceCommit}${variantSuffix}-amd64`);
|
|
await $({ stdio: "inherit" })`docker manifest inspect ${IMAGE}:${sourceCommit}${variantSuffix}-amd64`;
|
|
console.log(`==> Inspecting ${IMAGE}:${sourceCommit}${variantSuffix}-arm64`);
|
|
await $({ stdio: "inherit" })`docker manifest inspect ${IMAGE}:${sourceCommit}${variantSuffix}-arm64`;
|
|
console.log(`==> Both images exist`);
|
|
}
|
|
|
|
async function createManifest(from: string, to: string, variantSuffix: "" | "-full" = "") {
|
|
console.log(`==> Creating manifest: ${IMAGE}:${to} from ${IMAGE}:${from}${variantSuffix}-{amd64,arm64}`);
|
|
|
|
await $({
|
|
stdio: "inherit",
|
|
})`docker buildx imagetools create --tag ${IMAGE}:${to} ${IMAGE}:${from}${variantSuffix}-amd64 ${IMAGE}:${from}${variantSuffix}-arm64`;
|
|
}
|