Skip to content

Admission engine and pack checker are actor-free - #1324

Merged
malpern merged 1 commit into
masterfrom
chore/admission-isolation
Oct 20, 2026
Merged

malpern merged 1 commit into
masterfrom
chore/admission-isolation

Conversation

@malpern

@malpern malpern commented Oct 20, 2026

Copy link
Copy Markdown
Owner

AdmissionEngine and PackDependencyChecker only read value types and the immutable PackRegistry, so their @MainActor bought nothing and forced nonisolated carve-outs for the save gate and the CLI, plus a main-actor annotation on RuleCollectionCatalog.driverlessUnavailableReason (and two tests). All removed; every caller asks directly. Doc note added to §4.4h.

KEYPATH_TEST_ENFORCE_CLEAN_SUMMARY=1 Scripts/run-tests-safe.sh: 5,776 passed, 0 app warnings/errors, 0 build warnings.

🤖 Generated with Claude Code

Both only read value types and the immutable pack registry, so the
@mainactor on AdmissionEngine and PackDependencyChecker bought nothing and
forced nonisolated carve-outs for the save gate and the CLI, plus a
main-actor annotation on RuleCollectionCatalog.driverlessUnavailableReason.
All removed; every caller asks directly.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 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-10-20T12:41:42.026287Z 8979c6f 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.

@claude

claude Bot commented Oct 20, 2026

Copy link
Copy Markdown

Review of PR 1324: no blocking findings.

The change drops @MainActor from AdmissionEngine, PackDependencyChecker and driverlessUnavailableReason, along with the now-redundant nonisolated markers and test annotations. It is consistent and low-risk, and the docs note matches it.

Two things to confirm. I only had the diff, so I haven't verified either:

  • Registry isolation. The PackDependencyChecker comment says it reads only an immutable registry. CI should confirm that registry is not main-actor-isolated or backed by mutable shared state. Strict-concurrency builds will catch this.
  • BackendCapabilityProfile.shared and testOverride. driverlessUnavailableReason now reads the shared profile from any actor, and the two tests that set testOverride no longer run on the main actor. If testOverride is a plain static var, concurrent access could race, for example with parallel tests. If it is already nonisolated(unsafe) or lock-guarded, this is fine.

No test-coverage gaps stand out, since this is an isolation-only change with no behavior change.

@malpern
malpern merged commit 14cd6d4 into master Oct 20, 2026
7 of 8 checks passed
@malpern
malpern deleted the chore/admission-isolation branch October 20, 2026 12:49
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