Skip to content

Commit 0a726f0

Browse files
committed
feat: bridge Codex v0.5–v0.6 runtime-parity-limits doc + changelog (4/4)
Phase 4 (final) of the Codex-Game-Studios v0.5–v0.6 bridge: document OpenCode runtime parity limits and record the full bridge in CHANGELOG/VERSION. - README.md: new 'Runtime Parity Limits' section documenting OpenCode-specific enforcement limits honestly (advisory path rules, instruction/rule/hook-backed per-agent fences, model tiers as guidance, installer success != activation, workflow-guidance isolation). Also updates the deploy feature bullet (fail-closed preflight + --replace-modified + transactional rollback) and adds the .env* permission-layer note. - CHANGELOG.md: v0.5.0 entry summarizing all four phases (secret protection, fail-closed installer, transactional rollback, advisory checks, parity-limits doc) and explicitly listing the Codex-only changes that were NOT ported. - .opencode/VERSION: 0.4.2 -> 0.5.0; README badge + version refs updated. Verified: audit.sh release passes (VERSION 0.5.0, CHANGELOG has v0.5.0 section); audit.sh all 0 errors; no stale 0.4.2 refs in README/VERSION. This completes the v0.5-v0.6 migration.
1 parent c99ecd6 commit 0a726f0

3 files changed

Lines changed: 90 additions & 5 deletions

File tree

.opencode/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.2
1+
0.5.0

CHANGELOG.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,63 @@
11
# Changelog
22

3+
## v0.5.0 - 2026-07-12
4+
5+
Bridged Codex Game Studios v0.5–v0.6 (upstream commit 259cff8) into the
6+
OpenCode-native port. Adopted the portable behavioral improvements only;
7+
Codex-platform internals (MultiAgent V2 role-activation proof, `.codex`
8+
installer/validators, CCGS framework frontmatter, skill delegation dialect)
9+
are intentionally not ported — OpenCode's Task/subagent model and `.opencode`
10+
structure make them inapplicable or already-equivalent.
11+
12+
### Phase 1 — Secret protection + trust/activation messaging
13+
14+
- Added `edit` and `glob` `*.env*` denies to `opencode.json` (the `edit` scope
15+
covers write/patch), closing a gap where agents could create/overwrite
16+
secrets via the write tool. Consolidated `read` to a single `*.env*`
17+
catch-all so nested files and `.envrc` are covered; `*.env.example` stays
18+
allowed for templates.
19+
- Install banner, README, and UPGRADING now state that installer success is
20+
static-only and a new opencode session is required before hooks,
21+
permissions, and agents are active.
22+
- `audit.sh config` now asserts an `edit` `*.env*` deny exists (regression guard).
23+
24+
### Phase 2a — Installer/uninstaller fail-closed hardening
25+
26+
- `coexistence.sh`: added `ccgs_state_validate` (exists/schema==2/valid
27+
JSON/no path-traversal/no symlink) and `ccgs_state_owned_paths`.
28+
- `uninstall.sh`: fail-closed — removed the source-manifest fallback so
29+
missing/invalid state aborts without removing files; dropped the redundant
30+
emptiness-based AGENTS.md re-check; limited pruning to `.opencode/`.
31+
- `install.sh`: `--replace-modified` opt-in + Python preflight that aborts
32+
before mutation on unowned collisions and locally-modified package files.
33+
- `audit.sh`: `run_install_safety` validator (5 static guards) wired into
34+
`all` and exposed as `audit.sh install-safety`.
35+
36+
### Phase 2b — Transactional deploy + rollback
37+
38+
- `install.sh`: the cross-target deploy is now transactional — to-be-overwritten
39+
files are snapshotted and created files recorded before mutation; a
40+
mid-deploy failure restores modified files and removes created files, leaving
41+
the target at its pre-deploy state. A `rollback-<timestamp>/` record is kept
42+
for inspection.
43+
44+
### Phase 3 — Advisory coexistence + smoke-headless checks
45+
46+
- `audit.sh coexistence`: real install/uninstall matrix in a temp dir (fresh
47+
install, collision abort, modified abort, `--replace-modified`, uninstall
48+
missing-state, uninstall valid-state, transactional rollback).
49+
- `audit.sh smoke-headless`: command→skill graph integrity; model-driven smoke
50+
deferred until a CI model runner exists.
51+
- `.github/workflows/release-check.yml`: `coexistence-advisory` and
52+
`smoke-headless-advisory` jobs (`continue-on-error: true`); the existing
53+
`validate` job remains the blocking gate.
54+
55+
### Phase 4 — Runtime parity limits doc
56+
57+
- README: new "Runtime Parity Limits" section documenting OpenCode-specific
58+
enforcement limits honestly (advisory path rules, instruction-backed fences,
59+
model tiers as guidance, installer success ≠ activation).
60+
361
## v0.4.2 - 2026-07-10
462

