Skip to content

fix: add omp manifest field so package.json isn't silently skipped - #87

Merged
jsirish merged 2 commits into
mainfrom
claude/omp-manifest-fix
Sep 19, 2026
Merged

jsirish merged 2 commits into
mainfrom
claude/omp-manifest-fix

Conversation

@jsirish

@jsirish jsirish commented Sep 19, 2026

Copy link
Copy Markdown
Member

Summary

Fixes a real gap found while re-testing PR #86's shipped install path: a plain omp plugin link .omp-plugin followed by an ordinary omp session (no --plugin-dir override) never fired any throughline hook. Every "live verified" test in #85/#86 had gone through --plugin-dir, which bypasses OMP's enabled-plugins resolution entirely and was masking this.

Root cause (extensibility/plugins/loader.ts::collectPluginsAtRoot): a linked/installed plugin is silently excluded from getEnabledPlugins() - and therefore from every hooks/skills discovery surface - unless its package.json has an omp or pi field (if (!manifest) continue). omp plugin doctor's "No omp/pi manifest (not an omp plugin)" warning is that exact functional gate, not the cosmetic label the original PR's memory notes assumed.

Fix

Added a minimal omp: { name, description } field to .omp-plugin/package.json.

Verification

  • omp plugin doctor now shows the plugin healthy (no manifest warning).
  • Live-tested: a plain omp --print session (no CLI override), against a real model, correctly captured both a prompt and a bash tool call in the shared buffer.
  • local-ci --strict: all checks pass.

🤖 Generated with Claude Code

jsirish and others added 2 commits September 19, 2026 16:01
Discovered live-testing PR #86's shipped install path on a second pass:
plain `omp plugin link .omp-plugin` followed by an ordinary `omp` session
(no --plugin-dir override) never fired any throughline hook - the earlier
"live verified" testing in #85/#86 had all gone through --plugin-dir, which
bypasses the enabled-plugins resolution entirely and was masking this.

Root cause, confirmed by reading extensibility/plugins/loader.ts's
collectPluginsAtRoot(): a linked/installed plugin is silently excluded from
getEnabledPlugins() (and therefore from every hooks/skills discovery
surface) unless its package.json has an `omp` or `pi` field - a plain
`if (!manifest) continue`. `omp plugin doctor`'s "No omp/pi manifest (not
an omp plugin)" warning is that exact gate, not the cosmetic label it was
assumed to be.

Added a minimal `omp: { name, description }` field. Re-verified live: a
plain `omp --print` session (no CLI override) against a real model now
correctly captures the prompt and a bash tool call in the shared buffer.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…egression

Code review on this PR found that the existing CI/local-ci manifest checks
only assert `.name and .version` on .omp-plugin/package.json - they stayed
green through both #85 and #86 while the plugin silently had zero working
hooks/skills for exactly the reason this PR fixes. Extend both checks to
require `.omp` as well, so dropping that field again fails CI instead of
shipping silently broken.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsirish
jsirish merged commit bcbb902 into main Sep 19, 2026
5 checks passed
@jsirish
jsirish deleted the claude/omp-manifest-fix branch September 19, 2026 21:14
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