57dc91585d
Internal SmartGift build of a Claude Code monitoring dashboard. Lanes: a durable unit of parallel agent work, one per working directory, tracked across session restarts. Managed lanes are git worktrees the dashboard provisions and can reset or remove behind a three-check destroy guard and a counted preflight; adopted lanes are directories you already own and are never destroyable. Pipelines: a lane moves through pipeline stages. A stage the agent declares with evidence renders green; a stage inferred from the tool-event stream renders dashed amber and never counts as done. Detection is forward-only within a 30-minute window, and never writes the declared stage. Workspace: one page at /run with a lane grid, the selected lane's pipeline, and a full Claude console behind a disclosure.
36 lines
824 B
Docker
36 lines
824 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
# Build context must be the repository root so the local file dependency
|
|
# ("agent-dashboard": "file:..") resolves correctly.
|
|
|
|
FROM node:22-alpine AS deps
|
|
WORKDIR /workspace
|
|
|
|
COPY package.json package-lock.json ./
|
|
COPY mcp/package.json mcp/package-lock.json ./mcp/
|
|
|
|
RUN npm --prefix mcp ci --omit=dev
|
|
|
|
FROM node:22-alpine AS build
|
|
WORKDIR /workspace
|
|
|
|
COPY package.json package-lock.json ./
|
|
COPY mcp/package.json mcp/package-lock.json ./mcp/
|
|
|
|
RUN npm --prefix mcp ci
|
|
|
|
COPY mcp ./mcp
|
|
|
|
RUN npm --prefix mcp run build
|
|
|
|
FROM node:22-alpine AS runtime
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
COPY --from=deps /workspace/mcp/node_modules ./node_modules
|
|
COPY --from=build /workspace/mcp/build ./build
|
|
COPY --from=build /workspace/mcp/package.json ./package.json
|
|
|
|
ENTRYPOINT ["node", "build/index.js"]
|