Skip to content

chore(release): promote codexclaw 0.2.28 to main - #176

Merged
lidge-jun merged 4 commits into
mainfrom
dev
Sep 14, 2026
Merged

chore(release): promote codexclaw 0.2.28 to main#176
lidge-jun merged 4 commits into
mainfrom
dev

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Release promotion for codexclaw 0.2.28.

What is being promoted

Four reference-doc traps reported as #170-#173, fixed against the shipped source rather than the surrounding prose, plus the release preparation for them.

Commit Content
7036f9b8 the four skill-reference fixes (#170-#173)
b984aa5c merge of #174 into dev
93e1c0aa devlog/_plan/260914_skill_doc_triage_release/ delivery roadmap
ca326d9e version surfaces, CHANGELOG and regenerated inventory for 0.2.28

Release preparation

Every surface check-versions.mjs enumerates moves to 0.2.28, plus the two declared workspaces it does not read (gui, cli) and the thirteen workspace self-versions in package-lock.json. The plugin manifest and inventory carry +codex.20260914090142.

The inventory was regenerated with --tests 3150, taken from the tests 3150 line of hosted CI run 34790437740 job 103813520900 — not a local run, and not pass, which is environment-dependent because CI skips the repo-map live smoke. The published badge already read 3,150, so it does not move and the READMEs are untouched.

Verification

dev head ca326d9e is green on all three lanes, recorded by SHA: CI success, WSL success, Packed install lifecycle success.

A release-prep check ran at that head and passed 5/5: check-versions 0.2.28 OK, inventory --check --tests 3150 OK, the release-notes extractor returns a 2,778-character 0.2.28 section naming all four issues, no surface still declares 0.2.27, and the three hosted lanes are green.

Local product suite, typecheck, build and install: NOT RUN. The proof for this line is hosted CI at the exact head SHA plus the release gate, which fails closed.

Closes #170
Closes #171
Closes #172
Closes #173

…, in-lane worker routing, and the incomplete spawn model list

Four reference-doc traps reported as #170-#173, all fixed against the shipped
source rather than from the prose.

- durable-goalplan.md: add the missing `cxc loop add-criterion` line with its
  real flags, show `init --criterion` repetition, state that criterion ids are
  generated as c-1, c-2, ... (max existing c-N + 1) and that meet-criterion --id
  takes those, and give criteria[] its missing `surface` field plus per-field
  provenance so nobody plans on an --expected-evidence flag that does not exist.
  (#170, #171)
- dispatch-surfaces.md / loop SKILL.md: state the composition rule inside
  DISPATCH-SURFACE-01 instead of only in the closing section, and route the
  in-lane worker case in DISPATCH-ROUTE-01. A lane is thread work; a worker
  inside a lane is subagent work. (#172)
- delegation.md: DELEGATE-MODEL-LIST-01 — the advertised spawn_agent override
  list is a hint, not an allowlist. Pass a user-named model through; only a real
  spawn rejection proves unavailability. (#173)
- structure/20_pabcd_dispatch_doctrine.md: mirror the worker/lane row into the
  translation table.

Docs only; no runtime or CLI behavior changed. Local suite/typecheck/build NOT RUN.
…170-173

docs(skills): fix four reference-doc traps in the loop and dispatch surfaces (#170-#173)
LOOP-DOCS-FIRST-01: the delivery roadmap is written to diff level before the
first merge or version edit, not discovered phase by phase.

- 000_plan.md — objective, constraints, measured starting state, the four
  work-phase map, and the delete_branch_on_merge hazard that already cost this
  repository its dev branch once.
- 010 — landing #174 on dev, and why the dev push is a separate CI generation:
  the release gate reads conclusions by SHA, and WSL never runs on pull requests.
- 020 — the exact thirteen version surfaces collectSurfaces() enumerates, which
  two may carry +codex build metadata, the two declared workspaces (gui, cli)
  that it does not read, and the hosted tests=3150 measurement the inventory
  regeneration must use.
- 030 — the promotion PR's enforce-target exemption, ruleset protect-main with
  its six required contexts and no bypass actors, the immovable v* tag ruleset,
  and the dev restore step the promotion merge will require.

Docs only. Local suite/typecheck/build NOT RUN.
Four reference-doc traps reported as #170-#173 and landed on dev as #174:
the missing add-criterion CLI surface, generated c-N criterion ids, the in-lane
worker routing that DISPATCH-SURFACE-01 buried, and DELEGATE-MODEL-LIST-01 for
the incomplete spawn_agent override list.

Version surfaces: every surface check-versions.mjs enumerates moves 0.2.27 ->
0.2.28, plus the two declared workspaces it does not read (gui, cli) and the
thirteen workspace self-versions in package-lock.json. The plugin manifest and
inventory carry the regenerated +codex.20260914090142 build metadata, which never
affects precedence.

Inventory regenerated with the measured total from hosted CI, not a local run:
run 34790437740 job 103813520900 reported "tests 3150" at head 7036f9b. The
published badge already read 3,150, so it does not move and the READMEs are
untouched — only the inventory's version fields changed.

Local suite/typecheck/build/install NOT RUN. Proof for this head is the hosted
dev CI generation; the release gate reads conclusions by SHA.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-14T00:23:12.328104Z ca326d9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the chore label Sep 14, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ca326d9e0e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +61 to +62
`scenario` is the `--criterion` text and `surface` comes from `--surface` (default
`logic`); `id` is auto-assigned and `status` is derived. `expectedEvidence` has no

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clarify that init does not apply --surface

When a criterion is registered through the newly documented cxc loop init --criterion ... form, this provenance claim is false: runGoalplanCli constructs each entry as { scenario } and discards the parsed args.surface, so even --surface web or --surface tui is silently stored as logic. Because goalplanNeedsQa uses this field to require visual QA, following the sentence can cause an init-time visual criterion to bypass that gate; either pass the surface through during init or explicitly document that init criteria are always logic.

Useful? React with 👍 / 👎.

- `cxc loop add-criterion --session <id> --criterion <text> [--surface logic|web|tui]` —
registers a criterion whose scenario is the `--criterion` text. There is no `--id`:
ids are assigned as `c-1`, `c-2`, ... (max existing `c-N` + 1, in registration
order). A duplicate scenario text is rejected.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document duplicate add-criterion calls as idempotent

For the documented add-criterion command, repeating a scenario is not rejected: runAddOp derives its idempotency key solely from the scenario, so applySteeringBatch returns duplicate first and the CLI exits 0 with “nothing to do.” This also means retrying the same scenario with a corrected --surface reports success while retaining the original classification, contrary to this statement; describe the idempotent behavior or include the surface in the operation identity.

Useful? React with 👍 / 👎.

@lidge-jun
lidge-jun merged commit e8e46f9 into main Sep 14, 2026
28 checks passed
@lidge-jun
lidge-jun deleted the dev branch September 14, 2026 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment