From f7635faf3783990b3303280cdc0736f5366c0fb6 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 14 Jun 2026 14:17:33 -0700 Subject: [PATCH] FN-6452: backfill plugin proof-point evidence Document the restored FN-6437 proof-point results in the external plugin runbook. - Replace the pending-verification placeholder with the recorded NOT MET verdict for @runfusion/fusion@0.43.0. - Add package, integrity, environment, command, scaffold, and TypeScript failure evidence from the restored report. - Preserve explicit gaps for list/enable proof and follow-up checks that were blocked by the released scaffold failure. Files changed: docs/plugins/external-proof-point-runbook.md | 132 +++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 8 deletions(-) Fusion-Task-Id: FN-6452 Fusion-Task-Lineage: 14d3b848-59cd-43bb-b725-6586182906ee --- docs/plugins/external-proof-point-runbook.md | 132 +++++++++++++++++-- 1 file changed, 124 insertions(+), 8 deletions(-) diff --git a/docs/plugins/external-proof-point-runbook.md b/docs/plugins/external-proof-point-runbook.md index ce609b2885..5cdd7af4e9 100644 --- a/docs/plugins/external-proof-point-runbook.md +++ b/docs/plugins/external-proof-point-runbook.md @@ -199,13 +199,129 @@ For future proof-point runs, replace the release URL and checksum only with valu ## Reference: concrete validated path (FN-6437) -`upstream-pending-verification`: FN-6437 is the first proof-point validation task, but its restored `proof-point-report` was not accessible to this FN-6438 execution environment at the time this runbook was written. FN-6449 is archived as the restoration task, and follow-up FN-6452 tracks backfilling this section with the authoritative FN-6437 report contents once accessible. + -Do not infer or fabricate FN-6437's outcome. When the report is available, replace this section with: +**VERDICT: NOT MET — blocked-on-release because the released `@runfusion/fusion@0.43.0` package still scaffolded a plugin missing the required `state` field, matching the FN-6435 release-gate signature.** -- released `@runfusion/fusion` version tested by FN-6437, -- `dist.integrity` recorded by FN-6437, -- exact commands run by FN-6437, -- captured evidence, including `fn plugin list` enabled-state output, -- the verbatim `VERDICT:` line, and -- any linked gap/follow-up task IDs. +Provenance: FN-6449 restored this reference from FN-6437's surviving `task_document_revisions` (`notes`, revisions 1–3; latest revision 3) plus the archived FN-6437 task row. FN-6449's `proof-point-report` / `docs` task document is the canonical restored report; this section transcribes its supported values only. + +### Released package tested + +- Package: `@runfusion/fusion@0.43.0` +- Release URL: `https://registry.npmjs.org/@runfusion/fusion/-/fusion-0.43.0.tgz` +- `dist.integrity`: `sha512-kvxicT+e8ulc7FDhBVP9NsgaioZv6NDW81N8cXNS/X8M32Eo3Y33xT6JFW2DrSiFXsJmAaib/GnpQE0nYQYApQ==` +- Changeset consumption check: `.changeset/fn-5844-external-plugin-authoring.md` present in repo: `no` + +### Environment + +- node: `v26.3.0` +- pnpm: `10.33.0` +- npm: `11.16.0` +- os: `Darwin fusionstudio-8339.local 25.1.0 Darwin Kernel Version 25.1.0: Mon Oct 20 19:30:01 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6031 arm64` +- scratch workspace: `/var/folders/zp/fjh8794n7bl61c_pn1gmdt200000gn/T/tmp.zLiu2nRpx8` +- scratch workspace under repo tree: `no` + +### Commands and outcomes + +```bash +npm view @runfusion/fusion version +npm view @runfusion/fusion dist.integrity +npx @runfusion/fusion@latest --help +npx @runfusion/fusion@latest plugin --help +npx @runfusion/fusion@latest plugin new proof-point-plugin +cd proof-point-plugin +pnpm install +pnpm build +# pnpm test was not attempted after the blocking compile failure. +``` + +- `npm view @runfusion/fusion version` returned `0.43.0`. +- `npm view @runfusion/fusion dist.integrity` returned `sha512-kvxicT+e8ulc7FDhBVP9NsgaioZv6NDW81N8cXNS/X8M32Eo3Y33xT6JFW2DrSiFXsJmAaib/GnpQE0nYQYApQ==`. +- `npx @runfusion/fusion@latest --help` and `npx @runfusion/fusion@latest plugin --help` passed and showed the expected plugin subcommands, including `list`, `install`, `enable`, `new`, and `dev`. +- `npx @runfusion/fusion@latest plugin new proof-point-plugin` generated `fusion-plugin-proof-point-plugin@0.1.0`. +- `pnpm install` passed. +- `pnpm build` failed with the FN-6435 release-gate signature below. +- `pnpm test` was not attempted after the released scaffold failed to compile. +- Install/enable/load-run and `fn plugin list` were not attempted because the plugin never built. + +### Scaffold evidence + +The generated `package.json` used the published package and did not show monorepo-only dependency leakage: + +```json +{ + "name": "fusion-plugin-proof-point-plugin", + "version": "0.1.0", + "type": "module", + "description": "A standalone Fusion plugin", + "keywords": [ + "fusion-plugin" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "files": [ + "dist", + "manifest.json" + ], + "scripts": { + "build": "tsc", + "test": "vitest run" + }, + "devDependencies": { + "@runfusion/fusion": "^0.43.0", + "@types/node": "^22.0.0", + "typescript": "^5.7.0", + "vitest": "^4.1.0" + } +} +``` + +The generated `src/index.ts` imported the public SDK path but omitted the required `state` field: + +```ts +import { definePlugin } from "@runfusion/fusion/plugin-sdk"; + +export default definePlugin({ + manifest: { + id: "proof-point-plugin", + name: "Proof Point Plugin", + version: "0.1.0", + description: "A standalone Fusion plugin", + }, + hooks: { + onLoad: async (ctx) => { + ctx.logger.info("Proof Point Plugin plugin loaded"); + }, + }, +}); +``` + +Dependency checks recorded by FN-6437: + +- `@fusion/*` imports in scaffolded source: `none observed` +- `workspace:*` dependency ranges in scaffolded `package.json`: `none observed` +- SDK import surface: `@runfusion/fusion/plugin-sdk` as expected + +### Blocking failure transcript + +```text +> fusion-plugin-proof-point-plugin@0.1.0 build /private/var/folders/zp/fjh8794n7bl61c_pn1gmdt200000gn/T/tmp.zLiu2nRpx8/proof-point-plugin +> tsc + +src/index.ts(3,29): error TS2345: Argument of type '{ manifest: { id: string; name: string; version: string; description: string; }; hooks: { onLoad: (ctx: PluginContext) => Promise; }; }' is not assignable to parameter of type 'FusionPlugin'. + Property 'state' is missing in type '{ manifest: { id: string; name: string; version: string; description: string; }; hooks: { onLoad: (ctx: PluginContext) => Promise; }; }' but required in type 'FusionPlugin'. + ELIFECYCLE  Command failed with exit code 2. +``` + +### Gaps and follow-up + +- Release-gate blocker: FN-6435 (the scaffold `state` fix had not reached released `@runfusion/fusion@0.43.0`). +- `fn plugin list` enabled-state proof: **not produced — VERDICT NOT MET (blocked at `pnpm build` by the unreleased FN-6435 scaffold-`state` fix)**. +- FN-6409 and FN-6410 remained known checks for released SDK typing and CLI dependency resolution, but FN-6437 did not reach those later surfaces after the FN-6435 compile failure.