Skip to content

Comments

fix(ClawdbotKit): move tool-display.json to correct SPM Resources path#398

Closed
fcatuhe wants to merge 1 commit intoopenclaw:mainfrom
fcatuhe:fix/clawdbotkit-resource-bundle-path
Closed

fix(ClawdbotKit): move tool-display.json to correct SPM Resources path#398
fcatuhe wants to merge 1 commit intoopenclaw:mainfrom
fcatuhe:fix/clawdbotkit-resource-bundle-path

Conversation

@fcatuhe
Copy link
Contributor

@fcatuhe fcatuhe commented Jan 7, 2026

Summary

  • Moves tool-display.json from package root (ClawdbotKit/Resources/) to target source directory (ClawdbotKit/Sources/ClawdbotKit/Resources/)
  • Fixes crash on app launch due to NSBundle.module assertion failure

Problem

SPM's .process("Resources") directive is relative to the target's source folder, so the file at the package root wasn't being bundled. When ToolDisplayRegistry.loadConfig() tried to access ClawdbotKitResources.bundle, the missing bundle caused a fatal assertion.

Test plan

  • Verified app launches without crashing
  • Verified no new crash reports in ~/Library/Logs/DiagnosticReports/

The tool-display.json file was at the package root level
(ClawdbotKit/Resources/) instead of inside the target's source
directory (ClawdbotKit/Sources/ClawdbotKit/Resources/).

SPM's .process("Resources") directive is relative to the target's
source folder, so the file wasn't being bundled. This caused
NSBundle.module to fail with an assertion when ToolDisplayRegistry
tried to load the config, crashing the app on launch.
@steipete
Copy link
Contributor

steipete commented Jan 7, 2026

Thanks François!

@steipete
Copy link
Contributor

steipete commented Jan 7, 2026

Landed manually on as 9be7e1b (includes changelog). Closing PR. Thanks @fcatuhe!

@steipete
Copy link
Contributor

steipete commented Jan 7, 2026

Landed manually on main as 9be7e1b (includes changelog). Closing PR. Thanks @fcatuhe!

@steipete steipete closed this Jan 7, 2026
dgarson added a commit to dgarson/clawdbot that referenced this pull request Feb 9, 2026
…w#398)

The finalizeJobRun function expects startedAtMs in its opts parameter,
but ops.ts was passing runAtMs which doesn't exist in the type. This
caused the plugin-sdk:dts build step to fail with TS2353.
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