Skip to content

[codex] fix release recovery and input method race - #38

Merged
ygsgdbd merged 2 commits into
mainfrom
codex/fix-release-recovery-and-switch-race
Aug 29, 2026
Merged

ygsgdbd merged 2 commits into
mainfrom
codex/fix-release-recovery-and-switch-race

Conversation

@ygsgdbd

@ygsgdbd ygsgdbd commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

This change fixes the release workflow validation failure and two release/runtime recovery issues found while reviewing the changes since v0.9.0.

GitHub Actions rejected the release workflow because concurrency.queue is not a supported workflow key. That prevented every version tag from starting a release. The workflow now uses the supported repository-wide concurrency group with cancel-in-progress: false, and PR checks install and run actionlint so invalid workflow schemas cannot be hidden by string-based script tests.

Programmatic input-method switching could receive the successful system selection notification before its asynchronous verification returned a transient failure. The later failure then replaced the confirmed success and surfaced a false diagnostic to the user. Pending switch attempts now track whether the latest observed selection still matches the target. A matching notification prevents the transient failure from overwriting success, while a subsequent non-target notification revokes that confirmation. Statistics continue to count only completed .switched outcomes.

Failed GitHub Release publishes can leave a draft created by softprops/action-gh-release. The release guard now distinguishes that recoverable draft from an already published Release. Drafts produce safe inspection, deletion, and failed-job rerun instructions; published Releases remain fail-closed and require a new SemVer tag. The recovery commands use a quoted FAILED_RUN_ID variable so the documented shell snippets are executable rather than treating an angle-bracket placeholder as input redirection.

The remaining limitation of GitHub Actions concurrency for three or more rapidly pushed release tags is recorded for future work and is intentionally not addressed here.

Validation

  • rtk just check
    • SwiftFormat: 0 of 44 files require formatting
    • XCTest: 133 tests, 0 failures
    • release script tests passed
  • rtk actionlint .github/workflows/*.yml
  • rtk bash -n script/ensure_release_absent.sh script/test_release_scripts.sh
  • rtk git diff --check

@ygsgdbd
ygsgdbd marked this pull request as ready for review August 21, 2026 08:00
@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.

@ygsgdbd
ygsgdbd enabled auto-merge August 29, 2026 10:13
@ygsgdbd
ygsgdbd merged commit c03a389 into main Aug 29, 2026
3 checks passed
@ygsgdbd
ygsgdbd deleted the codex/fix-release-recovery-and-switch-race branch August 29, 2026 10:26
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