Files
pi-auto-reinject/test/b002-repro-pre-fix.test.ts
T
grayhook a81337c08e Phase 14: defer reinject plan without registry at compaction — B-002 stage 1
planDeferredReinject locks pending by kept-window only; defer path in index uses it while immediate keeps registered filter at compact time.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 17:31:43 +07:00

99 lines
2.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { planDeferredReinject, planReinject } from "../src/reinject.js";
import { createDefaultSettings } from "../src/settings.js";
import { createInitialState, trackSkill } from "../src/state.js";
describe("B-002 pre-fix filter hypothesis", () => {
it("planned empty when skill stays in kept window even if registered", () => {
const state = createInitialState();
trackSkill(state, {
name: "fup-blame-commits",
filePath: "/home/user/.cursor/skills/fup-blame-commits/SKILL.md",
baseDir: "/home/user/.cursor/skills/fup-blame-commits",
source: "slash",
});
const branch = [
{
id: "keep-1",
type: "message",
message: {
role: "user",
content:
'<skill name="fup-blame-commits" location="/path/SKILL.md">\nbody\n</skill>',
},
},
] as never;
const planned = planReinject(
state,
createDefaultSettings(),
{
sessionManager: { getBranch: () => branch },
} as never,
{ compactionEntry: { firstKeptEntryId: "keep-1" } } as never,
[{ name: "fup-blame-commits" }],
);
expect(planned).toEqual([]);
});
it("pre-fix: registered empty drops skill even when absent from kept (post-fix should reinject)", () => {
const state = createInitialState();
trackSkill(state, {
name: "fup-blame-commits",
filePath: "/home/user/.cursor/skills/fup-blame-commits/SKILL.md",
baseDir: "/home/user/.cursor/skills/fup-blame-commits",
source: "skill-block",
});
const branch = [
{
id: "keep-1",
type: "message",
message: { role: "user", content: "plain text after compact" },
},
] as never;
const planned = planReinject(
state,
createDefaultSettings(),
{
sessionManager: { getBranch: () => branch },
} as never,
{ compactionEntry: { firstKeptEntryId: "keep-1" } } as never,
[],
);
expect(planned).toEqual([]);
});
it("defer plan includes skill absent from kept even when registered is empty", () => {
const state = createInitialState();
trackSkill(state, {
name: "fup-blame-commits",
filePath: "/home/user/.cursor/skills/fup-blame-commits/SKILL.md",
baseDir: "/home/user/.cursor/skills/fup-blame-commits",
source: "skill-block",
});
const branch = [
{
id: "keep-1",
type: "message",
message: { role: "user", content: "plain text after compact" },
},
] as never;
const planned = planDeferredReinject(
state,
{
sessionManager: { getBranch: () => branch },
} as never,
{ compactionEntry: { firstKeptEntryId: "keep-1" } } as never,
);
expect(planned).toEqual(["fup-blame-commits"]);
});
});