Skip to content

feat(plugins): integrate GitHub showcase and plugin metadata - #17

Merged
howdeploy merged 2 commits into
mainfrom
agent/integrate-plugin-indexing
Aug 18, 2026
Merged

feat(plugins): integrate GitHub showcase and plugin metadata#17
howdeploy merged 2 commits into
mainfrom
agent/integrate-plugin-indexing

Conversation

@howdeploy

@howdeploy howdeploy commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

Supersedes #16 with a clean two-commit integration on top of the updated main after #15.

Hardening added during integration

  • makes plugin package updates atomic with rollback
  • enforces platforms for direct install and update while keeping minHostVersion informational
  • removes the accidental 10-result showcase truncation
  • chunks GitHub GraphQL metadata requests to 8 repositories
  • pins archive redirects to GitHub download hosts
  • makes runtime manifest validation reject unknown fields
  • makes OAuth polling cancellable and storage atomic
  • supports both standard OAuth App tokens without refresh data and expiring GitHub App tokens with refresh
  • validates new management/OAuth IPC against the trusted main renderer
  • replaces hand-authored action SVGs with vendored Lucide assets

Verification

  • npm test — 359 passed
  • npm run typecheck — passed
  • npm run build — passed
  • GitHub Actions CI — passed (verify + Windows named-pipe host)
  • no visual/UI verification is claimed; it is excluded per maintainer instruction

4444cjtr and others added 2 commits August 18, 2026 12:15
… flow, metadata/ standard

Full plugin indexing module on top of upstream v1.2.2 (canvas-navigation
input-bridge included from upstream; no conflicts).

- GitHub showcase: search canvastty-plugin-* repos, read metadata/
  canvastty.plugin.json (legacy root fallback), strict manifest validation,
  platform filtering (platforms without PLATFORM_ID are dropped), minHostVersion
  display (green/neutral/orange, no install blocking).
- OAuth device flow for GitHub (public client_id placeholder
  DEFAULT_OAUTH_CLIENT_ID — replace with your own OAuth App).
- Pagination (6 installed / 10 showcase per page), pure logic in
  pluginPagination.ts, unit-tested.
- Description limits: 2000 in manifest, 400 shown (manifestDescription).
- Rate-limit friendly: metadata cache, GraphQL batch (8 repos/request),
  raw.githubusercontent fallback without token, icon batch IPC.
- SDK browser.open for plugins: PluginFrame dispatches canvastty:browser-open,
  App opens URL in the single canvas browser (no multi-window nodes).
- Tests: plugin-manager (25), plugin-pagination (10), host-version (4) —
  83/83 with upstream canvas-navigation suites.

(cherry picked from commit db8a32b)
@howdeploy
howdeploy merged commit 1b7d980 into main Aug 18, 2026
2 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.

2 participants