Commit graph

34 commits

Author SHA1 Message Date
PerishCode
cba8bf151d chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
pftom
c9cc3b88c0 feat(web): standardize plugin terminology and enhance UI components
- Updated terminology from "Community" to "Official" across various components to reflect first-party plugin status.
- Enhanced the ChatComposer, HomeHero, and PluginsHomeSection components to improve user experience and clarity in plugin management.
- Improved CSS styles for better visual consistency and layout across plugin-related interfaces.
- Added tests to ensure proper functionality and visibility of official plugins in the UI.

This update reinforces the distinction between official and user-installed plugins, enhancing the overall user experience in plugin interactions.
2026-05-13 12:19:29 +08:00
pftom
1bdf765cf2 feat(daemon): enrich API responses with surface specs and add new flags
- Implemented `--schema` flag for `od ui show` to return only the JSON Schema of the surface.
- Enhanced the response of `GET /api/runs/:runId/genui/:surfaceId` to include the surface spec from the AppliedPluginSnapshot.
- Introduced new flags for daemon and library commands to improve command handling and parsing.
- Added tests for the new functionality, ensuring proper behavior of the enriched responses and flag handling.

This change supports headless interactions by allowing code agents to inspect surface contracts before responding.
2026-05-11 20:27:05 +08:00
Cursor Agent
6001f274c9
docs(plugins): record II-series landing in living plan + CHANGELOG
Plan II2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the II-series shipped this turn:

  II1. Plugin event ring buffer + SSE tail

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:56:49 +00:00
Cursor Agent
11f8a01b90
docs(daemon): record GG-series landing in living plan + CHANGELOG
Plan GG2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the GG-series shipped this turn:

  GG1. `od daemon db status` SQLite inventory

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:40:14 +00:00
Cursor Agent
b9fb14e68b
docs(plugins): record FF-series landing in living plan + CHANGELOG
Plan FF2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the FF-series shipped this turn:

  FF1. `od plugin verify <id>` CI meta-command

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:33:08 +00:00
Cursor Agent
675bfa2a85
docs(plugins): record EE-series landing in living plan + CHANGELOG
Plan EE2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the EE-series shipped this turn:

  EE1. `od plugin simulate <id>` pipeline dry-run

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:26:47 +00:00
Cursor Agent
2da68ba0a6
docs(plugins): record DD-series landing in living plan + CHANGELOG
Plan DD3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the DD-series shipped this turn:

  DD1. `od plugin stats` inventory health report
  DD2. `od plugin canon --check <expected-file>` byte-equality fixtures

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:18:21 +00:00
Cursor Agent
adcffab253
docs(plugins): record BB-series landing in living plan + CHANGELOG
Plan BB3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the BB-series shipped this turn:

  BB1. `od plugin snapshots show <id>`
  BB2. `od plugin snapshots diff <a> <b>` + diffSnapshots() helper

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:04:23 +00:00
Cursor Agent
81412fcf6a
docs(plugins): record AA-series landing in living plan + CHANGELOG
Plan AA3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the AA-series shipped this turn:

  AA1. `od plugin diff <a> <b>` author tooling
  AA2. `od atoms info <id>` + atom catalog drift fix

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:54:00 +00:00
Cursor Agent
9f4e8df498
docs(plugins): record Z-series landing in living plan + CHANGELOG
Plan Z3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Z-series shipped this turn:

  Z1. patch-edit atomic file writes (Phase 7 safety patch)
  Z2. `od plugin upgrade <id>` re-install from recorded source

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:44:02 +00:00
Cursor Agent
000ea5a734
docs(plugins): record Y-series landing in living plan + CHANGELOG
Plan Y2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Y-series shipped this turn:

  Y1. `od plugin search <query>` + filters on `od plugin list`

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:34:26 +00:00
Cursor Agent
2d8f556b3b
docs(plugins): record X-series landing in living plan + CHANGELOG
Plan X2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the X-series shipped this turn:

  X1. `od plugin pack <folder>` distribution archive

The Phase 4 author dev-loop is now closed end-to-end:

  od plugin scaffold --id <id>          # bootstrap a folder
  od plugin validate <folder>           # lint before install
  od plugin pack <folder>               # build a .tgz archive
  od plugin install --source <path>     # install (local OR https)
  od plugin export <projectId>          # build a publish-ready folder
  od plugin publish ...                 # generate catalog PR link

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:28:30 +00:00
Cursor Agent
fbddf11f8b
docs(plugins): record W-series landing in living plan + CHANGELOG
Plan W2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the W-series shipped this turn:

  W1. `od plugin validate <folder>` author-side lint

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:22:50 +00:00
Cursor Agent
e026a54fd9
docs(daemon): record V-series landing in living plan + CHANGELOG
Plan V2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the V-series shipped this turn:

  V1. OD_BUNDLED_ATOM_PROMPTS default flipped to ON

Living plan now reads:
  Phase 4 \u2192 'full incl. OD_BUNDLED_ATOM_PROMPTS default ON'

Remaining backlog: postgres adapter wiring inside the DaemonDb
resolver — the only stubbed item left.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:16:29 +00:00
Cursor Agent
0ddd29aeb6
docs(daemon): record U-series landing in living plan + CHANGELOG
Plan U2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the U-series shipped this turn:

  U1. S3ProjectStorage live impl via AWS SigV4

Living plan now reads:
  Phase 5 \u2192 'full incl. live S3 impl; postgres adapter still stubbed'

Remaining backlog:
  - Promote OD_BUNDLED_ATOM_PROMPTS=1 to default (audit-blocked)
  - Postgres adapter wiring inside DaemonDb resolver

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:11:10 +00:00
Cursor Agent
798ffaec48
docs(plugins): record T-series landing in living plan + CHANGELOG
Plan T3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the T-series shipped this turn:

  T1. runAndPersistHandoff() + auto-handoff from diff-review bridge
  T2. figma-migration pipeline e2e smoke test

Phase 8 promotion ladder now closes end-to-end without an agent turn:
GenUI Accept \u2192 review/decision.json + handoff/manifest.json with
handoffKind set.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:03:37 +00:00
Cursor Agent
4c3423a500
docs(plugins): record S-series landing in living plan + CHANGELOG
Plan S3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the S-series shipped this turn:

  S1. runHandoffAtom() pipeline-driven promotion-ladder bridge
  S2. Full code-migration pipeline e2e smoke test

Living plan now records:
  Phase 7 \u2705 + 'full pipeline e2e covered by smoke test'
  Phase 8 \u2705 + 'handoff promotion ladder bridge landed'

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:56:54 +00:00
Cursor Agent
c1f6d1f02d
docs(plugins): record R-series landing in living plan + CHANGELOG
Plan R2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the R-series shipped this turn:

  R1. diff-review GenUI \u2192 review/decision.json bridge

Living plan now reads:
  Phase 8 → \u2705 COMPLETE end-to-end. Patch substrate +
    diff-review atom + auto-surface + native UI mount + GenUI \u2192
    runDiffReview bridge all landed.
  Phase 6 → \u2705 COMPLETE.
  Phase 7 → \u2705 COMPLETE.

Remaining backlog:
  - Promote OD_BUNDLED_ATOM_PROMPTS=1 to default (audit-blocked)
  - AWS SDK wiring inside S3ProjectStorage
  - Postgres adapter wiring inside DaemonDb resolver

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:49:50 +00:00
Cursor Agent
72ec5fb176
docs(plugins): record Q-series landing in living plan + CHANGELOG
Plan Q3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Q-series shipped this turn:

  Q1. Native diff-review UI on GenUISurfaceRenderer  (Phase 8 entry slice)
  Q2. figma-extract asset rasterisation second pass  (Phase 6 entry slice)

Living plan now reads:
  Phase 6 → COMPLETE: figma-extract REST + token-map crosswalk +
    asset rasterisation second pass via GET /v1/images.
  Phase 8 → patch + review + auto-surface + native review UI all
    landed. The remaining slice is wiring the GenUI response back
    through runDiffReview() to auto-update review/decision.json
    (today the daemon stores the response on the run; the
    diff-review runner reads it on next invocation).

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:41:46 +00:00
Cursor Agent
e135739f99
docs(plugins): record P-series landing in living plan + CHANGELOG
Plan P4 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the P-series shipped this turn:

  P1. token-map atom impl                       (Phase 6/7 entry slice)
  P2. figma-extract atom impl                   (Phase 6 entry slice)
  P3. Auto-derived choice surface for diff-review (Phase 8 entry slice)

Living plan now reads:
  Phase 6 → COMPLETE: figma-extract REST shell-out + token-map
    crosswalk both implemented. Bundled scenario plugin
    od-figma-migration ships the canonical pipeline. Asset
    rasterisation second pass (offlineAssets=false) stays
    scheduled.
  Phase 7 → COMPLETE (continued from O-series): all six atom impls.
  Phase 8 → patch + review + auto-surface substrate landed; native
    UI mount in the web composer stays scheduled.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:32:23 +00:00
Cursor Agent
01e94a92be
docs(plugins): record O-series landing in living plan + CHANGELOG
Plan O6 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the O-series shipped this turn:

  O1. Bundled-scenario pipeline fallback resolver (spec §23.3.3)
  O2. design-extract atom impl                    (Phase 6/7 entry slice)
  O3. rewrite-plan atom impl                      (Phase 7 entry slice)
  O4. patch-edit atom impl                        (Phase 7 entry slice)
  O5. diff-review atom impl                       (Phase 7-8 entry slice)

Living plan now reads:
  Phase 7 → ALL SIX atoms IMPLEMENTED (build-test + code-import +
    design-extract + rewrite-plan + patch-edit + diff-review).
    Bundled scenario plugin od-code-migration ships the canonical
    pipeline. Live HTTP wiring for the per-stage runner stays
    scheduled.
  Phase 8 → patch + review substrate landed; native review-and-apply
    UI mounting diff-review through a GenUI choice surface stays
    scheduled.
  Phase 6 → SKILL.md substrate + scenario plugin registered;
    design-extract impl is reused under the figma-migration
    flow as well.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:19:04 +00:00
Cursor Agent
1d142b4214
docs(plugins): record N-series landing in living plan + CHANGELOG
Plan §3.N5 — sync docs/plans/plugins-implementation.md and
CHANGELOG.md with the N-series shipped this turn:

  N1. build-test atom shell-out runner (Phase 7 entry slice)
  N2. code-import atom repo walker      (Phase 7 entry slice)
  N3. handoff helper + ArtifactManifest provenance fields
                                        (Phase 7-8 entry slice)
  N4. Bundled scenario plugins          (spec §23.3.3)

Living plan now reads:
  Phase 7 → build-test + code-import IMPLEMENTED; design-extract +
    rewrite-plan + patch-edit + diff-review remain SKILL.md
    substrate.
  Phase 8 → handoff helper + provenance fields IMPLEMENTED; native
    review-and-apply UI remains scheduled.
  Phase 6 → SKILL.md substrate + scenario plugin registered;
    Figma REST + token-map heuristic remain scheduled.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:57:23 +00:00
Cursor Agent
4aec507cd3
docs(plugins): record M-series — retention TTL + atom prompt rewiring + Phase 6/7/8 substrate
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - OD_SNAPSHOT_RETENTION_DAYS referenced-row TTL (PB2 closed).
  - OD_BUNDLED_ATOM_PROMPTS=1 activates composeDaemonSystemPrompt's
    atom-block branch (default off; byte-equal to today's prompt).
  - Nine new bundled atom SKILL.md fragments under
    plugins/_official/atoms/ for Phases 6, 7, and 8.

docs/plans/plugins-implementation.md §6 Phase 6 / 7 / 8 deliverables
record their substrate-shipped state; the actual implementations
remain scheduled. §9 Status snapshot updated; next-planned-PR cell
moves the AWS SDK / postgres adapter wiring + Phase 6 / 7 / 8
shell-out implementations + the OD_BUNDLED_ATOM_PROMPTS default
flip to the head of the queue.

Final gates: pnpm guard ✓, daemon 1521 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:25:22 +00:00
Cursor Agent
35b4030834
docs(plugins): record L-series — Helm overrides + activeStageBlocks + asset route + storage substrate
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Per-cloud Helm value overrides (AWS / GCP / Azure / Aliyun /
    Tencent / Huawei / self-hosted).
  - composeSystemPrompt accepts activeStageBlocks so a future PR can
    swap inline DISCOVERY_AND_PHILOSOPHY for SKILL.md fragments.
  - Plugin-bundled component surface (sandboxed iframe) +
    GET /api/plugins/:id/asset/* with §9.2 CSP.
  - ProjectStorage + DaemonDb adapter substrate (Local impl wired,
    S3 + postgres stubs interface-locked).

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - Phase 5 deliverables: chart templates + per-cloud overrides +
    bound-API-token guard + ghcr CI + ProjectStorage + DaemonDb all
    record their landed shipped state.
  - §6 Phase 4 absorbs the activeStageBlocks composer field +
    surface.component sandbox loader as shipped slices.
  - §9 Status snapshot updated; head of the queue is now the live
    composeSystemPrompt rewiring + AWS SDK / postgres adapter
    wiring + OD_SNAPSHOT_RETENTION_DAYS referenced-row TTL +
    Phase 6/7/8 native scenarios.

Final gates: pnpm guard ✓, daemon 1516 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:01:29 +00:00
Cursor Agent
d0dbc7314f
docs(plugins): record K-series — bound-API-token + Helm + surface.component + ghcr CI
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 5 bound-API-token guard (startServer refusal + bearer
    middleware on /api/*).
  - Helm chart templates (Deployment / Service / Secret / ConfigMap /
    PVCs / Ingress / NOTES).
  - od.genui.surfaces[].component manifest field + capability gate.
  - GitHub Actions multi-arch image push to ghcr.io.

docs/plans/plugins-implementation.md §6 / §9 flipped:
  - Phase 5 bound-API-token guard, CI push, Helm templates → shipped.
  - Phase 4 surface.component manifest upgrade → shipped (substrate;
    web sandbox loader stays scheduled).
  - §9 Status snapshot updated; head of the queue is now the
    composeSystemPrompt rewiring + the web custom-component sandbox
    loader + ProjectStorage S3 adapter + DaemonDb Postgres adapter +
    per-cloud values-<cloud>.yaml override files + Phase 6 / 7 / 8.

Final gates: pnpm guard ✓, daemon 1496 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:42:54 +00:00
Cursor Agent
735b7bdffb
docs(plugins): record J-series — AG-UI adapter + atom-block + Phase 5 entry slice
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - @open-design/agui-adapter package + GET /api/runs/:runId/agui
    (spec §10.3.5).
  - renderActiveStageBlock + loadAtomBodies (spec §23.3.2 substrate).
  - Phase 5 Dockerfile bundles plugins/_official/, plus
    tools/pack/docker-compose.yml and tools/pack/helm/open-design/
    parameter surface.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - Architecture-state table records agui-adapter, atom-bodies,
    atom-block, docker-compose, Helm values.
  - HTTP route table marks /api/runs/:runId/agui shipped.
  - §6 Phase 4 'AG-UI adapter package' deliverable flips. The
    'plugins/_official/atoms/<atom>/SKILL.md extraction' deliverable
    is recorded as substrate-shipped; the composeSystemPrompt
    rewiring stays as the next planned PR.
  - §6 Phase 5 deliverable list flips Dockerfile + docker-compose +
    Helm + snapshot retention worker; the bound-API-token guard +
    pluggable storage / Postgres adapters stay open.
  - §9 Status snapshot updated; head of the queue is now the
    composeSystemPrompt rewiring + od.genui.surfaces[].component
    upgrade + CI pushing :edge / :<version> + bound-API-token guard
    + Postgres / S3 adapters.

Final gates: pnpm guard ✓, daemon 1486 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:24:53 +00:00
Cursor Agent
d06c1b4905
docs(plugins): record I-series — pipeline-into-startChatRun + doctor/config + bundled atoms
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Pipeline runner wired into POST /api/runs (e2e-3 full §8 contract).
  - od doctor (repo-wide diagnostics) + od config get/set/list/unset.
  - Phase 4 §23 entry slice — bundled atom plugins + boot walker.

docs/plans/plugins-implementation.md §3 / §6 / §8 / §9 flipped:
  - Architecture-state table records scaffold / export / publish /
    bundled / plugins/_official/atoms as shipped.
  - §6 Phase 4 deliverable list flips bundled atom extraction +
    full CLI parity remainder; the system.ts → SKILL.md prompt
    rewiring stays open as the next planned PR.
  - §8 e2e-3 row flips from entry-slice to full §8 contract:
    plugins-headless-run.test.ts asserts the first SSE event on a
    pipeline-bearing run is pipeline_stage_started.
  - §9 Status snapshot updated; head of the queue is now
    composeSystemPrompt() reading atom fragments from
    plugins/_official/atoms/<atom>/SKILL.md, then the AG-UI adapter,
    then Phase 5 Docker image.

Final gates: pnpm guard ✓, daemon 1481 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:03:57 +00:00
Cursor Agent
26c5a27cf9
docs(plugins): record Phase 4 publish + CLI parity remainder
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 4 publish CLI (od plugin publish --to <catalog> [--open]).
  - CLI parity remainder (od atoms / skills / design-systems / craft /
    status / version).
  - od marketplace search across configured catalogs.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - The CLI table records publish + atoms + skills + design-systems +
    craft + status + version + marketplace search as shipped, with the
    only remaining open verbs being od doctor + od config get/set/list.
  - Phase 4 deliverable list flips publish to shipped.
  - Status snapshot moves marketplace search and library CLI parity
    out of next-planned and into shipped; head of the queue is now the
    pipeline-runner-into-startChatRun integration plus Phase 4 atom
    migration into plugins/_official/ and the AG-UI adapter package.

Final gates: pnpm guard ✓, daemon 1475 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:44:16 +00:00
Cursor Agent
a1798ba47d
docs(plugins): record Phase 4 author tooling + Phase 2B marketplace UI
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 4 author tooling: od plugin scaffold + od plugin export with
    provenance README + claude-plugin / agent-skill targets.
  - Phase 2B marketplace deep UI: /marketplace + /marketplace/:id
    routes, MarketplaceView grid + filters + configured catalogs panel,
    PluginDetailView with capability + connector + GenUI surface
    summaries plus a 'Use this plugin' button.
  - Phase 2B ChatComposer mount of PluginsSection.
  - docs/atoms.md as the canonical first-party atom catalog reference.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - The web component table now records MarketplaceView + PluginDetailView
    as shipped (with the routes attached) and the ChatComposer rail mount
    flipped from absent → shipped.
  - The CLI table records od plugin scaffold + od plugin export as
    shipped Phase 4 deliverables; od plugin publish stays absent.
  - The Phase 4 deliverable list flips: docs/atoms.md, scaffold, export,
    and run shorthand are all checked. Atom migration into
    plugins/_official/, AG-UI adapter, plugin manifest .component
    capability, and CLI parity remainder stay open.
  - §9 Status snapshot updated; next-planned-PR cell moves the
    pipeline-runner-into-startChatRun integration to the head of the
    queue and points at the remaining Phase 4 / 5 backlog.

Final gates: pnpm guard ✓, daemon 1465 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:33:38 +00:00
Cursor Agent
0e92952ac7
docs(plugins): record Phase 1 follow-up + 1.5 + 2B mount + 3 install resolution
CHANGELOG.md gets a new bullet block summarising:
  - Phase 1 follow-up CLI (od project / run / files / conversation).
  - Phase 1.5 headless lifecycle (od daemon start --headless / --serve-web /
    status / stop) with backing /api/daemon/status + /api/daemon/shutdown.
  - Phase 3 'od plugin install <name>' resolution through configured
    marketplaces.
  - Web composer mount: PluginsSection + NewProjectPanel integration.

docs/plans/plugins-implementation.md §3 / §6 / §8 / §9 flipped:
  - The Phase 1.5 deliverable list moves from open boxes to shipped
    rows.
  - The CLI table moves od project / run / files / conversation /
    daemon to shipped, with the lone remaining deferrals (od files
    diff, od project import, od conversation new, od marketplace
    search) called out explicitly.
  - The web component table records PluginsSection + the
    NewProjectPanel mount as shipped, with the deeper ChatComposer
    mount + MarketplaceView + PluginDetailView still scheduled for
    Phase 2B.
  - Phase 3 marks 'od plugin install <name>' as shipped; the Phase 3
    items still open are: trust UI, bundle-plugin installer, full
    doctor expansion.
  - §8 e2e-3 flips to entry-slice complete (HTTP-layer walkthrough);
    the live-agent-loop integration moves to the next-planned-PR cell.
  - §9 Status snapshot updated.

Final gates green: pnpm guard ✓, daemon 1455 tests ✓, web 579 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:16:15 +00:00
Cursor Agent
20285c9959
docs(plugins): flip Phase 2A boxes + record Phase 3/5 entry slices
Plan §3 architecture state, §6 phase deliverables, §8 definition of done,
§9 status snapshot all updated to reflect the work that landed in this
branch.

CHANGELOG.md gets a new ## Unreleased bullet summarising the daemon /
CLI / web slice, with explicit pointers to the e2e test paths that
anchor each §8 row.

Phases / slices that flipped to shipped:

  - All Phase 2A daemon deliverables (pipeline, pipeline-runner,
    connector-gate, GenUI registry/store/events, snapshot resolver,
    SQLite migrations, HTTP routes, SSE / ND-JSON event emission, PB1
    renderer in contracts).
  - Phase 2A CLI: trust mutation, --grant-caps, --input k=v, recoverable
    exit codes 64–73, ui list/show/respond/revoke/prefill, plugin
    replay, plugin run shorthand, plugin snapshots prune.
  - Phase 2A web: applyPlugin() helper, InlinePluginsRail,
    ContextChipStrip, PluginInputsForm, GenUISurfaceRenderer
    (confirmation + oauth-prompt first-class), GenUIInbox.
  - Phase 3 entry slice: marketplace registry + od marketplace add /
    list / info / refresh / remove / trust + matching HTTP routes.
    Plugin-name resolution + trust UI stay scheduled.
  - Phase 5 (early): snapshot GC worker + applied-plugins audit
    routes + od plugin snapshots prune.

§8 Definition of Done: e2e-1, e2e-2, e2e-4, e2e-5, e2e-6, e2e-7, e2e-8
all anchored to specific daemon test paths. e2e-3 (headless run) stays
TBD pending Phase 1.5.

Status snapshot: Phase 2A finished + entry slices of Phase 2B/2C/3 +
early Phase 5; next planned PRs: Phase 1.5 headless flag (e2e-3
unblock), Phase 2B marketplace deep UI, Phase 3 `od plugin install
<name>` resolution + trust UI.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 11:54:29 +00:00
pftom
4c7cd5d9f2 feat(plugins): introduce plugin system with installation and management capabilities
- Added support for a new plugin system, allowing users to install, uninstall, and manage plugins through the daemon.
- Implemented API endpoints for listing installed plugins, retrieving plugin details, and applying plugins with input validation.
- Introduced a plugin doctor feature to validate plugin manifests and check for issues before application.
- Established a plugin persistence layer with SQLite migrations for managing installed plugins and their metadata.
- Enhanced the CLI with commands for plugin operations, improving user interaction with the plugin ecosystem.
2026-05-09 18:24:44 +08:00
pftom
8d7f914b55 docs(plugins): enhance plugin specification and introduce implementation roadmap
- Added a new section detailing the implementation plan for the Open Design Plugin & Marketplace, serving as a living roadmap for future development.
- Updated the plugin specification to include the `expires_at` column in the `applied_plugin_snapshots` table, clarifying its role in snapshot retention and garbage collection.
- Revised the structure of the plugin block renderer, lifting it into the contracts layer to eliminate byte-equality drift and streamline plugin support across different consumption modes.
- Documented the phased approach to plugin functionality, ensuring clarity on the current capabilities and future enhancements within the plugin ecosystem.
2026-05-09 17:28:31 +08:00