Skip to content

release: prepare v1.8.1#96

Merged
gaelic-ghost merged 2 commits into
mainfrom
release/codex-cli-0-143-apache
Jul 9, 2026
Merged

release: prepare v1.8.1#96
gaelic-ghost merged 2 commits into
mainfrom
release/codex-cli-0-143-apache

Conversation

@gaelic-ghost

@gaelic-ghost gaelic-ghost commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Release

  • prepares v1.8.1 from branch release/codex-cli-0-143-apache
  • keeps protected main updates behind pull request review and CI
  • release tag v1.8.1 will be created after CI and the review-comment gate pass, so failed or still-discussed release candidates do not get tagged

Review Loop

Before merge and tagging, scripts/repo-maintenance/release.sh watches CI and stops on review comments unless the maintainer has already addressed or resolved them and reruns with --review-comments-addressed.

Summary by CodeRabbit

  • New Features

    • Added support for a new plugin source type and updated item-list routing behind the scenes.
    • Expanded compatibility support to newer Codex CLI versions.
  • Bug Fixes

    • Improved request handling for thread start/resume flows and approval behavior.
    • Updated release creation to reliably generate release notes.
  • Documentation

    • Refreshed README, contributor guidance, release notes, and maintainer docs.
    • Updated licensing information to Apache 2.0.

Why:
Update SwiftASB for Codex CLI 0.143.0, restore Apache 2.0 licensing, and carry the synced Swift package repo-maintenance guidance into the patch release.

Verification:
- swift build
- swift test
- uv run pytest from Tools/AgentSB
- bash scripts/repo-maintenance/validate-all.sh
- git diff --check
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR reverts SwiftASB's license to Apache License 2.0 across LICENSE, NOTICE, README, CONTRIBUTING, ROADMAP, and pyproject.toml, removing COMMERCIAL-USE.md. It also refreshes Codex CLI wire compatibility to 0.143.x: renaming the thread items list route, adjusting approval-policy encoding, adding an npm plugin source kind, new thread-start fields, and simplifying release-script notes generation.

Changes

Apache 2.0 Relicensing

Layer / File(s) Summary
Core license files and package metadata
LICENSE, NOTICE, Tools/AgentSB/pyproject.toml
Replaces PolyForm Noncommercial License text with Apache License 2.0 text and updates package license metadata.
Documentation and license references
CONTRIBUTING.md, README.md, ROADMAP.md, docs/releases/v1.7.2.md, docs/releases/v1.8.1.md, COMMERCIAL-USE.md, LICENSE-HISTORICAL-APACHE-2.0
Updates license sections to reference Apache 2.0, removes commercial-use documentation, and adds v1.8.1 release notes describing the relicensing.

Codex CLI 0.143.x Wire Compatibility Refresh

