feat: consolidate plugin navigation

This commit is contained in:
inman
2026-08-31 16:30:17 +08:00
parent 38f85f6b5e
commit b3f4166f21
12 changed files with 227 additions and 69 deletions

View File

@@ -0,0 +1,82 @@
# 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: 38f85f6b5e4dc4e2c5e5b9f8f4506554cfd578f5
- 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.