563
Bridged Codex Game Studios v0.4.5–v0.4.7 (bug lifecycle consolidation, handoff

README.md

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<a href=".opencode/skills"><img src="https://img.shields.io/badge/skills-77-green" alt="77 Skills"></a>
1414
<a href=".opencode/commands"><img src="https://img.shields.io/badge/commands-77-yellow" alt="77 Commands"></a>
1515
<a href=".opencode/hooks"><img src="https://img.shields.io/badge/hooks-12-orange" alt="12 Hooks"></a>
16-
<a href=".opencode/VERSION"><img src="https://img.shields.io/badge/version-0.4.2-blue" alt="v0.4.2"></a>
16+
<a href=".opencode/VERSION"><img src="https://img.shields.io/badge/version-0.5.0-blue" alt="v0.5.0"></a>
1717
<a href="https://opencode.ai"><img src="https://img.shields.io/badge/built%20for-OpenCode-f5f5f5" alt="Built for OpenCode"></a>
1818
</p>
1919

@@ -69,7 +69,7 @@ first brainstorm to launch.
6969

7070
## Current Status
7171

72-
Package version: `0.4.2` (see [`.opencode/VERSION`](.opencode/VERSION)).
72+
Package version: `0.5.0` (see [`.opencode/VERSION`](.opencode/VERSION)).
7373

7474
This release includes:
7575
- Hard `/resume-from-handoff` lane-selection boundary: focus arguments only bias
@@ -107,9 +107,36 @@ This release includes:
107107
Code-Turn Discipline, Workflow Gates, File Lifecycle, Continuity Epilogue)
108108
- Model-agnostic installer with 3-tier model selection and hard validation
109109
- Coexistence detection for Claude Code, Codex, and mixed-runtime projects
110-
- Manifest-driven deploy with backup-before-overwrite and shared-path preservation
110+
- Manifest-driven deploy with fail-closed preflight, `--replace-modified`, and transactional rollback
111111
- Spawn-based plugin with payload capture for runtime verification
112112
- `'*': deny` permission model with `question`/`todowrite` allowed for all agents
113+
- `.env*` denied across `read`/`edit`/`glob`/`bash` so secrets are protected at the permission layer
114+
115+
## Runtime Parity Limits
116+
117+
This is a faithful semantic port of the upstream Claude Code Game Studios
118+
structure with documented runtime limits — not a claim that every upstream
119+
enforcement primitive is reproduced exactly in OpenCode:
120+
121+
- **Path rules are advisory.** Root `AGENTS.md` routes edits to
122+
`.opencode/rules/*.md`, but nested rule files are not auto-discovered by
123+
OpenCode on every edit; agents are instructed to read them. Per-edit rule
124+
triggering is instruction-backed, not a hard platform hook.
125+
- **Per-agent fences are instruction/rule/hook-backed.** Where upstream roles
126+
deny specific tools, the OpenCode equivalent is enforced through agent
127+
instructions, path rules, and the `ccgs-hooks.js` plugin rather than an exact
128+
per-agent hard fence.
129+
- **Model tiers are guidance.** Per-agent `metadata.ccgs_tier` maps to a model
130+
tier configured at install time; the OpenCode session model choice remains the
131+
available runtime control.
132+
- **Installer success ≠ activation.** A successful install deploys files and
133+
passes the static audit only. Trust the project and start a new `opencode`
134+
session before hooks, rules, the permission profile, and agents are active.
135+
- **Prototype/worktree isolation** is explicit workflow guidance, not automatic
136+
subagent isolation.
137+
138+
The advisory `audit.sh coexistence` and `smoke-headless` commands surface
139+
regressions in these areas without blocking the build.
113140

114141
## Studio Hierarchy
115142

@@ -415,7 +442,7 @@ opencode.json # Permissions, plugin ref, instruction file
415442
uninstall.sh # Coexistence-aware uninstaller
416443
audit.sh # Validation dispatcher
417444
release.sh # Version management + GitHub releases
418-
VERSION # Package version (0.4.2)
445+
VERSION # Package version (0.5.0)
419446
design/ # GDDs, narrative docs (AGENTS.md + registry/)
420447
docs/ # Technical docs, ADRs, engine reference
421448
production/ # Sprint plans, milestones, session state

0 commit comments

Comments
 (0)