Layer / File(s) Summary
Thread items list route rename
Sources/SwiftASB/Protocol/CodexAppServerProtocol.swift, Sources/SwiftASB/Public/CodexAppServer.swift
Renames threadTurnsItemsList/"thread/turns/items/list" to threadItemsList/"thread/items/list" in protocol methods and operation identifiers.
Thread start fields, approval policy, plugin source kind
Sources/SwiftASB/Public/CodexAppServer+WireMapping.swift, Sources/SwiftASB/Public/CodexAppServer+CodexExtensions.swift
Adds nil allowProviderModelFallback/historyMode fields, re-encodes .onFailure approval policy as .onRequest, and adds an npm plugin source kind.
CLI version window bump
Sources/SwiftASB/Transport/CodexCLIExecutableResolver.swift, Sources/SwiftASB/SwiftASB.docc/CodexWorkspace.md
Advances supported CLI release window constants from 0.141/0.142 to 0.142/0.143.
Test updates
Tests/SwiftASBTests/**
Updates test expectations for renamed routes, approval policy, new thread-start fields, and version window across protocol, public API, and resolver test suites.
Docs and codegen script updates
ROADMAP.md, docs/maintainers/*, scripts/generate-wire-types.sh, Tools/AgentSB/tests/*
Updates roadmap, maintainer notes, schema version defaults, and codegen batch parameters to v0.143.0.

Release Script Notes Simplification

Layer / File(s) Summary
Release notes generation and heartbeat guidance
scripts/repo-maintenance/lib/common.sh, scripts/repo-maintenance/release.sh, scripts/repo-maintenance/release/40-github-release.sh
Removes the github_release_notes_file helper and makes gh release create always use --generate-notes; updates CI deferral heartbeat guidance.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • gaelic-ghost/SwiftASB#76: Both PRs modify the Codex app-server thread items list RPC surface, in opposite directions.
  • gaelic-ghost/SwiftASB#89: Both PRs modify GitHub release notes handling in repo-maintenance scripts, adding vs. removing the notes-file helper.
  • gaelic-ghost/SwiftASB#92: Both PRs update commercial-use/license documentation and related license files.

Suggested labels: enhancement

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: preparing the v1.8.1 release.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/codex-cli-0-143-apache

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gaelic-ghost gaelic-ghost merged commit 1e3e682 into main Jul 9, 2026
1 of 2 checks passed
@gaelic-ghost gaelic-ghost deleted the release/codex-cli-0-143-apache branch July 9, 2026 01:55

@coderabbitai coderabbitai 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.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Sources/SwiftASB/Public/CodexAppServer+WireMapping.swift (1)

363-389: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Deprecate ApprovalPolicy.onFailure and keep a decode alias

  • ApprovalPolicy.onFailure still serializes as .onRequest, but the public case has no deprecation warning.
  • The generated wire enum no longer accepts "onFailure", so any 0.142.x payload that still emits it will now fail to decode.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Sources/SwiftASB/Public/CodexAppServer`+WireMapping.swift around lines 363 -
389, `ApprovalPolicy.onFailure` still maps to the same wire value as
`onRequest`, but it is not marked deprecated and the decoder no longer
recognizes the legacy `"onFailure"` payload. Update the `ApprovalPolicy` type
and its `CodexAppServer+WireMapping` conversions so `onFailure` is explicitly
deprecated, keep `wireValue` serializing it as `.onRequest`, and add a decode
alias in `init(wireEnum:)` (and any related wire enum mapping) to accept
`"onFailure"` as `onRequest` for backward compatibility.

Source: Path instructions

🧹 Nitpick comments (1)
Sources/SwiftASB/Protocol/CodexAppServerProtocol.swift (1)

233-241: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Naming left inconsistent after the route rename.

The enum case, wire types, and route string were renamed to threadItemsList/thread/items/list (Line 18), but makeThreadTurnsItemsListRequest (Lines 233-241) and decodeThreadTurnsItemsListResponse (Lines 758-768) still use the old "ThreadTurnsItemsList" name even though they now reference .threadItemsList and CodexWireThreadItemsListResponse/CodexWireThreadItemsListParams. This mismatch could confuse future readers about which wire route these functions actually hit.

♻️ Suggested rename (also requires updating call sites in CodexAppServer.swift and tests)
-    func makeThreadTurnsItemsListRequest(
+    func makeThreadItemsListRequest(
         id: CodexRPCRequestID,
         params: CodexWireThreadItemsListParams
     ) throws -> Data {
         try encodeRequest(
             JSONRPCRequestEnvelope(id: id, method: .threadItemsList, params: params),
             method: .threadItemsList
         )
     }
-    func decodeThreadTurnsItemsListResponse(
+    func decodeThreadItemsListResponse(
         _ responsePayload: Data,
         expectedID: CodexRPCRequestID
     ) throws -> CodexWireThreadItemsListResponse {

As per path instructions, "Prefer explicit, consistent, and unambiguous names in code" for **/*.swift.

