Skip to content

Fix bundled engine lookup for Xcode-built app bundles - #87

Merged
pablof7z-agent merged 1 commit into
mainfrom
claude/engine-lookup-fix
Jul 24, 2026
Merged

Fix bundled engine lookup for Xcode-built app bundles#87
pablof7z-agent merged 1 commit into
mainfrom
claude/engine-lookup-fix

Conversation

@pablof7z-agent

Copy link
Copy Markdown
Owner

Summary

  • EngineClient.bundled() searched for the packaged fips-wind-tunnel binary under a Resources/bin or bin subdirectory inside Bundle.module, matching how SwiftPM's .process resource rule lays it out for swift build/swift test.
  • Xcode's own resource-processing build phase flattens that same file straight into the bundle's Contents/Resources root when building the .app target, so both existing lookups returned nil on every real build — surfaced as "The bundled simulation engine is missing" for direct UI actions (e.g. the 1B cohorts preset) and for Claude/MCP-driven runs, since both execute through the same running app instance.
  • Added a subdirectory-less fallback lookup and confirmed against the actual built bundle that it resolves where the other two don't.

Test plan

  • Verified via a standalone Bundle(path:) check against the built .app that the old two lookups return nil and the new fallback resolves the binary
  • swift test in FIPSDPackage — 78/78 pass
  • Manually confirmed in the running app: the 1B cohorts preset and a Claude-driven "make a 5 node network" request both execute instead of reporting the engine missing

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

https://claude.ai/code/session_01BUKvEN7BPfWJobSZwQrabK

EngineClient.bundled() only looked under a "Resources/bin" or "bin"
subdirectory inside Bundle.module, which is where SwiftPM's `.process`
resource rule keeps it under `swift build`/`swift test`. Xcode's
resource-processing build phase instead flattens the same file
straight into the bundle's Resources root, so every real .app build
failed to find it — surfacing as "The bundled simulation engine is
missing" for both direct UI actions (e.g. the 1B cohorts preset) and
Claude/MCP-driven runs, since both execute through the same running
app instance. Add a subdirectory-less fallback lookup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BUKvEN7BPfWJobSZwQrabK
@pablof7z-agent
pablof7z-agent merged commit ddb43b3 into main Jul 24, 2026
8 checks passed
@pablof7z-agent
pablof7z-agent deleted the claude/engine-lookup-fix branch July 24, 2026 10:04
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.

2 participants