Skip to content

fix: declare typebox as a host-provided peer dependency - #33

Merged
brianhong-dev merged 1 commit into
brianhong-dev:mainfrom
reeeeeee-dev:fix/typebox-peer-dependency
Oct 6, 2026
Merged

brianhong-dev merged 1 commit into
brianhong-dev:mainfrom
reeeeeee-dev:fix/typebox-peer-dependency

Conversation

@reeeeeee-dev

Copy link
Copy Markdown
Contributor

What changed

  • Move typebox from dependencies to peerDependencies with a "*" range, and keep the 1.3.34 pin in devDependencies for type checking, tests, and builds. bun.lock changes only in the workspace manifest section; the resolved typebox@1.3.34 entry is unchanged.

  • OmO/senpi provides typebox to extensions itself (the extension loader maps typebox, typebox/compile, typebox/value, and @sinclair/typebox to its bundled copy) and checks extension manifests against its host-provided package list. With typebox in dependencies, every OmO 5.1.19 startup prints the following, and the TUI lists it under "Extension issues":

    Warning: Extension package ".../node_modules/omo-jev-plugin/package.json": Host-provided extension packages must be declared in peerDependencies with a "*" range, not dependencies: typebox. Installed copies can bypass the extension loader and create duplicate runtime modules.
    
  • No runtime change: the build already externalizes packages (--packages=external), so dist/index.js keeps its bare typebox import for the host to resolve.

Verification

  • Bun 1.4.2: bun install --frozen-lockfile, bun run check, bun test (108 passed), bun run build, npm pack --dry-run (18 files).
  • Packed package.json: no host-provided packages remain in dependencies; peerDependencies is { "typebox": "*" }.
  • dist/index.js keeps a single external typebox import; a Node.js 24 ESM import of ./index.js returns the default function export.
  • OmO 5.1.19: the same manifest change applied to an installed 0.0.10 removed the startup warning and the "Extension issues" entry; the plugin still loaded and recorded the session start.

Decision boundary

Packaging metadata only. No change to Jev inputs, actions, configuration modes, data sent to TypeSafe, or error handling.

@brianhong-dev
brianhong-dev merged commit a325cda into brianhong-dev:main Oct 6, 2026
1 check 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.

2 participants