
























@@ -559,6 +559,85 @@ describe("compileMemoryWikiVault", () => {
559559);
560560});
561561562+it("excludes concept and synthesis pages from stale-pages report", async () => {
563+const { rootDir, config } = await createVault({
564+rootDir: nextCaseRoot(),
565+initialize: true,
566+});
567+568+await fs.writeFile(
569+path.join(rootDir, "entities", "entity-alpha.md"),
570+renderWikiMarkdown({
571+frontmatter: {
572+pageType: "entity",
573+id: "entity.alpha",
574+title: "Alpha Entity",
575+sourceIds: ["source.alpha"],
576+updatedAt: "2025-06-01T00:00:00.000Z",
577+},
578+body: "# Alpha Entity\n",
579+}),
580+"utf8",
581+);
582+583+await fs.writeFile(
584+path.join(rootDir, "sources", "source-alpha.md"),
585+renderWikiMarkdown({
586+frontmatter: {
587+pageType: "source",
588+id: "source.alpha",
589+title: "Alpha Source",
590+updatedAt: "2025-06-01T00:00:00.000Z",
591+},
592+body: "# Alpha Source\n",
593+}),
594+"utf8",
595+);
596+597+// Concept page with old updatedAt — should be excluded from stale-pages
598+await fs.writeFile(
599+path.join(rootDir, "concepts", "concept-beta.md"),
600+renderWikiMarkdown({
601+frontmatter: {
602+pageType: "concept",
603+id: "concept.beta",
604+title: "Beta Concept",
605+sourceIds: ["source.alpha"],
606+updatedAt: "2025-06-01T00:00:00.000Z",
607+},
608+body: "# Beta Concept\n",
609+}),
610+"utf8",
611+);
612+613+// Synthesis page with old updatedAt — should be excluded from stale-pages
614+await fs.writeFile(
615+path.join(rootDir, "syntheses", "synthesis-gamma.md"),
616+renderWikiMarkdown({
617+frontmatter: {
618+pageType: "synthesis",
619+id: "synthesis.gamma",
620+title: "Gamma Synthesis",
621+sourceIds: ["source.alpha"],
622+updatedAt: "2025-06-01T00:00:00.000Z",
623+},
624+body: "# Gamma Synthesis\n",
625+}),
626+"utf8",
627+);
628+629+await compileMemoryWikiVault(config);
630+631+const stalePages = await fs.readFile(path.join(rootDir, "reports", "stale-pages.md"), "utf8");
632+633+// Entity and source pages still appear in stale-pages
634+expect(stalePages).toContain("[Alpha Entity](../entities/entity-alpha.md)");
635+expect(stalePages).toContain("[Alpha Source](../sources/source-alpha.md)");
636+// Concept and synthesis pages are excluded
637+expect(stalePages).not.toContain("[Beta Concept](../concepts/concept-beta.md)");
638+expect(stalePages).not.toContain("[Gamma Synthesis](../syntheses/synthesis-gamma.md)");
639+});
640+562641it("skips dashboard report pages when createDashboards is disabled", async () => {
563642const { rootDir, config } = await createVault({
564643rootDir: nextCaseRoot(),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。