Skip to content

feat(plugin-manager): add management facade (stack 3/7)#75

Open
wanglongan587 wants to merge 19 commits into
ora-space:mainfrom
wanglongan587:pick-0717-03-manager
Open

feat(plugin-manager): add management facade (stack 3/7)#75
wanglongan587 wants to merge 19 commits into
ora-space:mainfrom
wanglongan587:pick-0717-03-manager

Conversation

@wanglongan587

Copy link
Copy Markdown

Summary

  • Add plugin-manager management plane: foundation ports, safe FS/digest, lease/state, package validation, install pipeline/scanner, reconcile/recovery, PluginManagement facade + lifecycle events.

Stack

Test plan

  • cargo test -p ora-plugin-manager (management unit tests)

wanglongan587 and others added 9 commits July 20, 2026 11:32
Establish validated plugin identifiers and strict manifest parsing.
Add the v1 Agent and Workbench package model for later wire contracts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Define the bounded five-byte frame format and cover split, coalesced,
and malformed input behavior before adding JSON-RPC messages.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce opaque IDs, page limits, and JSON-safe numeric leaf types so
lifecycle and Agent contract modules can share one validated value layer.
Add the closed Agent request/response/event shapes on top of leaf types so
lifecycle stream envelopes and method registry can reference one contract.
Add initialize/activate/deactivate/stream/exit DTOs and invariants so Host
and private bootstrap share one wire lifecycle contract.
Add request/response/error framing helpers on top of the binary frame codec
so Host and plugin runtimes share one JSON-RPC parse/reject matrix.
Register the closed Agent method set and invocation semantics so SDK and
runtime dispatch share one method catalog.
Close the protocol crate with cross-field Agent validators, TypeScript export
helpers, and checked-in Frame/Agent golden fixtures for drift detection.
@wanglongan587
wanglongan587 force-pushed the pick-0717-03-manager branch from 4e5ce08 to 5f0eb61 Compare July 20, 2026 03:45
@wanglongan587
wanglongan587 marked this pull request as ready for review July 20, 2026 07:13
wanglongan587 and others added 10 commits July 20, 2026 15:26
FrameEnvelopeMismatch was unreachable because require_allowed_fields
rejected result/error/method/params first. Check shape incompatibilities
first so mismatch and unknown-field failures stay distinct.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce the shared process abstraction and Tokio spawner so plugin runtime
can depend on a Host-owned process API before Windows Job Object support.
Add Job-bound spawn, named-pipe stdio, and tree terminate/reap so each
plugin generation can own a killable Windows process tree.
Introduce config, catalog, enablement, state, receipts, error taxonomy, and
management/runtime ports so later install and actor modules share one type layer.
Add no-follow path auditing, safe tree deletion, and deterministic package
tree digests used by install staging and integrity checks.
Add single-owner data-dir lease plus atomic state backup/recovery so manager
restarts can fail closed instead of silently accepting corrupt state.
Validate manifests and package layout, issue selection/candidate handles, and
build the provider registry used by later install and admission flows.
Stage authorized candidates behind digest revalidation, commit receipts, and
rebuild catalog snapshots from the installed package store.
Recover interrupted installs and removals from journals/trash so manager
bootstrap converges without leaving half-applied package state.
Expose scan/identify/install/enable/disable/uninstall use cases and wire
critical runtime events into crash-policy state updates.
@wanglongan587
wanglongan587 force-pushed the pick-0717-03-manager branch from 5f0eb61 to df365be Compare July 20, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant