Skip to content

Commit 378a439

Browse files
committed
chore(release): codex adapter 1.8.7
Signed-off-by: Danil Silantyev <danilsilantyevwork@gmail.com>
1 parent 693a006 commit 378a439

42 files changed

Lines changed: 817 additions & 109 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.

.claude/CLAUDE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ Do not treat OpenCode or Gemini command formats as native Codex runtime.
6262
`$HOME/.local/bin/playwright-cli`, and
6363
`$HOME/.local/bin/chrome-devtools-mcp` wrappers backed by CloakBrowser; no
6464
stock Chromium, in-app browser, or raw-browser fallback is allowed.
65+
- System install keeps `browser@openai-bundled`, `node_repl`, and
66+
`computer-use` explicitly disabled; doctor rejects reinjected active copies
67+
and requires reinstall plus Codex restart.
6568
- Security checks (CodeQL, secret scanning, dependency checks) are required checks in
6669
this adapter.
6770

@@ -70,3 +73,6 @@ Do not treat OpenCode or Gemini command formats as native Codex runtime.
7073
- Keep `.serena/` durable context updated on `main` updates and avoid rewriting
7174
existing commit history.
7275
- Commit adapter changes in this repo first, then update super-repo submodule pointer.
76+
- Push a signed numeric release tag only after exact-SHA branch CI is stably
77+
green; release workflow dispatch may verify an existing tag but never create
78+
or push one.

.github/workflows/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ release `0.5.1` at commit
3535

3636
| Workflow | Trigger | Purpose |
3737
| --- | --- | --- |
38-
| `release.yml` | numeric product tag or manual dispatch | Release validation, deterministic bundle, SBOM, attestations, GitHub Release. |
38+
| `release.yml` | numeric product tag or existing-tag manual dispatch | Verifies the exact remote tag and its ancestry from `origin/main`, then runs release validation, deterministic bundle, SBOM, attestations, and `gh release --verify-tag`; it never creates or pushes tags. |
3939

4040
## Cost Policy
4141

.github/workflows/release.yml

Lines changed: 77 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
workflow_dispatch:
88
inputs:
99
version:
10-
description: Release version from VERSION (must match the file content).
10+
description: Existing numeric release tag X.Y.Z; manual dispatch only verifies an existing tag.
1111
required: true
1212
type: string
1313

@@ -38,25 +38,27 @@ jobs:
3838
with:
3939
fetch-depth: 0
4040

41-
- name: Set up validation runtime
42-
uses: ./.github/actions/setup-codex-runtime
43-
with:
44-
install-codex: "false"
45-
install-dart: "false"
46-
47-
- name: Validate release version
41+
- name: Resolve and verify existing release tag
4842
shell: bash
4943
env:
5044
RELEASE_INPUT_VERSION: ${{ inputs.version }}
5145
GITHUB_REF_NAME: ${{ github.ref_name }}
5246
GITHUB_EVENT_NAME: ${{ github.event_name }}
5347
run: |
5448
set -euo pipefail
55-
if [ "$GITHUB_EVENT_NAME" = "push" ]; then
56-
version="$GITHUB_REF_NAME"
57-
else
58-
version="$RELEASE_INPUT_VERSION"
59-
fi
49+
case "$GITHUB_EVENT_NAME" in
50+
push)
51+
version="$GITHUB_REF_NAME"
52+
;;
53+
workflow_dispatch)
54+
# manual dispatch only verifies an existing tag
55+
version="$RELEASE_INPUT_VERSION"
56+
;;
57+
*)
58+
echo "unsupported release event '$GITHUB_EVENT_NAME'" >&2
59+
exit 1
60+
;;
61+
esac
6062
if [ -z "$version" ]; then
6163
echo "release version is empty; tag push or workflow_dispatch input required" >&2
6264
exit 1
@@ -65,16 +67,72 @@ jobs:
6567
echo "release version '$version' is not numeric SemVer X.Y.Z" >&2
6668
exit 1
6769
fi
68-
file_version="$(tr -d '[:space:]' < VERSION)"
69-
if [ "$version" != "$file_version" ]; then
70-
echo "release version '$version' does not match VERSION '$file_version'" >&2
70+
71+
remote_tag_ref="refs/tags/${version}"
72+
remote_tag_rows="$(git ls-remote --refs origin "$remote_tag_ref")"
73+
remote_tag_count="$(printf '%s\n' "$remote_tag_rows" | awk -v ref="$remote_tag_ref" '$2 == ref { count += 1 } END { print count + 0 }')"
74+
if [ "$remote_tag_count" -ne 1 ]; then
75+
echo "release tag '$remote_tag_ref' must already exist exactly once on origin" >&2
7176
exit 1
7277
fi
73-
if ! grep -q "^## \\[$version\\]" CHANGELOG.md; then
74-
echo "CHANGELOG.md has no release entry for $version" >&2
78+
remote_tag_oid="$(printf '%s\n' "$remote_tag_rows" | awk -v ref="$remote_tag_ref" '$2 == ref { print $1 }')"
79+
80+
git fetch --no-tags origin "+refs/heads/main:refs/remotes/origin/main"
81+
git fetch --no-tags origin "+${remote_tag_ref}:${remote_tag_ref}"
82+
local_tag_oid="$(git rev-parse "$remote_tag_ref")"
83+
if [ "$local_tag_oid" != "$remote_tag_oid" ]; then
84+
echo "local tag object '$local_tag_oid' does not match origin '$remote_tag_oid'" >&2
85+
exit 1
86+
fi
87+
tag_commit="$(git rev-parse "${remote_tag_ref}^{commit}")"
88+
89+
if [ "$GITHUB_EVENT_NAME" = "push" ]; then
90+
if [ "$GITHUB_SHA" != "$remote_tag_oid" ] && [ "$GITHUB_SHA" != "$tag_commit" ]; then
91+
echo "push SHA '$GITHUB_SHA' matches neither tag object '$remote_tag_oid' nor peeled commit '$tag_commit'" >&2
92+
exit 1
93+
fi
94+
if ! git merge-base --is-ancestor "$GITHUB_SHA" origin/main; then
95+
echo "tag push SHA '$GITHUB_SHA' is not contained in origin/main" >&2
96+
exit 1
97+
fi
98+
else
99+
if ! git merge-base --is-ancestor "$tag_commit" origin/main; then
100+
echo "existing tag '$version' is not contained in origin/main" >&2
101+
exit 1
102+
fi
103+
git checkout --detach "$tag_commit"
104+
fi
105+
106+
if [ "$(git rev-parse HEAD)" != "$tag_commit" ]; then
107+
echo "checked out HEAD does not match peeled release tag commit '$tag_commit'" >&2
75108
exit 1
76109
fi
77110
echo "RELEASE_VERSION=$version" >> "$GITHUB_ENV"
111+
echo "RELEASE_COMMIT=$tag_commit" >> "$GITHUB_ENV"
112+
113+
- name: Set up validation runtime
114+
uses: ./.github/actions/setup-codex-runtime
115+
with:
116+
install-codex: "false"
117+
install-dart: "false"
118+
119+
- name: Validate release version
120+
shell: bash
121+
run: |
122+
set -euo pipefail
123+
file_version="$(tr -d '[:space:]' < VERSION)"
124+
if [ "$RELEASE_VERSION" != "$file_version" ]; then
125+
echo "release version '$RELEASE_VERSION' does not match VERSION '$file_version'" >&2
126+
exit 1
127+
fi
128+
if [ "$(git rev-parse HEAD)" != "$RELEASE_COMMIT" ]; then
129+
echo "release checkout drifted from verified tag commit '$RELEASE_COMMIT'" >&2
130+
exit 1
131+
fi
132+
if ! grep -q "^## \\[$RELEASE_VERSION\\]" CHANGELOG.md; then
133+
echo "CHANGELOG.md has no release entry for $RELEASE_VERSION" >&2
134+
exit 1
135+
fi
78136
79137
- name: Run release validation
80138
run: |
@@ -186,19 +244,6 @@ jobs:
186244
path: dist
187245
retention-days: 30
188246

189-
- name: Create release tag
190-
shell: bash
191-
run: |
192-
set -euo pipefail
193-
# On push:tags the tag already points at this commit, so we skip creation.
194-
# On workflow_dispatch we create and push the tag to match the validated VERSION.
195-
if git rev-parse -q --verify "refs/tags/${RELEASE_VERSION}" >/dev/null; then
196-
echo "Tag ${RELEASE_VERSION} already exists"
197-
else
198-
git tag "${RELEASE_VERSION}"
199-
git push origin "refs/tags/${RELEASE_VERSION}"
200-
fi
201-
202247
- name: Publish GitHub Release
203248
shell: bash
204249
env:
@@ -208,8 +253,7 @@ jobs:
208253
if gh release view "$RELEASE_VERSION" >/dev/null 2>&1; then
209254
gh release upload "$RELEASE_VERSION" dist/* --clobber
210255
else
211-
gh release create "$RELEASE_VERSION" \
212-
--verify-tag \
256+
gh release create "$RELEASE_VERSION" --verify-tag \
213257
--title "$RELEASE_VERSION" \
214258
--notes-file dist/release-notes.md \
215259
dist/*

.serena/memories/BROWSER-01-WORKFLOW.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!-- Memory Metadata
22
Last updated: 2026-07-10
33
Last verified: 2026-07-10
4-
Last commit: 8be83a228e75b152cd3b7612bf834906310219a4 chore(release): codex adapter 1.8.5
4+
Last commit: 693a00640832d3af8355066c0fd2fda4e84ad78e chore(release): codex adapter 1.8.6
55
Scope: browser-visible validation and debugging workflows
66
Area: BROWSER
77
-->
@@ -19,11 +19,14 @@ browser-visible validation and debugging workflows
1919
- `path:config/mcp-runtime-versions.env`
2020
- `path:config/rldyour-contract.json`
2121
- `path:scripts/validate_browser_provider_policy.py`
22+
- `path:scripts/install_system_codex.sh`
23+
- `path:scripts/doctor_system_codex.sh`
24+
- `path:tests/fixtures/codex_app_managed_browser_config.toml`
2225

2326
## Last verified
2427
- date: 2026-07-10
25-
- commit: `8be83a228e75b152cd3b7612bf834906310219a4`
26-
- checked by: Codex managed browser documentation contract refresh
28+
- commit: `693a00640832d3af8355066c0fd2fda4e84ad78e`
29+
- checked by: Codex app-managed browser fail-closed hardening
2730

2831
## Facts
2932
- Browser memories route UI and runtime validation through Webwright, Playwright CLI, and Chrome DevTools MCP when relevant.
@@ -34,15 +37,22 @@ browser-visible validation and debugging workflows
3437
by CloakBrowser and missing runtime health fails closed as `NOT_PROVEN`.
3538
- Stock Chromium, the Codex in-app browser, raw browser processes, direct
3639
provider-package launchers, and alternate browser engines are not fallbacks.
40+
- System install explicitly disables `browser@openai-bundled`; app-managed
41+
`node_repl` and `computer-use` MCP metadata is preserved only with
42+
`enabled = false`. Doctor rejects an active or reinjected surface and directs
43+
the operator to rerun the installer and restart Codex.
3744
- CloakBrowser `v0.4.10` changes wrapper behavior only (iframe humanization and JavaScript CLI entry-point fixes); the managed browser-binary pins do not change.
3845

3946
## Evidence
40-
- `commit:8be83a228e75b152cd3b7612bf834906310219a4`
47+
- `commit:693a00640832d3af8355066c0fd2fda4e84ad78e`
4148
- `path:README.md`
4249
- `path:plugins/rldyour-browser`
4350
- `path:plugins/rldyour-mcps/README.md`
4451
- `path:plugins/rldyour-mcps/.mcp.json`
4552
- `path:config/mcp-runtime-versions.env`
53+
- `path:scripts/install_system_codex.sh`
54+
- `path:scripts/doctor_system_codex.sh`
55+
- `path:tests/fixtures/codex_app_managed_browser_config.toml`
4656
- `https://github.com/CloakHQ/CloakBrowser/tree/v0.4.10`
4757
- `https://pypi.org/project/cloakbrowser/0.4.10/`
4858

.serena/memories/CI-01-ACTIONS.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!-- Memory Metadata
2-
Last updated: 2026-05-22
3-
Last verified: 2026-05-22
4-
Last commit: 698a800c48294a799de24f1f444044bb1bfbd6db chore(release): codex 1.6.1
2+
Last updated: 2026-07-10
3+
Last verified: 2026-07-10
4+
Last commit: 693a00640832d3af8355066c0fd2fda4e84ad78e chore(release): codex adapter 1.8.6
55
Scope: GitHub Actions and local CI policy
66
Area: CI
77
-->
@@ -14,19 +14,27 @@ GitHub Actions and local CI policy
1414
## Current source of truth
1515
- `path:.github/workflows`
1616
- `path:README.md`
17+
- `path:.github/workflows/release.yml`
18+
- `path:tests/unit/test_release_workflow_estate.py`
1719

1820
## Last verified
19-
- date: 2026-05-22
20-
- commit: `698a800c48294a799de24f1f444044bb1bfbd6db`
21-
- checked by: Codex ry-start memory taxonomy sync
21+
- date: 2026-07-10
22+
- commit: `693a00640832d3af8355066c0fd2fda4e84ad78e`
23+
- checked by: Codex release estate ancestry hardening
2224

2325
## Facts
2426
- CI memories record which checks prove repository integrity and which checks are intentionally lightweight.
27+
- Release tag-push jobs fetch `origin/main` and reject a release commit that is
28+
not its ancestor. Manual dispatch resolves and peels an exact existing remote
29+
numeric tag; no workflow path creates or pushes tags. GitHub Release creation
30+
remains centralized behind `gh release --verify-tag`.
2531

2632
## Evidence
27-
- `commit:698a800c48294a799de24f1f444044bb1bfbd6db`
33+
- `commit:693a00640832d3af8355066c0fd2fda4e84ad78e`
2834
- `path:.github/workflows`
2935
- `path:README.md`
36+
- `path:.github/workflows/release.yml`
37+
- `path:tests/unit/test_release_workflow_estate.py`
3038

3139
## Known pitfalls
3240
- Treat this memory as derived context. Current code, configuration, runtime output, and GitHub state override stale memory text.

.serena/memories/CODEX-01-ADAPTER-SURFACE.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!-- Memory Metadata
2-
Last updated: 2026-05-22
3-
Last verified: 2026-05-22
4-
Last commit: 698a800c48294a799de24f1f444044bb1bfbd6db chore(release): codex 1.6.1
2+
Last updated: 2026-07-10
3+
Last verified: 2026-07-10
4+
Last commit: 693a00640832d3af8355066c0fd2fda4e84ad78e chore(release): codex adapter 1.8.6
55
Scope: Codex adapter implementation surface
66
Area: CODEX
77
-->
@@ -14,19 +14,27 @@ Codex adapter implementation surface
1414
## Current source of truth
1515
- `path:config/rldyour-contract.json`
1616
- `path:.agents/plugins/marketplace.json`
17+
- `path:scripts/install_system_codex.sh`
18+
- `path:scripts/doctor_system_codex.sh`
1719

1820
## Last verified
19-
- date: 2026-05-22
20-
- commit: `698a800c48294a799de24f1f444044bb1bfbd6db`
21-
- checked by: Codex ry-start memory taxonomy sync
21+
- date: 2026-07-10
22+
- commit: `693a00640832d3af8355066c0fd2fda4e84ad78e`
23+
- checked by: Codex app-managed browser surface hardening
2224

2325
## Facts
2426
- Codex memories describe the Codex plugin marketplace, system install, hooks, MCP, apps, and managed agents.
27+
- Installer owns the explicit disabled state for `browser@openai-bundled` and
28+
any present app-managed `node_repl` / `computer-use` MCP tables. Doctor is the
29+
enforcement boundary for active or reinjected copies and requires reinstall
30+
plus process restart before browser work resumes.
2531

2632
## Evidence
27-
- `commit:698a800c48294a799de24f1f444044bb1bfbd6db`
33+
- `commit:693a00640832d3af8355066c0fd2fda4e84ad78e`
2834
- `path:config/rldyour-contract.json`
2935
- `path:.agents/plugins/marketplace.json`
36+
- `path:scripts/install_system_codex.sh`
37+
- `path:scripts/doctor_system_codex.sh`
3038

3139
## Known pitfalls
3240
- Treat this memory as derived context. Current code, configuration, runtime output, and GitHub state override stale memory text.

.serena/memories/DOCS-01-INSTRUCTIONS.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!-- Memory Metadata
2-
Last updated: 2026-05-22
3-
Last verified: 2026-05-22
4-
Last commit: 698a800c48294a799de24f1f444044bb1bfbd6db chore(release): codex 1.6.1
2+
Last updated: 2026-07-10
3+
Last verified: 2026-07-10
4+
Last commit: 693a00640832d3af8355066c0fd2fda4e84ad78e chore(release): codex adapter 1.8.6
55
Scope: instruction docs and durable operator documentation
66
Area: DOCS
77
-->
@@ -16,21 +16,31 @@ instruction docs and durable operator documentation
1616
- `path:.claude/CLAUDE.md`
1717
- `path:README.md`
1818
- `path:system/AGENTS.md`
19+
- `path:CONTRIBUTING.md`
20+
- `path:docs/release-process.md`
1921

2022
## Last verified
21-
- date: 2026-05-22
22-
- commit: `698a800c48294a799de24f1f444044bb1bfbd6db`
23-
- checked by: Codex ry-start memory taxonomy sync
23+
- date: 2026-07-10
24+
- commit: `693a00640832d3af8355066c0fd2fda4e84ad78e`
25+
- checked by: Codex browser trust-boundary instruction sync
2426

2527
## Facts
2628
- Docs memories record which instruction and operator docs must change after durable behavior changes.
29+
- `AGENTS.md`, `.claude/CLAUDE.md`, README, browser skill docs, and MCP docs
30+
consistently require the managed CloakBrowser wrappers and the explicit
31+
disabled state for app-managed browser, Node REPL, and computer-use surfaces.
32+
- Release operator docs consistently require stable-green branch CI before a
33+
manually created signed numeric tag and describe workflow dispatch as an
34+
existing-tag-only verification/retry path.
2735

2836
## Evidence
29-
- `commit:698a800c48294a799de24f1f444044bb1bfbd6db`
37+
- `commit:693a00640832d3af8355066c0fd2fda4e84ad78e`
3038
- `path:AGENTS.md`
3139
- `path:.claude/CLAUDE.md`
3240
- `path:README.md`
3341
- `path:system/AGENTS.md`
42+
- `path:CONTRIBUTING.md`
43+
- `path:docs/release-process.md`
3444

3545
## Known pitfalls
3646
- Treat this memory as derived context. Current code, configuration, runtime output, and GitHub state override stale memory text.

0 commit comments

Comments
 (0)