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

84 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- Remove all plugin entries from the programming sidebar and make Project Configuration’s “插件服务” resource the single user-facing plugin surface.
- Combine Marketplace discovery, account/device plugin management, and current-project enablement/configuration as URL-backed “发现插件”, “我的插件”, and “项目启用” tabs.
- Preserve account acquisition, device installation, project enablement, Agent skill assignment, runtime authorization, and billing as independent lifecycle states.
- Keep `/plugin-marketplace`, `/my-plugins`, and `/project-plugins` as compatibility redirects into the appropriate Project Configuration tab.
- 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 discovery/account/device data global even though its user-facing surface is nested under the active project’s configuration; 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
- Removed the remaining global Plugin Center from the programming sidebar. Project
Configuration now exposes one “插件服务” resource beside models, Skills, and
knowledge files.
- Added one wider Plugin Services sheet with URL-backed “发现插件”, “我的插件”, and
“项目启用” tabs. The resource card defaults to current-project enablement, while
compatibility and in-product links can deep-link directly to discovery or the
account/device library.
- 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: `/plugin-marketplace`,
`/my-plugins`, and `/project-plugins` redirect to their corresponding Plugin
Services tab. My Plugins discovery and project actions now target those tabs.
- Reused semantic embedded `section` variants for all three tabs and removed the
routed standalone Plugin Center container.
- 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: 3 files / 19 tests passed.
- `pnpm test`: 213 test files / 1,730 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 Plugin Services discovery/account-device
management, sidebar removal, and current-project 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 exposes no standalone plugin sidebar destination;
Project Configuration’s single Plugin Services sheet owns discovery,
account/device management, and current-project enablement tabs beside models,
Skills, and knowledge.
- Evidence: this task's source diff, 19 focused unit tests, the 1,730-test full unit
suite, three focused Electron E2E flows, typecheck, lint, and production build.
- Future impact: new navigation, documentation, and E2E work should target
`/project-config?resource=plugins&pluginTab=discover|mine|project`; all standalone
plugin 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.