Skip to content

feat(core): M5.2 — marketplace install (gh/npm) + ed25519 + revoked.json#29

Merged
oratis merged 1 commit into
mainfrom
feat/m5.2-marketplace
May 28, 2026
Merged

feat(core): M5.2 — marketplace install (gh/npm) + ed25519 + revoked.json#29
oratis merged 1 commit into
mainfrom
feat/m5.2-marketplace

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

installFromGithub/installFromNpm/installFromSpec + uninstallPlugin + marketplace ed25519 verifier + revoked.json + addMarketplace. 15 new tests (sig tamper + revocation + index/revoked fetch + config roundtrip + addMarketplace). 448→463 passing.

  · packages/core/src/plugins/install.ts (NEW)
    - installFromGithub('gh:owner/repo[@ref]') — git clone --depth 1 →
      installLocal → cleanup staging. Optional @ref for version pin.
    - installFromNpm('<pkg>@npm') — `npm pack` → extract tarball →
      installLocal. Doesn't write to global npm registry.
    - installFromSpec(spec) — polymorphic dispatch (gh: / @npm / local path).
    - uninstallPlugin(name) — removes ~/.deepcode/plugins/<name>/ +
      trust manifest entry. Idempotent.

  · packages/core/src/plugins/marketplace.ts (NEW, ~190 lines)
    - verifyEntrySignature(entry) — ed25519 verify of
      `${name}|${version}|${sourceHash}` against publisherPubKey (DER SPKI).
    - isRevoked(entry, list) — exact match on name+version+sourceHash.
    - fetchIndex(url) / fetchRevoked(baseUrl) — HTTP GET + JSON parse;
      404 on revoked.json silently → empty list.
    - resolveEntry({ marketplaceUrl, name, version? }) — picks highest
      matching version, verifies sig, refuses revoked.
    - loadMarketplaceConfig / saveMarketplaceConfig / addMarketplace
      operate on ~/.deepcode/marketplaces.json.

Tests: +15 marketplace + 0 install (install is integration-only — see
BEHAVIOR_PARITY note). core 401 → 416; cli 47 unchanged. Total 448 → 463.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit 05c4b8b into main May 28, 2026
@oratis oratis deleted the feat/m5.2-marketplace branch May 28, 2026 06:04
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