47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
---
|
|
id: task-23
|
|
title: Spec + docs update + full verification (option C)
|
|
status: done
|
|
wave: C
|
|
depends_on: [task-17, task-19, task-20, task-21, task-22]
|
|
plan: docs/plans/plugins/plan.md
|
|
---
|
|
|
|
# Spec + docs update + full verification (option C)
|
|
|
|
## Title
|
|
Reconcile the spec with the native-JS-plugin model actually built and run the full
|
|
gate across backend + web + e2e.
|
|
|
|
## Inputs
|
|
- `docs/specs/plugins/requirements/plugins.md` (draft) and `PLUGIN-API.md`.
|
|
|
|
## Acceptance
|
|
1. Spec edits:
|
|
- Replace the "Out of scope → UI extensions" line: native JS UI plugins are now
|
|
IN (bundle loaded into SPA, registry API). Reference `PLUGIN-API.md`.
|
|
- Add a "Frontend plugin runtime" section summarizing the loading model,
|
|
registry surface, `ui.bundle` manifest field, boot-payload `plugins` list, and
|
|
the security posture (plugin JS runs in-origin; only active operator-registered
|
|
plugins load; sandboxing is future work).
|
|
- Correct credential storage (api_key bcrypt; webhook_secret encrypted/recoverable).
|
|
- Keep marketplace / managed-runtime / agent-session tool wiring / rate limiting /
|
|
JS sandboxing OUT.
|
|
- `status: draft`; dated note if the spec has a changelog convention.
|
|
2. A short `docs/public/**` operator page if the repo documents settings pages
|
|
(Plugins settings + how to register a plugin). Use `/docs-maintainer` judgment.
|
|
3. Mark all option-C task files `done`; update plan statuses.
|
|
|
|
## Verification (full gate)
|
|
- `make -C apps/backend fmt` (FIRST)
|
|
- `make -C apps/backend typecheck test lint build`
|
|
- `cd apps/web && pnpm run typecheck && pnpm lint && pnpm test`
|
|
- `cd apps/web && pnpm e2e -g "plugin"`
|
|
|
|
## Output contract
|
|
Spec sections changed, docs added, and full verification results (paste failures).
|
|
Closes the plan.
|
|
|
|
## Dependencies
|
|
task-17, task-19, task-20, task-21, task-22.
|