86 lines
7.7 KiB
Markdown
86 lines
7.7 KiB
Markdown
# Plugin v1 validation
|
|
|
|
Developer tooling and diagnostics were subsequently completed; see
|
|
[the development guide](plugin-development.md) and the updated verification below.
|
|
|
|
Validated on Windows on 2026-10-03. Scope follows
|
|
[the implementation plan](plugin-system-plan.md).
|
|
|
|
| Requirement | Implementation and evidence |
|
|
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| Versioned manifest and contributions | Independent runtime validates API/engine versions, paths, permissions, panels and command/menu declarations. Frontend contribution tests verify enabled-version discovery and namespaced IDs. |
|
|
| Local package lifecycle | Package/registry tests cover traversal, case collisions, complete checksums, modified content, inspection digest, immutable versions, persisted grants, permission revocation, update, rollback and publisher continuity. |
|
|
| Permissions and scope | Rust gateway allowlists capabilities and combines grants with plugin version, window ownership, connected session and lock checks. Approved command/file operations revalidate scope before execution. Permission review is bound to the active version to reject stale dialogs after an update. |
|
|
| Isolated UI | Bridge tests cover unrelated/spoofed frames, opaque origin, fixed scope token, arbitrary native command attempts, duplicate IDs, oversized messages and disposal. IPC tests cover top-frame initialization and Tauri binary/channel/fallback serialization. |
|
|
| Workspace integration | Unified Plugins management panel, activity panels, floating/multiple panel layouts and terminal/connection menu contributions integrate with existing workspace components. Existing workspace and context-menu tests pass. |
|
|
| Native runtime | Real child-process tests exercise handshake identity, persistent reuse, reverse RPC, timeout recovery and crash cleanup. Framed transport tests verify binary round trips and size limits. Activation cancellation and application exit/lock cleanup are implemented. |
|
|
| Developer workflow | UI and native examples both build/package. The extracted native package initializes and returns counts 1 then 2 from the same executable process. UI SDK round-trip tests and browser smoke verify the authoring path. |
|
|
| Documentation | [Plugin guide](plugins.md) specifies installation, trust, package lifecycle, storage, manifest, UI API, native protocol, limitations and maintenance. |
|
|
|
|
Checks completed:
|
|
|
|
- `pnpm exec vitest run --maxWorkers=4`: **152 files / 964 tests passed**.
|
|
Default high parallelism exceeded the existing AI settings test's five-second
|
|
timeout; limiting workers passed the entire suite. Temporary reference projects
|
|
under `temp/` are now excluded from test discovery.
|
|
- `pnpm build`: frontend type checking, MCP sidecar build and production Vite build
|
|
passed. Existing Browserslist age and large-bundle notices remain.
|
|
- `pnpm lint`: passed; one existing dependency warning in `CommandSuggestions.tsx`
|
|
remains. Plugin frontend files have no lint diagnostics.
|
|
- Runtime Cargo tests: **9 unit tests and 2 real-process tests passed**.
|
|
- Runtime `cargo clippy --all-targets -- -D warnings`: passed.
|
|
- Tauri `cargo check --lib` and `cargo clippy --lib`: passed. Existing project-wide
|
|
Clippy warnings remain; plugin-module diagnostics were checked separately.
|
|
- Tauri plugin tests: **2 passed**, for atomic lifecycle admission and rendered IPC
|
|
script templates. The Windows library-test binary failed in the loader before
|
|
running any tests; a temporary copy with a Common Controls v6 activation manifest
|
|
ran both successfully. Production application files were not altered for this
|
|
workaround.
|
|
- Real Chrome smoke using the actual bridge, SDK and Session Toolbox files:
|
|
panel loading, selected-session request, theme propagation, opaque message origin,
|
|
fixed-scope routing, parent DOM isolation, blocked direct network and absent
|
|
child-frame IPC transport all passed. Native host calls were stubbed in this
|
|
browser check.
|
|
|
|
This validation does not include a manually operated packaged Tauri desktop build
|
|
or macOS/Linux WebView testing. The browser smoke uses HTTP asset serving with the
|
|
equivalent sandbox/CSP and mocked native commands; it does not exercise Tauri's
|
|
custom resource protocol or real terminal execution dialogs. Verify those in
|
|
desktop release QA. Native plugins remain trusted OS processes; the current
|
|
format has no cryptographic publisher signatures or marketplace.
|
|
|
|
## Developer tooling and diagnostics validation
|
|
|
|
Completed on Windows, 2026-10-03:
|
|
|
|
- Project creation: UI and Rust starters generated successfully. Three Node tests
|
|
cover external paths (including spaces), valid SDK references, invalid arguments
|
|
and refusal to overwrite existing source.
|
|
- Generated UI/Rust packages pass the real package validator. The Rust starter
|
|
builds in release mode. Extracted native-counter **1.0.1** and the generated
|
|
Rust package both complete their SDK handshake, return counts **1, 2** from a
|
|
persistent process, and exit cleanly on stdin EOF.
|
|
- Rust SDK: two wire tests cover bounded frames, binary round trips, clean EOF and
|
|
truncated input. Runtime: **10 unit tests + 5 process integration tests** pass
|
|
with `--features sdk-fixture`. SDK process tests cover JSONL/framed transport,
|
|
concurrent and reverse RPC, binary data, structured logs, request cancellation,
|
|
cancellation of timed-out reverse host calls, method errors, panic recovery,
|
|
crashes, and stderr collected during a failing initialization handshake.
|
|
- Diagnostic storage tests cover retention limits, UTF-8 truncation, credential
|
|
redaction, stop/restart generations, clearing and removal. The panel distinguishes
|
|
UI-only/disabled plugins and backend states; three frontend tests cover stopping,
|
|
refresh/copy/clear, untrusted log text and stale responses after locking.
|
|
- Frontend full suite: **153 files / 967 tests pass**. `pnpm build` and `pnpm lint`
|
|
pass; the existing CommandSuggestions hook warning remains.
|
|
- SDK/runtime Clippy with `--all-targets -- -D warnings` passes. Tauri library
|
|
Clippy/check passes; there are no plugin-module diagnostics, while existing
|
|
project-wide warnings remain.
|
|
- `pnpm i18n:check` still reports existing ordering issues in the AI text sections
|
|
of all four locales. Plugin sections were formatted independently to preserve
|
|
unrelated content. All four locales contain the same diagnostic keys.
|
|
|
|
The user reported successful desktop testing of the earlier native-counter
|
|
package. The new diagnostics controls have automated frontend coverage; the
|
|
updated 1.0.1 package is ready for desktop smoke testing. This does not claim
|
|
macOS/Linux validation or a full manual desktop lifecycle test.
|