Also applies to: 758-768

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Sources/SwiftASB/Protocol/CodexAppServerProtocol.swift` around lines 233 -
241, Rename the remaining “ThreadTurnsItemsList” API helpers to match the
updated wire route naming so the code stays consistent with `.threadItemsList`
and `CodexWireThreadItemsList*`; specifically, update
`makeThreadTurnsItemsListRequest` and `decodeThreadTurnsItemsListResponse` to
use the new `threadItemsList` naming, and then adjust any call sites in
`CodexAppServer.swift` and tests to the renamed symbols.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/releases/v1.8.1.md`:
- Line 45: The release note currently publishes a machine-specific absolute
verification command that includes a local home directory path, which should not
be shared. Update the entry in the release note to use a repo-relative command
or redact the path entirely, keeping the command generic and portable. Refer to
the verification command in the release note content and remove the hardcoded
absolute path so it is safe for other contributors.

In `@scripts/repo-maintenance/release.sh`:
- Line 403: The dry-run message in the release flow is missing the same release
note generation flag used by the actual GitHub release command. Update the log
output in the release script’s dry-run path so the message printed alongside gh
release create also includes --generate-notes, keeping it aligned with the real
command built in the release creation logic.

In `@scripts/repo-maintenance/release/40-github-release.sh`:
- Line 20: The dry-run message in the GitHub release script is out of sync with
the actual release command because it omits the always-enabled --generate-notes
flag. Update the log line in the release flow that mentions gh release create so
it mirrors the real command built in the script, including --generate-notes and
any prerelease option, using the existing RELEASE_TAG/prerelease_flag logic as
the reference point.

---

Outside diff comments:
In `@Sources/SwiftASB/Public/CodexAppServer`+WireMapping.swift:
- Around line 363-389: `ApprovalPolicy.onFailure` still maps to the same wire
value as `onRequest`, but it is not marked deprecated and the decoder no longer
recognizes the legacy `"onFailure"` payload. Update the `ApprovalPolicy` type
and its `CodexAppServer+WireMapping` conversions so `onFailure` is explicitly
deprecated, keep `wireValue` serializing it as `.onRequest`, and add a decode
alias in `init(wireEnum:)` (and any related wire enum mapping) to accept
`"onFailure"` as `onRequest` for backward compatibility.

---

Nitpick comments:
In `@Sources/SwiftASB/Protocol/CodexAppServerProtocol.swift`:
- Around line 233-241: Rename the remaining “ThreadTurnsItemsList” API helpers
to match the updated wire route naming so the code stays consistent with
`.threadItemsList` and `CodexWireThreadItemsList*`; specifically, update
`makeThreadTurnsItemsListRequest` and `decodeThreadTurnsItemsListResponse` to
use the new `threadItemsList` naming, and then adjust any call sites in
`CodexAppServer.swift` and tests to the renamed symbols.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b79317a8-692e-43f9-b900-b82f4343ad33

📥 Commits

Reviewing files that changed from the base of the PR and between e9bae54 and a4cefbb.

