Skip to content

feat: enable per-extension selective install#15

Merged
rblaine95 merged 1 commit into
masterfrom
feat/selective-plugin-install
Jul 20, 2026
Merged

feat: enable per-extension selective install#15
rblaine95 merged 1 commit into
masterfrom
feat/selective-plugin-install

Conversation

@rblaine95

@rblaine95 rblaine95 commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Problem

Installing the suite always pulled every extension, with no way to pick a subset:

  • Git-package install (omp plugin install github:rblaine95/omp-plugins) reads the root package.json omp manifest and always loads every base omp.extensions entry. The [feature] bracket syntax only selects among omp.features, so there was no selection knob.
  • Marketplace install (name@marketplace) can't activate these at all: omp loads omp.extensions/omp.features only for git/npm/link installs, never from a marketplace cache. The marketplace.json sources were also malformed (source:"github" has no path field), so both entries resolved to the whole repo and loaded nothing functional.

Fix

Convert the root omp.extensions array to an omp.features map, one feature per extension, each default: true. This keeps the bare whole-suite install unchanged while adding selection:

Command Loads
omp plugin install github:rblaine95/omp-plugins both (unchanged)
omp plugin install 'github:rblaine95/omp-plugins[rules-guard]' rules-guard only
omp plugin install 'github:rblaine95/omp-plugins[usage-status]' usage-status only
omp plugin install 'github:rblaine95/omp-plugins[rules-guard,usage-status]' subset via comma list
omp plugin install 'github:rblaine95/omp-plugins[]' none
omp plugin install 'github:rblaine95/omp-plugins[*]' both, explicit

One omp-plugins package still installs (both extension dirs ship with it); the bracket only selects which features load. Selection is changeable later without reinstalling via omp plugin features @rblaine95/omp-plugins.

Deletes .omp-plugin/marketplace.json (non-functional for extension modules) and updates README.md / AGENTS.md to document the feature-based install contract and the marketplace limitation.

Verification

  • parsePluginSpec + resolvePluginManifestEntries (omp's own code, v17.0.5) run against the new manifest produce exactly the table above.
  • bun typecheck clean; bun test 87/87 pass; package.json valid + sorted.

Summary by CodeRabbit

  • New Features

    • Added selectable installation features for the built-in extensions.
    • Extensions are enabled by default but can be selected individually during installation.
  • Documentation

    • Updated installation instructions with feature-selection examples and syntax guidance.
    • Clarified extension configuration and contributor setup requirements.
    • Documented current limitations for marketplace installations.

Convert the root `omp.extensions` array to an `omp.features` map so
users can install a subset of the suite instead of everything.

The git-package install path (`omp plugin install github:...`) reads
the root manifest and always loaded every base `omp.extensions` entry;
the `[feature]` bracket syntax only selects among `omp.features`, so
there was no way to pick a single plugin. Each extension is now a
feature with `default: true`, which keeps the bare whole-suite install
behavior unchanged while adding selection:

- `[rules-guard]` / `[usage-status]` load one extension
- comma lists like `[rules-guard,usage-status]` load a subset
- `[]` loads none, `[*]` loads all

Delete `.omp-plugin/marketplace.json`. Marketplace installs cannot
activate extension modules (omp loads `omp.extensions`/`omp.features`
only for git/npm/link installs), and its sources were malformed
(`source:"github"` has no `path` field), so both entries resolved to
the whole repo and loaded nothing functional.

Update `README.md` and `AGENTS.md` to document the feature-based
install contract and the marketplace limitation.

Glory to the Omnissiah
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4eaa44e0-a28c-44cf-bc82-dad6b57d9941

📥 Commits

Reviewing files that changed from the base of the PR and between 0aaf691 and 6d50002.

📒 Files selected for processing (4)
  • .omp-plugin/marketplace.json
  • AGENTS.md
  • README.md
  • package.json

📝 Walkthrough

Walkthrough

The root plugin manifest now uses selectable default-enabled features for rules-guard and usage-status. README and AGENTS.md describe feature-based installation and registration, while the marketplace configuration is removed.

Changes

Feature-based plugin registration

Layer / File(s) Summary
Root feature manifest
package.json, .omp-plugin/marketplace.json
The root omp configuration replaces omp.extensions with default-enabled rules-guard and usage-status feature entries; the marketplace configuration is removed.
Installation and contribution guidance
README.md, AGENTS.md
Documentation describes selectable feature installation, bracketed feature specifications, marketplace limitations, and registering new extensions through omp.features.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • rblaine95/omp-plugins#13: Updates related extension registration and marketplace metadata using the earlier omp.extensions model.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rblaine95
rblaine95 merged commit 00e7e61 into master Jul 20, 2026
1 of 2 checks passed
@rblaine95
rblaine95 deleted the feat/selective-plugin-install branch July 20, 2026 15:11
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