Accepted decision
On 2026-09-18 the owner approved using latest for both Claude Code and Codex in Drawing Board. Replace permanent exact third-party agent pins with the vendors' current public releases. For Claude this means the latest channel, not its delayed stable channel. Implementation is merged in #40, with the fresh Codespace installation receipt merged in #41. This does not change First Draft package release status.
- Install current public Claude Code and Codex releases when preparing a new Codespace.
- Allow their ordinary supported update paths; rerunning setup must not restore an obsolete hard-coded agent version.
- Record the actual installed versions in smoke/qualification output. Test the commands and Skill discovery Drawing Board uses rather than requiring one historical version number.
- Reserve a temporary exact pin for a demonstrated regression or an explicitly frozen experiment, with its reason recorded. Do not add a custom updater, release-approval process for every agent version, or an unconditional download on every Codespace resume.
- Keep First Draft CLI/Skill/service compatibility and language/database/image version policies separate. This decision does not unpin those components or authorize release of First Draft packages.
Related Service audit/documentation owners: https://github.com/firstdraft/firstdraft/issues/663 and https://github.com/firstdraft/firstdraft/issues/712.
Rationale and preceding behavior
The initial Drawing Board commit sought a reproducible colleague-testing environment. Agent versions in a test receipt remain useful, but indefinite client pins do not freeze the hosted model or service and impose upgrade friction.
An actual compatibility failure is already recorded: Codex 0.147.0 rejected the newer model before using a First Draft Skill or service. The 0.154.0 upgrade addressed that minimum-client requirement. Claude's native AGENTS.md discovery similarly postdated that pinned client; its separate discovery caveats still need qualification under Service #712.
At Drawing Board main aed9635a4dc191eb1f384e500c10648a5cec2215:
.devcontainer/agent-versions.env selects Claude Code 2.1.226 and Codex 0.154.0.
.devcontainer/setup-agents passes those exact versions to npm on setup.
script/devcontainer-smoke requires exact version matches as well as exercising CLI flags/help, configuration, and Skill discovery.
The accepted tradeoff is receiving ordinary upstream changes and occasional regressions, rather than holding students on old clients until a Drawing Board release. Use actual test evidence to respond to breakage instead of treating a frozen CLI number as a compatibility guarantee.
Implementation and verification
Primary update guidance: Claude Code installation and updates, Codex update command.
Completion checkpoint — 2026-09-19
Drawing Board main is 3e4ba3d3b62de78642be2c46975ed2454c74130f, tree 1e42672cbe5aaebdcbbeb98857fccd3a24642d54. PR #41's exact-head hosted CI and independent documentation review passed; its implementation paths are unchanged from merged #40 at d2f488f.
A fresh Codespace at the correct merged source installed Claude 2.1.278 and Codex 0.155.1 through supported native/user-owned paths. Two full smokes passed, including all three Bash modes, effective Codex permissions, and both Skill catalogs. A complete setup rerun preserved six synthetic credential/conversation/unrelated-Skill files plus the initial Codex config and blank .env, including bytes, modes and ownership. No custom Claude settings file existed in this fresh fixture; earlier migration/rerun proof remains separately recorded. The fixture was shut down after evidence export.
The minimal CLAUDE.md import remains. First-session native instruction-discovery qualification belongs to firstdraft/firstdraft#712; latest client selection alone is not that proof. Real sign-in, authenticated model turns, Compilation and publication were not part of this installation observation. First Draft CLI0.2.2, Skills54294d6c and the image pin remain unchanged.
The earlier stale-source prebuild attempt and missing automatic successor are a separate operational investigation in #42. Manual refresh success does not diagnose that cause. No fixture remains active and no package, plugin, image or gist release occurred.
Accepted decision
On 2026-09-18 the owner approved using latest for both Claude Code and Codex in Drawing Board. Replace permanent exact third-party agent pins with the vendors' current public releases. For Claude this means the
latestchannel, not its delayedstablechannel. Implementation is merged in #40, with the fresh Codespace installation receipt merged in #41. This does not change First Draft package release status.Related Service audit/documentation owners: https://github.com/firstdraft/firstdraft/issues/663 and https://github.com/firstdraft/firstdraft/issues/712.
Rationale and preceding behavior
The initial Drawing Board commit sought a reproducible colleague-testing environment. Agent versions in a test receipt remain useful, but indefinite client pins do not freeze the hosted model or service and impose upgrade friction.
An actual compatibility failure is already recorded: Codex 0.147.0 rejected the newer model before using a First Draft Skill or service. The 0.154.0 upgrade addressed that minimum-client requirement. Claude's native AGENTS.md discovery similarly postdated that pinned client; its separate discovery caveats still need qualification under Service #712.
At Drawing Board main
aed9635a4dc191eb1f384e500c10648a5cec2215:.devcontainer/agent-versions.envselects Claude Code 2.1.226 and Codex 0.154.0..devcontainer/setup-agentspasses those exact versions to npm on setup.script/devcontainer-smokerequires exact version matches as well as exercising CLI flags/help, configuration, and Skill discovery.The accepted tradeoff is receiving ordinary upstream changes and occasional regressions, rather than holding students on old clients until a Drawing Board release. Use actual test evidence to respond to breakage instead of treating a frozen CLI number as a compatibility guarantee.
Implementation and verification
--version/--helpoutput does not prove them.Primary update guidance: Claude Code installation and updates, Codex update command.
Completion checkpoint — 2026-09-19
Drawing Board main is
3e4ba3d3b62de78642be2c46975ed2454c74130f, tree1e42672cbe5aaebdcbbeb98857fccd3a24642d54. PR #41's exact-head hosted CI and independent documentation review passed; its implementation paths are unchanged from merged #40 atd2f488f.A fresh Codespace at the correct merged source installed Claude 2.1.278 and Codex 0.155.1 through supported native/user-owned paths. Two full smokes passed, including all three Bash modes, effective Codex permissions, and both Skill catalogs. A complete setup rerun preserved six synthetic credential/conversation/unrelated-Skill files plus the initial Codex config and blank
.env, including bytes, modes and ownership. No custom Claude settings file existed in this fresh fixture; earlier migration/rerun proof remains separately recorded. The fixture was shut down after evidence export.The minimal CLAUDE.md import remains. First-session native instruction-discovery qualification belongs to firstdraft/firstdraft#712; latest client selection alone is not that proof. Real sign-in, authenticated model turns, Compilation and publication were not part of this installation observation. First Draft CLI0.2.2, Skills54294d6c and the image pin remain unchanged.
The earlier stale-source prebuild attempt and missing automatic successor are a separate operational investigation in #42. Manual refresh success does not diagnose that cause. No fixture remains active and no package, plugin, image or gist release occurred.