Skip to content

fix(concurrency): send command metatypes safely - #22

Merged
steipete merged 1 commit into
mainfrom
codex/swift64-sendable-bindings
Aug 13, 2026
Merged

fix(concurrency): send command metatypes safely#22
steipete merged 1 commit into
mainfrom
codex/swift64-sendable-bindings

Conversation

@steipete

Copy link
Copy Markdown
Owner

Summary

  • require SendableMetatype for ParsableCommand on Swift 6.2 and newer instead of making every mutable command instance Sendable
  • retain the original Sendable requirement for Swift 6.0 and 6.1 compilers
  • add a split-file compiler fixture with deliberately non-Sendable command state

Why

Commander only transfers command type metadata across isolation domains. Command instances are created, bound, and executed on the main actor. Requiring instance-level Sendable made a split-file ParsableCommand adoption synthesize a retroactive conformance, which Swift 6.4 diagnoses and plans to reject in a future language mode.

This models the actual ownership boundary without @unchecked Sendable or consumer-side mechanical conformance moves.

Proof

  • swift test -Xswiftc -warnings-as-errors — 65 tests pass with Apple Swift 6.4
  • Peekaboo CLI suite with this dependency change and warnings as errors — 894 core CLI tests plus 88 runtime tests pass
  • clean Peekaboo CLI warnings-as-errors build using the exact compiler-gated patch
  • 37 distinct Peekaboo retroactive Sendable diagnostics before; zero after
  • P0–P2 autoreview clean

Swift 6.2 is the first compiler with SendableMetatype; it was not installed on the local proof host. Commander CI continues to exercise the Swift 6.2+ branch with its configured Swift 6.3.3 toolchain.

@clawsweeper

clawsweeper Bot commented Aug 13, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@steipete
steipete force-pushed the codex/swift64-sendable-bindings branch from 869de59 to 321412d Compare August 13, 2026 09:37
@clawsweeper

clawsweeper Bot commented Aug 13, 2026

Copy link
Copy Markdown

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(concurrency): send command metatypes safely This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

@steipete
steipete merged commit 904b507 into main Aug 13, 2026
7 checks passed
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