Skip to main content
Glama
argument-parser-fork.md1.72 kB
# ArgumentParser Fork – Approachable Concurrency ## Repository & Branch - Path: `/Users/steipete/Projects/swift-argument-parser` - Branch: `approachable-concurrency` - Upstream: `apple/swift-argument-parser` (tracked via fork) ## Changes Implemented 1. Marked the core protocols as preconcurrency-safe so they can be used from a module compiled with `.defaultIsolation(MainActor.self)`: - `ParsableArguments` - `ParsableCommand` - `AsyncParsableCommand` 2. Dropped the `_SendableMetatype` constraint (and its `ExpressibleByArgument` adoption) so `ParsableArguments` types no longer need to satisfy `Sendable` metatype requirements before the compiler lets them conform under MainActor isolation. 3. Verified `swift test` on the fork to ensure there are no regressions (only existing `customDeprecated` warnings remain). ## Integration in Peekaboo - Updated all packages that depended on ArgumentParser to point to the local fork via path dependency: - `Apps/CLI/Package.swift` - `Examples/Package.swift` - `Core/AXorcist/Package.swift` - `Core/PeekabooExternalDependencies/Package.swift` - `Tachikoma/Examples/Agent-CLI/Package.swift` - Re-enabled `.defaultIsolation(MainActor.self)` for the CLI target so it now shares the same "approachable concurrency" configuration as the rest of the workspace. ## Outstanding Work - Sweep through every CLI command/utility and add the necessary `@MainActor` annotations or asynchronous hops so the project compiles cleanly under the restored isolation defaults. - Once the CLI builds, run `swift test` for each package (in tmux, per project rules) to confirm everything is green. - Consider upstreaming the preconcurrency tweaks once the approach stabilizes.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steipete/Peekaboo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server