Skip to content

feat(workspace): support per-plugin client install modes - #566

Merged
christso merged 4 commits into
mainfrom
feat/workspace-per8-plugin-client-modes
Oct 14, 2026
Merged

christso merged 4 commits into
mainfrom
feat/workspace-per8-plugin-client-modes

Conversation

@christso

@christso christso commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Plugin declarations now accept clients: [pi:native, codex:file] and equivalent objects, so one plugin can use native installation for Pi and copied files for Codex. Bare names inherit workspace modes; a plugin-wide install override retains precedence. Profiles, narrowed native updates, configuration edits and generated schemas use the same contract.

Preserves canonical aliases, project/user restrictions, first-entry precedence, source identity, owned-artifact boundaries and rejection of native skill/exclude filters. Reinstall keeps explicit modes for retained destinations without promoting ignored duplicates.

Closes #565. Paperclip coordination: PER-8. Separate from merged #561.

Validation

With declared Bun 1.4.0 and isolated HOME/project fixtures:

  • bun test tests/unit: 1,912 pass, 3 platform skips, 0 fail.
  • bun test tests/e2e: 257 pass, 4 existing skips, 0 fail.
  • bun run typecheck, bun run lint, bun run schema:check, bun run build: pass.
  • Rebuilt CLI with real Pi 1.1.0 and a local compatible package: update --scope project --offline installed Pi and copied the Codex skill; pi list confirmed inventory. After a source edit, plugin update ./package --scope project --json ran Pi update and refreshed the copy. Object selectors produced the same results. Native filters failed before settings/file mutation. plugin uninstall ./package --scope project --json ran Pi remove and removed owned files, preserving home/project theme settings. Fresh user-scope install/list/uninstall passed with unrelated project settings intact.
  • Destination-restricted regression updates selected Copilot native while unselected Claude and managed Codex content remain unchanged. Raw duplicate reinstall regression failed before the review fix and passes after it.
  • Independent plan review, three simplification lenses, seven code-review lenses and independent finding validation completed. The user-scope parsing issue and confirmed duplicate-precedence P2 were fixed; bounded follow-up cleared both the P2 and destination-selection coverage gap. No open eligible findings. Browser testing is inapplicable to this CLI-only feature; cross-provider review was unavailable.

Fixture scripts, execution records and review receipts are retained on the Paperclip task. Final-head board delivery approval is required before admin squash merge; no release or publication is included.


Compound Engineering

Merge reconciliation (2026-10-15)

Merged current main after #563 and #564. The only conflict was adjacent test additions in tests/unit/core/sync-install-mode.test.ts; retained the destination-restriction regression and the upstream Pi example assertions.

With Bun 1.4.0: focused sync suite 16 passed; build, typecheck, lint, schema check and diff whitespace checks passed. Built ./dist/index.js update --scope project --offline against a temporary HOME/project with a local skill plugin and clients: [codex:file]: exited 0 and created .codex/skills/probe/SKILL.md; fixture removed. Full local unit suite: 1,911 passed, 3 skipped, 1 failed in unchanged native/types process-creation test; isolated rerun of that file passed (3 passed, 1 skipped). Baseline confirmation on current origin/main (5f6cc2c): same process-creation test failed in the full suite (1,898 passed, 3 skipped), confirming the local failure predates this reconciliation. Final-head CI is the merge gate.

christso and others added 4 commits October 13, 2026 20:38
Normalize plugin shorthand and objects, resolve per-client modes, and retain
first-entry precedence through runtime selection and configuration edits.
Update profiles, public schemas, documentation and behavioral coverage.

Refs #565
Bumps the routine-updates group with 3 updates: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [js-yaml](https://github.com/nodeca/js-yaml).


Updates `@modelcontextprotocol/sdk` from 1.31.0 to 1.32.1
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](modelcontextprotocol/typescript-sdk@1.31.0...1.32.1)

Updates `@types/node` from 22.20.4 to 22.20.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `js-yaml` from 5.4.2 to 5.4.3
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@5.4.2...5.4.3)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.32.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: routine-updates
- dependency-name: "@types/node"
  dependency-version: 22.20.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: routine-updates
- dependency-name: js-yaml
  dependency-version: 5.4.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: routine-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Christopher Tso <3115311+christso@users.noreply.github.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Deploying allagents with  Cloudflare Pages  Cloudflare Pages

Latest commit: bb9d4d6
Status: ✅  Deploy successful!
Preview URL: https://7fd2850b.allagents.pages.dev
Branch Preview URL: https://feat-workspace-per8-plugin-c.allagents.pages.dev

View logs

@christso
christso merged commit 862a5e1 into main Oct 14, 2026
8 checks passed
@christso
christso deleted the feat/workspace-per8-plugin-client-modes branch October 14, 2026 23:22
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.

feat(workspace): support per-plugin client install modes

1 participant