Skip to content

Run the interactive smoke gate for PR #49 (plugin runtime) #51

Description

@adbarc92

Draft PR #49 is code-complete and merges conflict-free. All three automated gates were re-verified against current main on 2026-08-09 — cargo test 28 passed, npm test 133 passed (18 files), npm run check 0 errors / 0 warnings (352 files). The only thing blocking merge is the interactive smoke, which needs a watched GUI session and cannot be asserted headlessly.

Before you start

  • Free port 8080. A java process (pid 18576 at time of writing) holds it. The Audience app-plugin health-probes http://localhost:8080/health; with something else bound there an AUDIENCE failure is inconclusive, not a real fail.
  • Start Docker. The Audience manifest is a managed-lifecycle plugin: it runs docker compose -f docker-compose.prod.yml build against D:/MajorProjects/CURRENT/audience with a 20-minute timeout. Budget the time; a long wait is not a hang.

Checklist

Full version in spikes/SPIKE-RESULTS.md under "REMAINING HUMAN GATE", plus spikes/SPIKE-RESULTS-app-plugins.md for the P3 gates.

Dev run (npm run desktop, with CC_VIEW_PLUGINS_DEV, CC_PLUGIN_SDK, CC_APP_PLUGINS_DEV set):

  1. Switcher shows FLEET / PROJECTS / REFERENCE / AUDIENCE
  2. Fleet ops grid unchanged — this PR rewrites App.svelte's content region; a regression here is the costliest outcome
  3. REFERENCE renders in a sandboxed iframe; plugin-helloready completes
  4. A policed launch round-trips; the command-ack rejection path fires; plugin makes no network requests
  5. AUDIENCE shows a native webview over the reserved rect
  6. Rect stays glued on resize / maximize / restore
  7. Park-on-overlay — stage a real launch; webview parks off-screen, overlay is unobstructed, webview restores alive (not reloaded)
  8. No orphaned webview switching AUDIENCE→FLEET→AUDIENCE; Fleet state preserved
  9. Gate 5 — quit the cockpit entirely, then docker ps is clean. Also no orphaned fleetd-serve on :8787, no stray Vite on :5173
  10. Vite HMR still works under the new host CSP

Packaged run (npm run bundle, run the .exe directly): repeat 1, 3, 5, 7, 9. This is the only way to prove ccplugin:// resolves from packaged resources rather than dev roots.

Load-bearing

If 2, 7, 9, or the packaged run fail, keep #49 draft. Record PASS/FAIL in spikes/SPIKE-RESULTS.md, then mark ready.

Note item 9 (Gate 5) was never closed by the P3 spike and is tracked separately — see the P3 provenance note in #49.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions