Files
makelore/.project-docs/30-worklog/tasks/20260827-plugin-ml05-plugin-center-6c1e9a42.md
T

59 lines
4.3 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: ML-05 Project Plugin Center
## Identity
- Task ID: 20260827-plugin-ml05-plugin-center-6c1e9a42
- Mode: Feature
- Branch: codex/20260827-plugin-ml05-plugin-center-6c1e9a42-plugin-ml05-plugin-center
- Worktree: D:\Datas\OthersProjects\makelore-plugin-ml05-plugin-center-6c1e9a42
- Base commit: b6d9e6156fdc98aa792045692cc25fdce993a531
- Owner: codex
- Status: Ready for Integration
## Scope
- Add the project-scoped `/project-plugins` route and sidebar entry without changing Main authority or ML-01–04 source.
- Add the strict Renderer coding-plugin parser/client, shared store, list/detail Plugin Center, and code-owned Data Service settings surface.
- Cover selection/configuration separation, effective states, capability/permission/agent assignment, billing copy, retained disable semantics, and typed destructive actions.
## Intent And Constraints
- Main's `CodingPluginProject` projection remains the authority for effective state, billing, backend availability, and project identity.
- Enabling changes plugin selection only; Data Service configuration is always an explicit subsequent action through the existing typed routes.
- No Renderer credential, policy-join, or plugin-host authority was added. No dependency or new animation was introduced.
## Outcome
- Implemented bounded parsing and typed Host API clients for plugin projection, selection, and Data Service inspection/configuration/removal.
- Implemented a coalescing store that prevents duplicate pending work, retains same-project data on degraded refresh, and never shows an old projection after switching projects.
- Implemented accessible available/enabled/disabled, identity/auth/configure/ready/degraded states; capability, permission, partner assignment, backend, version, billing, usage/limit, and shared-wallet language; and retained-data disable confirmation.
- Implemented typed confirmations for destructive actions using the real collection or project target. Degraded Data Service keeps the last usage structure visible but disables destructive controls.
- Added the project route and project-scoped navigation while preserving module and initialization gates.
### UI skill influence
| Before | After |
| --- | --- |
| No Plugin Center surface | Existing surface/ring/button primitives reused with concentric radii and no new page-load animation |
| Plugin state could rely on color/icon alone | Every state has visible text, semantic status/alert messaging, keyboard focus, and disabled semantics |
| Dynamic usage values had no presentation contract | Counts and byte usage use `tabular-nums`; headings/descriptions use `text-balance`/`text-pretty`; controls retain at least 40px hit areas |
## Verification
- Red phase: focused unit tests initially failed on missing owned modules; later capability/degraded and cross-project Data Service isolation assertions failed until the corresponding behavior was implemented.
- `pnpm exec vitest run tests/unit/coding-plugins-client.test.ts tests/unit/coding-plugins-store.test.ts tests/unit/project-plugins-page.test.tsx tests/unit/data-service-plugin-settings.test.tsx tests/unit/main-layout-module-gate.test.tsx tests/unit/main-layout-sidebar-peek.test.tsx tests/unit/sidebar-session-buckets.test.ts tests/unit/coding-plugin-composition.test.ts tests/unit/coding-plugins-routes.test.ts tests/unit/data-service-client.test.ts tests/unit/data-service-routes.test.ts tests/unit/data-service-server-registration.test.ts tests/unit/auth-store.test.ts --maxWorkers=1` — 12 files, 72 tests passed.
- `pnpm exec playwright test tests/e2e/project-plugins.spec.ts --config=playwright.config.ts` — 1 test passed.
- `pnpm typecheck` — passed.
- `pnpm lint:check` — 0 errors; it continues to report the 5 pre-existing `Home`/`Makelore` warnings.
- `pnpm build:vite` — passed; existing Vite dynamic-import and chunk-size warnings remain.
- `git diff --check` — passed.
- Delivery boundary: exact base `b6d9e6156fdc98aa792045692cc25fdce993a531`; one task commit directly on that base (exact immutable commit ID is recorded in the handoff because a commit cannot contain its own hash); worktree clean after commit.
## Follow-ups
- Full cross-platform packaged release validation remains coordinator-level work; the target Electron E2E ran successfully on Windows in this worktree.
## Promotion Candidates
- None recorded.