release: prepare v1.8.1#96
Conversation
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
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📝 WalkthroughWalkthroughThis 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. ChangesApache 2.0 Relicensing
Codex CLI 0.143.x Wire Compatibility Refresh
Release Script Notes Simplification
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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 winDeprecate
ApprovalPolicy.onFailureand keep a decode alias
ApprovalPolicy.onFailurestill 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 valueNaming left inconsistent after the route rename.
The enum case, wire types, and route string were renamed to
threadItemsList/thread/items/list(Line 18), butmakeThreadTurnsItemsListRequest(Lines 233-241) anddecodeThreadTurnsItemsListResponse(Lines 758-768) still use the old "ThreadTurnsItemsList" name even though they now reference.threadItemsListandCodexWireThreadItemsListResponse/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
⛔ Files ignored due to path filters (1)
Sources/SwiftASB/Generated/CodexWire/Latest/CodexLifecycleV2Batch+JSONValue.swiftis excluded by!**/generated/**
📒 Files selected for processing (33)
COMMERCIAL-USE.mdCONTRIBUTING.mdLICENSELICENSE-HISTORICAL-APACHE-2.0NOTICEREADME.mdROADMAP.mdSources/SwiftASB/Protocol/CodexAppServerProtocol.swiftSources/SwiftASB/Public/CodexAppServer+CodexExtensions.swiftSources/SwiftASB/Public/CodexAppServer+WireMapping.swiftSources/SwiftASB/Public/CodexAppServer.swiftSources/SwiftASB/SwiftASB.docc/CodexWorkspace.mdSources/SwiftASB/Transport/CodexCLIExecutableResolver.swiftTests/SwiftASBTests/Protocol/CodexAppServerProtocolTests.swiftTests/SwiftASBTests/Public/CodexAppServerLiveApprovalProbeTests.swiftTests/SwiftASBTests/Public/CodexAppServerLiveElicitationProbeTests.swiftTests/SwiftASBTests/Public/CodexAppServerLiveIntegrationTests.swiftTests/SwiftASBTests/Public/CodexAppServerTestSupport.swiftTests/SwiftASBTests/Public/CodexAppServerTests.swiftTests/SwiftASBTests/Public/CodexAppServerThreadHydrationTests.swiftTests/SwiftASBTests/Transport/CodexCLIExecutableResolverTests.swiftTools/AgentSB/pyproject.tomlTools/AgentSB/tests/test_cli.pyTools/AgentSB/tests/test_tools.pydocs/maintainers/interactive-lifecycle-release-boundary.mddocs/maintainers/quicktype-codegen-notes.mddocs/maintainers/v1-public-api-audit.mddocs/releases/v1.7.2.mddocs/releases/v1.8.1.mdscripts/generate-wire-types.shscripts/repo-maintenance/lib/common.shscripts/repo-maintenance/release.shscripts/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
| - `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` |
There was a problem hiding this comment.
🔒 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.
| - `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}." |
There was a problem hiding this comment.
🎯 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.
| 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}." |
There was a problem hiding this comment.
🎯 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.
| 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.
Release
release/codex-cli-0-143-apachemainupdates behind pull request review and CIv1.8.1will be created after CI and the review-comment gate pass, so failed or still-discussed release candidates do not get taggedReview Loop
Before merge and tagging,
scripts/repo-maintenance/release.shwatches 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
Bug Fixes
Documentation