Skip to content

Commit d716562

Browse files
authored
Prepare Switchloom v0.3.1 Codex 0.145 candidate (#21)
Reviewed candidate commit 2f8ba00. All required CI, security, and four-target release-candidate provenance checks passed.
2 parents 7d79089 + 2f8ba00 commit d716562

77 files changed

Lines changed: 2669 additions & 640 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
All notable changes to Switchloom are recorded here.
44

5+
## [0.3.1] - 2026-07-22
6+
7+
- Added repository-local Codex Multi-Agent V2 activation and ownership-safe
8+
lifecycle handling for the official Codex CLI 0.145 contract.
9+
- Certified Terra and Sol native V2 routing with exact-version persisted
10+
runtime evidence while keeping Luna explicit and experimental/unverified.
11+
- Regenerated the public catalog, bundles, fixtures, website recipes, and
12+
guidance for the v0.3.1 compatibility release.
13+
514
## [0.3.0] - 2026-07-21
615

716
- Hard-cut maintainer-only live verification, catalog, registry, probe, and

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ default-members = ["."]
44
resolver = "3"
55

66
[workspace.package]
7-
version = "0.3.0"
7+
version = "0.3.1"
88
edition = "2024"
99
rust-version = "1.85"
1010
license = "MIT"

README.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ brew install instructa/tap/switchloom
1717
### npm
1818

1919
```sh
20-
npm install --global switchloom@0.3.0
20+
npm install --global switchloom@0.3.1
2121
```
2222

2323
Both channels install the branded `switchloom` command and the compatibility
@@ -41,8 +41,8 @@ The generator at [switchloom.ai](https://switchloom.ai) produces only the versio
4141
action copies a shell-safe command like:
4242

4343
```sh
44-
npx switchloom@0.3.0 preview --recipe 'sw1_...'
45-
npx switchloom@0.3.0 apply --recipe 'sw1_...'
44+
npx switchloom@0.3.1 preview --recipe 'sw1_...'
45+
npx switchloom@0.3.1 apply --recipe 'sw1_...'
4646
```
4747

4848
The secondary action downloads the same setup as a readable `.switchloom/config.toml`:
@@ -72,12 +72,14 @@ switchloom doctor codex
7272
```
7373

7474
`switchloom doctor <host>` is the install/version check for `codex`, `cursor`,
75-
`claude-code`, `opencode`, `pi`, or a concrete binding id. Run it before preview
76-
and apply when setup depends on a locally installed host CLI.
75+
`claude-code`, `opencode`, `pi`, or a concrete binding id. For Codex it also
76+
reports exact 0.145.0 support, repository-local V2 activation conflicts, and
77+
trust/reload guidance without mutating host state. Run it before preview and
78+
apply when setup depends on a locally installed host CLI.
7779

7880
## Current Status
7981

80-
The v0.3.0 public CLI compiles independently, preserves the frozen
82+
The v0.3.1 public CLI compiles independently, preserves the frozen
8183
Planr v1.5.0 routing inventory in [docs/migration-baseline.md](docs/migration-baseline.md),
8284
and hard-cuts maintainer-only evaluation, catalog, registry, and live-verification
8385
operations from the public command surface.
@@ -101,7 +103,7 @@ cargo run -- policy list
101103

102104
The static Astro website is an above-the-fold team generator built with React and shadcn. Users first choose standalone or optional Planr integration, then choose Codex, Cursor, Claude Code, OpenCode, or Pi, select up to four explicit roles, start from a Light, Balanced, or High team preset, and optionally override each role's model and reasoning effort. The primary result is a CLI recipe; the secondary result is a readable setup config. Only the Rust CLI compiles and applies project-native files. Codex is shown as an internal V2 thread-tree path; Cursor, Claude Code, and OpenCode are native subagent paths; Pi is an external runner path; separate app tasks are not treated as Codex V2 child threads. The host remains authoritative for model availability, execution, and billing.
103105

104-
Claude Code model and effort options are derived at build time from the canonical catalog produced by the Rust compiler. Codex mirrors its current desktop picker: `low`, `medium`, `high`, and `xhigh`, while Terra and Sol additionally expose `ultra` as a manual-only mode. Pure `max` is intentionally omitted because the desktop picker does not expose it separately; Ultra sends Max reasoning plus automatic multi-agent delegation. Light, Balanced, and High never select Ultra. Cursor uses a deliberately small, researched frontier allowlist because its full picker changes frequently; the website presents those models in a searchable selector. Generated custom setups are local and unverified until the user reviews them.
106+
Claude Code model and effort options are derived at build time from the canonical catalog produced by the Rust compiler. Codex mirrors its current desktop picker: `low`, `medium`, `high`, and `xhigh`, while Terra and Sol additionally expose `ultra` as a manual-only mode. Pure `max` is intentionally omitted because the desktop picker does not expose it separately; Ultra sends Max reasoning plus automatic multi-agent delegation. Light, Balanced, and High never select Ultra, and Codex defaults keep mechanical work on certified Terra rather than Luna. Luna remains selectable only as an explicit experimental/unverified choice until authentic Codex 0.145.0 V2 evidence is independently reviewed. Cursor uses a deliberately small, researched frontier allowlist because its full picker changes frequently; the website presents those models in a searchable selector. Generated custom setups are local and unverified until the user reviews them.
105107

106108
```sh
107109
cargo run -p xtask -- release prepare --allow-dirty
@@ -111,7 +113,7 @@ pnpm site:dev
111113
```
112114

113115
The website setup contract is equivalent to the CLI lifecycle: the copied
114-
`npx switchloom@0.3.0 apply --recipe 'sw1_...' --repository .` command and the
116+
`npx switchloom@0.3.1 apply --recipe 'sw1_...' --repository .` command and the
115117
downloadable `.switchloom/config.toml` both replay through CLI preview/apply
116118
before any repository-local artifact is written.
117119

@@ -138,11 +140,11 @@ pnpm security:check
138140
## Releases
139141

140142
Releases are created only through the repository-owned script. Prepare and
141-
commit a bracketed changelog section such as `## [0.3.0]`, then run:
143+
commit a bracketed changelog section such as `## [0.3.1]`, then run:
142144

143145
```sh
144-
RELEASE_DRY_RUN=1 scripts/release.sh 0.3.0 "Public CLI hard cut and deterministic setup lifecycle"
145-
scripts/release.sh 0.3.0 "Public CLI hard cut and deterministic setup lifecycle"
146+
RELEASE_DRY_RUN=1 scripts/release.sh 0.3.1 "Codex 0.145 native V2 compatibility"
147+
scripts/release.sh 0.3.1 "Codex 0.145 native V2 compatibility"
146148
```
147149

148150
The script requires a clean, synchronized `main`, runs the complete local
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
npx -y @openai/codex@0.145.0 --version
2+
codex-cli 0.145.0

docs/codex-v2-runtime-evidence.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"schema_version": 1,
3-
"evidence_id": "codex-cli-0.144.5-native-v2",
4-
"observed_at": "2026-07-20T00:00:00Z",
3+
"evidence_id": "codex-0.145.0-native-v2",
4+
"observed_at": "2026-07-21T21:12:00+02:00",
55
"installed_version": {
6-
"command": "codex --version",
7-
"stdout": "codex-cli 0.144.5",
8-
"stdout_sha256": "7dad51bb7d583ef2fa4162db23022b589b630f7187b091ba6f4015a5958994ab"
6+
"command": "npx -y @openai/codex@0.145.0 --version",
7+
"stdout": "codex-cli 0.145.0",
8+
"stdout_sha256": "f9eb0c462cdded1fb971b33c647ff1b8b491dfe962a1506026e07a06f634f651"
99
},
1010
"runtime_class": "native-subagent",
1111
"backend_selection_owner": "installed Codex backend selected by the authenticated host account and workspace; Switchloom only declares repository-local project agent model and effort requests",
@@ -49,24 +49,24 @@
4949
"installed_version": [
5050
{
5151
"kind": "host-command",
52-
"source": "codex --version",
52+
"source": "npx -y @openai/codex@0.145.0 --version",
5353
"observed_at": "2026-07-20T00:00:00Z",
54-
"codex_version": "codex-cli 0.144.5",
55-
"observed_value": "codex-cli 0.144.5",
54+
"codex_version": "codex-cli 0.145.0",
55+
"observed_value": "codex-cli 0.145.0",
5656
"required_raw_fragments": [
57-
"codex-cli 0.144.5"
57+
"codex-cli 0.145.0"
5858
],
59-
"source_path": "local-shell:codex --version",
60-
"raw_output": "codex-cli 0.144.5\n",
61-
"raw_output_sha256": "7dad51bb7d583ef2fa4162db23022b589b630f7187b091ba6f4015a5958994ab"
59+
"source_path": "docs/codex-0.145-exact-version-capture.txt",
60+
"raw_output": "codex-cli 0.145.0\n",
61+
"raw_output_sha256": "f9eb0c462cdded1fb971b33c647ff1b8b491dfe962a1506026e07a06f634f651"
6262
}
6363
],
6464
"backend_selection_owner": [
6565
{
6666
"kind": "source-document",
6767
"source": "OpenAI Codex configuration reference: project-scoped config cannot override machine-local provider, auth, host-owned app request metadata, configuration profile selection, or telemetry routing keys.",
6868
"observed_at": "2026-07-20T00:00:00Z",
69-
"codex_version": "codex-cli 0.144.5",
69+
"codex_version": "codex-cli 0.145.0",
7070
"observed_value": "installed Codex backend selected by the authenticated host account and workspace; Switchloom only declares repository-local project agent model and effort requests",
7171
"required_raw_fragments": [
7272
"Project-scoped config cannot override machine-local provider, auth",
@@ -82,7 +82,7 @@
8282
"kind": "source-document",
8383
"source": "OpenAI Codex configuration and subagents references: trusted project-scoped config plus project-scoped .codex/agents custom agent files.",
8484
"observed_at": "2026-07-20T00:00:00Z",
85-
"codex_version": "codex-cli 0.144.5",
85+
"codex_version": "codex-cli 0.145.0",
8686
"observed_value": {
8787
"trust_boundary": "trusted project repository plus generated .codex/config.toml [agents.*] registrations; global Codex configuration is outside Switchloom ownership",
8888
"discovery_behavior": "Codex discovers repository-local agent files through .codex/config.toml registration entries after project trust and host reload/restart"
@@ -102,7 +102,7 @@
102102
"kind": "session-runtime-contract",
103103
"source": "Codex session developer runtime contract for this workspace declares the active collaboration slot budget.",
104104
"observed_at": "2026-07-20T00:00:00Z",
105-
"codex_version": "codex-cli 0.144.5",
105+
"codex_version": "codex-cli 0.145.0",
106106
"observed_value": {
107107
"max_parallel_children": 3,
108108
"source": "Codex V2 collaboration host exposes four active agent slots including the root, leaving three parallel child slots in the current runtime"
@@ -122,7 +122,7 @@
122122
"kind": "source-document",
123123
"source": "OpenAI Codex subagents reference: parent live sandbox and approval overrides are reapplied to children; omitted custom-agent model and model_reasoning_effort inherit from the parent session.",
124124
"observed_at": "2026-07-20T00:00:00Z",
125-
"codex_version": "codex-cli 0.144.5",
125+
"codex_version": "codex-cli 0.145.0",
126126
"observed_value": [
127127
"spawn_agent agent_type selects the registered project agent file",
128128
"the selected project agent file declares requested child model and model_reasoning_effort fields when present",
@@ -145,7 +145,7 @@
145145
"kind": "session-runtime-contract",
146146
"source": "Codex session developer runtime contract for this workspace declares shared filesystem behavior for team agents.",
147147
"observed_at": "2026-07-20T00:00:00Z",
148-
"codex_version": "codex-cli 0.144.5",
148+
"codex_version": "codex-cli 0.145.0",
149149
"observed_value": true,
150150
"required_raw_fragments": [
151151
"All agents share the same container and filesystem",
@@ -161,7 +161,7 @@
161161
"kind": "source-document",
162162
"source": "OpenAI Codex subagents and models references: Ultra can proactively delegate; most intelligence levels require explicit delegation.",
163163
"observed_at": "2026-07-20T00:00:00Z",
164-
"codex_version": "codex-cli 0.144.5",
164+
"codex_version": "codex-cli 0.145.0",
165165
"observed_value": {
166166
"explicit_agent_type_dispatch": true,
167167
"ultra_auto_delegation": true,

docs/model-routing-policy.md

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,9 @@ agent discovery after reload/restart, backend availability, execution timing,
4747
parallel child scheduling, billing, and any account/workspace precedence that
4848
affects the effective backend.
4949

50-
For Codex, the runtime behavior contract freezes `codex-cli 0.144.5` as both
51-
the minimum and maximum supported capability version for this contract slice.
50+
For Codex, the runtime behavior contract freezes official Codex CLI `0.145.0`
51+
as both the minimum and maximum supported capability version for this contract
52+
slice.
5253
The digest-bound source artifact is
5354
`docs/codex-v2-runtime-evidence.json#sha256:<digest>`. That artifact records
5455
the `codex --version` observation, Codex account/workspace state as the actual
@@ -65,14 +66,18 @@ dispatch, Ultra behavior, and role precedence:
6566
before the effective model/effort claim is certified.
6667

6768
Native Codex setup is repository-local only: it writes managed `.codex`
68-
project config and role files, preserves unrelated project and global Codex
69-
configuration, and does not generate or instruct nested `codex exec` dispatch.
70-
After apply/update/rollback, Codex may require trusting the project and
71-
reloading or restarting the host session before the generated role
72-
registrations are discoverable.
69+
project config and role files, including `[features.multi_agent_v2]` with
70+
`enabled = true` and `hide_spawn_agent_metadata = false`. It preserves unrelated
71+
project and global Codex configuration, and does not generate or instruct
72+
nested `codex exec` dispatch. After apply/update/rollback, Codex may require
73+
trusting the project and reloading or restarting the host session before the
74+
generated role registrations are discoverable.
7375

7476
Explicit semantic-role dispatch and Ultra are separate modes. Light, Balanced,
75-
and High presets use explicit `agent_type` dispatch with `fork_turns = none`;
77+
and High presets use explicit `agent_type` dispatch with `fork_turns = none`.
78+
Terra is the certified implementation and mechanical default for Codex routing.
79+
Luna remains available only as an explicit experimental/unverified role until
80+
authentic official-build Codex 0.145.0 V2 evidence passes independent review.
7681
Ultra is recorded as the automatic delegation mode and must remain separately
7782
selected rather than becoming a default preset.
7883

@@ -90,8 +95,8 @@ model-routing compile balanced --host codex-openai --output routing-bundle.json
9095
model-routing preview routing-bundle.json --repository .
9196
model-routing apply routing-bundle.json --repository .
9297

93-
npx switchloom@0.3.0 preview --recipe 'sw1_...' --repository .
94-
npx switchloom@0.3.0 apply --recipe 'sw1_...' --repository .
98+
npx switchloom@0.3.1 preview --recipe 'sw1_...' --repository .
99+
npx switchloom@0.3.1 apply --recipe 'sw1_...' --repository .
95100
switchloom status --repository .
96101
switchloom update --repository .
97102
switchloom rollback --repository .
@@ -107,9 +112,12 @@ must not emit `.planr` files.
107112

108113
Live host checks, receipt validation, catalog generation, and catalog verification
109114
are unpublished maintainer operations owned by `xtask`. They are exercised by the
110-
repository release workflow and are not part of the v0.3.0 public CLI contract.
111-
Public users should run `switchloom doctor <host>` to check host availability and
112-
version, then review `preview` output before `apply`.
115+
repository release workflow and are not part of the v0.3.1 public CLI contract.
116+
Public users should run `switchloom doctor <host>` to check host availability,
117+
version, and host-specific readiness diagnostics, then review `preview` output
118+
before `apply`. For Codex, doctor reports exact 0.145.0 support, repository-local
119+
V2 activation conflicts, and trust/reload guidance without mutating global
120+
Codex state.
113121

114122
## Planr Consumer Handoff
115123

docs/package-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The policy is enforced by `.gitignore`, `Cargo.toml` `exclude`, and the CI packa
1515

1616
Only source, fixtures, docs, CI metadata, and deterministic generator inputs should enter the package. Live verification receipts and authenticated-host evidence belong in release notes or reviewed handoff docs after secret scrubbing, not in the crate payload.
1717

18-
## v0.3.0 Public Boundary
18+
## v0.3.1 Public Boundary
1919

2020
The published CLI owns `policy`, `compile`, `inspect`, `preview`, `apply`,
2121
`update`, `status`, `rollback`, `uninstall`, and `doctor`. Maintainer verification,

docs/preset-evaluation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Preset Evaluation
22

33
Evaluation is a deterministic, offline library API owned by the `model-routing`
4-
crate. It is exercised by Rust tests and maintainer release verification; v0.3.0
4+
crate. It is exercised by Rust tests and maintainer release verification; v0.3.1
55
does not expose a standalone evaluation command.
66

77
The report records the evaluation suite id, suite hash, bundle hash, scenario count, status, and recommendation state. Offline evaluation cannot claim live verification or recommendation status.

docs/preset-registry.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cargo run -p xtask -- release verify --inventory-only
99
```
1010

1111
Detached Ed25519 signing and verification are owned by the `model-routing`
12-
library API. They are not standalone public CLI operations in v0.3.0.
12+
library API. They are not standalone public CLI operations in v0.3.1.
1313

1414
Unsigned catalog entries remain experimental.
1515

0 commit comments

Comments
 (0)