feat(FN-2939): merge fusion/fn-2939

- feat(FN-2939): complete Step 6 — add verification changeset
- test(FN-2939): complete Step 4 — tighten bundle-output coverage
- feat(FN-2946): merge fusion/fn-2946

Fusion-Task-Id: FN-2939
This commit is contained in:
Fusion
2026-04-29 02:37:12 -07:00
committed by gsxdsm
parent af036992e7
commit e891a05950
2 changed files with 21 additions and 0 deletions

View File

@@ -128,6 +128,22 @@ describe("CLI bundle output", () => {
expect(processManagerSource).not.toMatch(/from\s*["']cross-spawn["']/);
});
it("staged pi-claude-cli package.json keeps pi extension entry and excludes cross-spawn deps", () => {
const stagedPkg = JSON.parse(
readFileSync(join(cliRoot, "dist", "pi-claude-cli", "package.json"), "utf-8"),
) as {
pi?: { extensions?: unknown };
dependencies?: Record<string, string>;
devDependencies?: Record<string, string>;
};
expect(stagedPkg.pi?.extensions).toEqual(["index.ts"]);
expect(stagedPkg.dependencies?.["cross-spawn"]).toBeUndefined();
expect(stagedPkg.dependencies?.["@types/cross-spawn"]).toBeUndefined();
expect(stagedPkg.devDependencies?.["cross-spawn"]).toBeUndefined();
expect(stagedPkg.devDependencies?.["@types/cross-spawn"]).toBeUndefined();
});
it("runtime native assets are staged after build:exe", () => {
const runtimeDir = join(cliRoot, "dist", "runtime");
if (!existsSync(runtimeDir)) return;