⛔ Files ignored due to path filters (1)
  • Sources/SwiftASB/Generated/CodexWire/Latest/CodexLifecycleV2Batch+JSONValue.swift is excluded by !**/generated/**
📒 Files selected for processing (33)
  • COMMERCIAL-USE.md
  • CONTRIBUTING.md
  • LICENSE
  • LICENSE-HISTORICAL-APACHE-2.0
  • NOTICE
  • README.md
  • ROADMAP.md
  • Sources/SwiftASB/Protocol/CodexAppServerProtocol.swift
  • Sources/SwiftASB/Public/CodexAppServer+CodexExtensions.swift
  • Sources/SwiftASB/Public/CodexAppServer+WireMapping.swift
  • Sources/SwiftASB/Public/CodexAppServer.swift
  • Sources/SwiftASB/SwiftASB.docc/CodexWorkspace.md
  • Sources/SwiftASB/Transport/CodexCLIExecutableResolver.swift
  • Tests/SwiftASBTests/Protocol/CodexAppServerProtocolTests.swift
  • Tests/SwiftASBTests/Public/CodexAppServerLiveApprovalProbeTests.swift
  • Tests/SwiftASBTests/Public/CodexAppServerLiveElicitationProbeTests.swift
  • Tests/SwiftASBTests/Public/CodexAppServerLiveIntegrationTests.swift
  • Tests/SwiftASBTests/Public/CodexAppServerTestSupport.swift
  • Tests/SwiftASBTests/Public/CodexAppServerTests.swift
  • Tests/SwiftASBTests/Public/CodexAppServerThreadHydrationTests.swift
  • Tests/SwiftASBTests/Transport/CodexCLIExecutableResolverTests.swift
  • Tools/AgentSB/pyproject.toml
  • Tools/AgentSB/tests/test_cli.py
  • Tools/AgentSB/tests/test_tools.py
  • docs/maintainers/interactive-lifecycle-release-boundary.md
  • docs/maintainers/quicktype-codegen-notes.md
  • docs/maintainers/v1-public-api-audit.md
  • docs/releases/v1.7.2.md
  • docs/releases/v1.8.1.md
  • scripts/generate-wire-types.sh
  • scripts/repo-maintenance/lib/common.sh
  • scripts/repo-maintenance/release.sh
  • scripts/repo-maintenance/release/40-github-release.sh
💤 Files with no reviewable changes (3)
  • COMMERCIAL-USE.md
  • LICENSE-HISTORICAL-APACHE-2.0
  • scripts/repo-maintenance/lib/common.sh

Comment thread docs/releases/v1.8.1.md
- `codex --version`
- `scripts/dump-codex-schemas.sh --dump-if-newer --json`
- `SCHEMA_VERSION=v0.143.0 scripts/generate-wire-types.sh`
- `uv run /Users/galew/.codex/plugins/cache/socket/apple-dev-skills/8.6.0/skills/sync-swift-package-guidance/scripts/run_workflow.py --repo-root /Users/galew/.codex/worktrees/9358/SwiftASB`

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Remove the machine-specific absolute path from the verification command.

The /Users/galew/... path leaks a local username/home directory and will not work for other contributors. Use a repo-relative command or redact the path from the published release note.

🛠️ Proposed fix
-`uv run /Users/galew/.codex/plugins/cache/socket/apple-dev-skills/8.6.0/skills/sync-swift-package-guidance/scripts/run_workflow.py --repo-root /Users/galew/.codex/worktrees/9358/SwiftASB`
+`uv run <repo-relative-path>/scripts/run_workflow.py --repo-root <repo-root>`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- `uv run /Users/galew/.codex/plugins/cache/socket/apple-dev-skills/8.6.0/skills/sync-swift-package-guidance/scripts/run_workflow.py --repo-root /Users/galew/.codex/worktrees/9358/SwiftASB`
`uv run <repo-relative-path>/scripts/run_workflow.py --repo-root <repo-root>`
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/releases/v1.8.1.md` at line 45, The release note currently publishes a
machine-specific absolute verification command that includes a local home
directory path, which should not be shared. Update the entry in the release note
to use a repo-relative command or redact the path entirely, keeping the command
generic and portable. Refer to the verification command in the release note
content and remove the hardcoded absolute path so it is safe for other
contributors.

else
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
fi
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Include --generate-notes in the dry-run command.

Line 403 no longer reflects the actual command on Line 415, so dry-run output understates the release behavior.

Proposed fix
-    log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."
+    log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/repo-maintenance/release.sh` at line 403, The dry-run message in the
release flow is missing the same release note generation flag used by the actual
GitHub release command. Update the log output in the release script’s dry-run
path so the message printed alongside gh release create also includes
--generate-notes, keeping it aligned with the real command built in the release
creation logic.

else
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
fi
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the dry-run output aligned with the real release command.

Line 20 omits --generate-notes, but Line 32 always passes it.

Proposed fix
-  log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."
+  log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag${prerelease_flag:+ $prerelease_flag}."
log "Would create a GitHub release for $RELEASE_TAG with gh release create --verify-tag --generate-notes${prerelease_flag:+ $prerelease_flag}."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/repo-maintenance/release/40-github-release.sh` at line 20, The
dry-run message in the GitHub release script is out of sync with the actual
release command because it omits the always-enabled --generate-notes flag.
Update the log line in the release flow that mentions gh release create so it
mirrors the real command built in the script, including --generate-notes and any
prerelease option, using the existing RELEASE_TAG/prerelease_flag logic as the
reference point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant