Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions netlify/functions/lib/image-ref.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// pinned agent container image, bumped by app-building's build-container workflow after each
// image push (or by hand). must be an immutable tag, never :latest - spawning from :latest made
// the fleet's browser version depend on whenever someone last happened to push app-building main
// (recordings ran on a 2-month-old chromium through late june because of this).
// tag format is <app-building git sha>-<baked chromium buildId>, so a bump diff shows the
// browser change directly. the CONTAINER_IMAGE_REF env var still wins, for one-off experiments.
export const PINNED_CONTAINER_IMAGE =
'ghcr.io/replayio/app-building:fbc4139-linux-chromium-20260701-712764864f08-af657e1966d8'
3 changes: 3 additions & 0 deletions netlify/functions/lib/spawn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {

import { getSql } from '../db.ts'
import { containerBaseUrl, containerAddressHeaders } from './container-backend.ts'
import { PINNED_CONTAINER_IMAGE } from './image-ref.ts'

const FLY_API_BASE = 'https://api.machines.dev/v1'

Expand Down Expand Up @@ -397,6 +398,8 @@ export async function spawnContainer(opts: SpawnContainerOptions, repo: RepoOpti
const config: ContainerConfig = {
infisical: opts.infisical,
registry,
// pin the agent image instead of letting the package default to :latest
imageRef: process.env.CONTAINER_IMAGE_REF || PINNED_CONTAINER_IMAGE,
flyToken: opts.flyToken,
flyApp: opts.flyApp,
detached: opts.detached,
Expand Down
Loading