Files
makelore/.project-docs/30-worklog/tasks/20260831-consolidate-plugin-navigation-3d9a6c71.md
T

4.9 KiB

Task: Consolidate plugin navigation into project configuration

Identity

  • Task ID: 20260831-consolidate-plugin-navigation-3d9a6c71
  • Mode: Feature
  • Branch: codex/20260831-consolidate-plugin-navigation-3d9a6c71-consolidate-plugin-navigation
  • Worktree: /Users/inmanx/Documents/makelore-consolidate-plugin-navigation-3d9a6c71
  • Base commit: 38f85f6b5e
  • Owner: codex
  • Status: Completed

Scope

  • Replace the separate global “插件中心” and “我的插件” navigation entries with one plugin hub that exposes “发现插件” and “我的插件” as tabs.
  • Remove the sidebar “项目插件” entry and embed project plugin enablement/configuration in the existing Project Configuration resource area beside models, skills, and knowledge.
  • Preserve account acquisition, device installation, project enablement, Agent skill assignment, runtime authorization, and billing as independent lifecycle states.
  • Keep /my-plugins and /project-plugins as compatibility redirects to the consolidated destinations.
  • Update focused unit tests, Electron E2E coverage, and README product-state documentation.

Intent And Constraints

  • Reduce navigation duplication without changing Main-owned plugin contracts or .makelore/project.json authority.
  • Reuse the existing light visual system, Radix tabs/sheets, stores, and Host API clients; add no dependency or alternate backend path.
  • Keep plugin discovery/account/device management global, while project enablement and Agent assignment remain project-scoped.
  • Do not silently acquire, download, enable, assign, authorize, or bill as a side effect of another action.
  • Preserve unavailable/removed plugin IDs and explicit status messaging rather than inventing metadata or hiding retained configuration.

Outcome

  • Consolidated the two global plugin destinations into one /plugin-marketplace hub. “发现插件” and “我的插件” are URL-backed tabs, and the sidebar now exposes only the single “插件中心” entry.
  • Removed the project plugin sidebar entry and added “项目插件” beside models, Skills, and knowledge files in Project Configuration. The resource card reports enabled/available counts and opens the existing project plugin projection in a wider configuration sheet.
  • Reused the existing Marketplace, Library, device installation, project plugin, and Agent Skill stores. Enabling a project plugin refreshes the Skill projection, but does not acquire, download, configure a backend, or assign a Skill.
  • Preserved compatibility for saved/deep links: /my-plugins redirects to the “我的插件” tab and /project-plugins redirects to the Project Configuration plugin sheet. My Plugins project actions now target the consolidated routes.
  • Kept the standalone view variants available for focused rendering tests while adding semantic embedded section variants for the tab and configuration sheet.
  • Updated README product-state copy and focused unit/Electron E2E coverage.

Verification

  • Exact pnpm@10.33.4 was used for repository commands.
  • pnpm run typecheck: passed.
  • Focused Vitest: 2 files / 17 tests passed.
  • pnpm test: 212 files / 1,728 tests passed; 3 existing conditional tests skipped.
  • pnpm run lint:check: passed with zero errors and five pre-existing warnings (Home/index.tsx hook dependency and four Makelore/index.tsx Fast Refresh warnings).
  • pnpm run build:vite: passed for Renderer, Electron Main, Preload, and utility worker; existing dynamic-import and large-chunk warnings remain non-fatal.
  • Focused Electron E2E: 3/3 passed across unified plugin discovery/account-device management and Project Configuration plugin enablement.
  • git diff --check: passed.

Follow-ups

  • Canonical .project-docs navigation wording should be promoted only by a later Integration Gate; no plugin lifecycle, trust, billing, or backend contract changed.

Promotion Candidates

  • Target canonical documents: .project-docs/30-worklog/current-state.md and .project-docs/20-architecture/module-map.md.
  • Proposal: record that Renderer now exposes a single global Plugin Center with discovery/account-device tabs, while project enablement/configuration is embedded in Project Configuration beside models, Skills, and knowledge.
  • Evidence: this task's source diff, 17 focused unit tests, the 1,728-test full unit suite, three focused Electron E2E flows, typecheck, lint, and production build.
  • Future impact: new navigation, documentation, and E2E work should target /plugin-marketplace and /project-config?resource=plugins; the legacy routes are compatibility redirects only.
  • Semantic conflicts: none identified. The existing independent lifecycle and Main-owned trust boundaries remain unchanged.
  • Human confirmation: not required for the factual promotion; the user explicitly approved this consolidation, but Integration Gate ownership is still required.