Skip to content

feat(workspace): remove the workspace contract and stop shipping agent CLIs in the image - #1144

Draft
sheepbox8646 wants to merge 1 commit into
workspace-deps/04-webfrom
workspace-deps/06-image-contract
Draft

feat(workspace): remove the workspace contract and stop shipping agent CLIs in the image#1144
sheepbox8646 wants to merge 1 commit into
workspace-deps/04-webfrom
workspace-deps/06-image-contract

Conversation

@sheepbox8646

@sheepbox8646 sheepbox8646 commented Sep 3, 2026

Copy link
Copy Markdown
Member

变更内容

workspace-deps 最后一层(设计 §13、§15 阶段 8–9)。

  • 镜像瘦身docker/toolkit/install.sh 不再安装 @openai/codex@anthropic-ai/claude-code,删除 docker/toolkit/bin/codexbin/claude launcher wrapper;Dockerfile.workspace 与 CI smoke test 同步。镜像只保留底座(node、python、uv、显示栈、a11y-cli);agent CLI 由依赖管理器装到 /data,首次启用走安装对话框。
  • 移除 workspace contract:删除 internal/workspace/contract.go 及全部校验;WorkspaceInitPathWorkspaceBridgePath 迁为容器启动参数常量;删除 ErrWorkspaceImageIncompatibleCodeWorkspaceImageIncompatible 及 bots/handlers 中的分支与前端 i18n;删除 docker/workspace-contract.json 与 CI 中的 contract 校验;原 contract 测试改为覆盖模板 bootstrap 失败路径。

理由见设计 §13:tini/bridge 缺失由容器启动路径先行暴露,contract 对它们从未真正生效;其余能力(node/python/uv/a11y/display)在使用点报错更具体;agent CLI 的存在与版本由依赖管理器的 discovery 与 agent_dependency_missing 承接,用户有可点的补救动作,而不是「镜像不兼容,请重建」。

验证

  • go test ./... 全绿;golangci-lint 涉及包干净;全库 grep ImageIncompatible|workspace-contract|CurrentWorkspaceContractVersion 仅剩设计文档。
  • shellcheck docker/toolkit/install.sh 告警数不增加;docker.yml YAML 解析通过。
  • 未在本地重建 workspace 镜像(约 4 GB);镜像构建由 docker.yml 的 CI 验证。

⚠️ No human QA — this PR has not been verified by a human yet. Remove this line once a human confirms the happy path.

🤖 Generated with Claude Code

https://claude.ai/code/session_017sihinqYWYNmZ9K842WqDJ

@sheepbox8646 sheepbox8646 changed the title feat(workspace): remove the workspace contract and stop baking agent CLIs into the image feat(workspace): remove the workspace contract and stop shipping agent CLIs in the image Sep 3, 2026
@sheepbox8646
sheepbox8646 force-pushed the workspace-deps/06-image-contract branch from cfc2c7c to e320e46 Compare September 3, 2026 09:44
@sheepbox8646
sheepbox8646 force-pushed the workspace-deps/06-image-contract branch from e320e46 to 32dd4be Compare September 3, 2026 12:19
@sheepbox8646
sheepbox8646 changed the base branch from workspace-deps/05-versions-overlays to workspace-deps/04-web September 3, 2026 12:21
…CLIs into the image

The image is now a baseline (node, python, uv, display stack); Codex and
Claude Code are installed into /data by the dependency manager, so the
toolkit no longer ships them or their launcher wrappers. The workspace
contract check is deleted with all of its error plumbing: tini and the
bridge are covered by container startup, and every other capability
reports at its point of use with an actionable dependency error instead of
a whole-image incompatibility verdict (design §13).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017sihinqYWYNmZ9K842WqDJ
@sheepbox8646
sheepbox8646 force-pushed the workspace-deps/06-image-contract branch from 32dd4be to e9bca0e Compare September 3, 2026 14:18
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.

1 participant