fix(gsd): resolve 4 TS compilation errors from parser migration

- github-sync/sync.ts: import parseRoadmap/parsePlan from parsers-legacy
- auto-worktree.ts: replace dangling roadmap.title with getMilestone() DB query
- markdown-renderer.ts: add explicit type annotations on lazy-loaded parser callbacks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lex Christopherson 2026-03-24 06:04:29 -06:00
parent 6c1c31b91e
commit 2f7208150a
3 changed files with 7 additions and 4 deletions

View file

@ -10,7 +10,8 @@
import { existsSync, readdirSync } from "node:fs";
import { join } from "node:path";
import { loadFile, parseRoadmap, parsePlan, parseSummary } from "../gsd/files.js";
import { loadFile, parseSummary } from "../gsd/files.js";
import { parseRoadmap, parsePlan } from "../gsd/parsers-legacy.js";
import {
resolveMilestoneFile,
resolveSliceFile,

View file

@ -22,6 +22,7 @@ import { GSDError, GSD_IO_ERROR, GSD_GIT_ERROR } from "./errors.js";
import {
reconcileWorktreeDb,
isDbAvailable,
getMilestone,
getMilestoneSlices,
} from "./gsd-db.js";
import { atomicWriteSync } from "./atomic-write.js";
@ -1035,8 +1036,9 @@ export function mergeMilestoneToMain(
}
// 6. Build rich commit message
const dbMilestone = getMilestone(milestoneId);
const milestoneTitle =
roadmap.title.replace(/^M\d+:\s*/, "").trim() || milestoneId;
(dbMilestone?.title ?? "").replace(/^M\d+:\s*/, "").trim() || milestoneId;
const subject = `feat(${milestoneId}): ${milestoneTitle}`;
let body = "";
if (completedSlices.length > 0) {

View file

@ -803,7 +803,7 @@ export function detectStaleRenders(basePath: string): StaleEntry[] {
for (const slice of slices) {
const isCompleteInDb = slice.status === "complete";
const roadmapSlice = parsed.slices.find(s => s.id === slice.id);
const roadmapSlice = parsed.slices.find((s: { id: string }) => s.id === slice.id);
if (!roadmapSlice) continue;
if (isCompleteInDb && !roadmapSlice.done) {
@ -836,7 +836,7 @@ export function detectStaleRenders(basePath: string): StaleEntry[] {
for (const task of tasks) {
const isDoneInDb = task.status === "done" || task.status === "complete";
const planTask = parsed.tasks.find(t => t.id === task.id);
const planTask = parsed.tasks.find((t: { id: string }) => t.id === task.id);
if (!planTask) continue;
if (isDoneInDb && !planTask.done) {