Skip to content

feat(den-api): P2 share verbs — share-plugin builtin, create-skill share offer, duplicate-plugin 409 - #3422

Merged
benjaminshafii merged 1 commit into
devfrom
feat/p2-share-verbs
Aug 2, 2026
Merged

feat(den-api): P2 share verbs — share-plugin builtin, create-skill share offer, duplicate-plugin 409#3422
benjaminshafii merged 1 commit into
devfrom
feat/p2-share-verbs

Conversation

@benjaminshafii

Copy link
Copy Markdown
Member

What

Phase 2 of the Grant-Native Skill Sharing program (spec: prds/skill-sharing/grant-native-skill-sharing.md, P2 results recorded in-doc). Sharing becomes a chat verb; a share is one grant row.

  • New builtin share-plugin (skill:share-plugin): resolve the person (om_…) or team (tem_…) via getOrg — never invent ids — then postPluginsAccess with role: viewer by default (editor only on explicit ask; org-wide relayed as admin-only), verify via getPluginsAccess, report the recipient can use the skill immediately (P1 index).
  • create-skill now offers to share after creation, and on 409 duplicate_plugin steers to updating the existing skill instead of duplicating.
  • Duplicate guard: same creator + same trimmed name + active plugin → 409 duplicate_plugin containing the existing plugin id (PluginArchRouteFailure). Archived names reusable; different creators unaffected. Admin GitHub re-imports of an identical name now 409 — accepted, aligns with the program's dedup goal.
  • Steering updated (agent MCP instructions + extensions-preview steering + their tests). Grant-creation MCP-requirement sync verified wired (store.ts:1887,1895).

Tests (commands + results)

cd ee/apps/den-api && bun test test/mcp-agent-timeouts.test.ts test/plugin-system-member-create.test.ts \
  test/grant-native-capabilities.test.ts test/marketplace-capabilities.test.ts test/plugin-system-create-bundle.test.ts
# → 53 pass / 0 fail (316 assertions); pnpm exec tsc --noEmit clean
cd apps/server && bun test src/opencode-plugins/openwork-extensions-preview-connect-steering.test.ts   # 19 pass
pnpm --dir evals run spec specs/skill-grant-access.test.ts   # 3× pass against live multi_org stack
pnpm --dir evals run typecheck                                # clean

The wire spec now proves the whole story end-to-end on the real MCP surface: member creates a skill → uses it immediately → second member denied → creator says 'share with them' (one viewer grant) → second member discovers and executes it (marketplace: null) → recipient cannot re-share (403).

Proof format: spec acceptance suites per program-owner decision.

…ll share offer, duplicate-plugin 409 (skill-sharing P2)
@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openwork-app Ready Ready Preview Aug 2, 2026 6:26am
openwork-den Ready Ready Preview Aug 2, 2026 6:26am
openwork-den-worker-proxy Ready Ready Preview Aug 2, 2026 6:26am
openwork-diagnostics Ready Ready Preview Aug 2, 2026 6:26am
openwork-landing Ready Ready Preview, v0 Aug 2, 2026 6:26am

@diff-warden diff-warden Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warden security clearance: clear. No new security issues found in this diff (7b4ea066cc2d88003516353ee71b86bb5ad49332). Automated clearance satisfies the required-review gate only — a human still reviews and merges. Analysis run

@benjaminshafii
benjaminshafii merged commit ef2585a into dev Aug 2, 2026
24 checks 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.

1 participant