fix: support fractional slice IDs (e.g. S03.5) in roadmap parser (#681)
The roadmap parser regex used (\w+) to capture slice/task IDs, which only matches [a-zA-Z0-9_]. Fractional IDs like S03.5 (created by /gsd steer) contain a dot, causing the parser to skip the entire line. The dispatcher then jumps from S03 to S04, finds S04 blocked by the unparsed S03.5, and gives up with 'earlier slice is not complete'. Update the ID capture group to ([\w.]+) in both: - roadmap-slices.ts (primary roadmap parser) - files.ts (plan task parser, for consistency) This allows dots in slice/task IDs while preserving all existing behavior for standard IDs like S01, S02, T01, etc. Closes #681
This commit is contained in:
parent
a90aa0c8d6
commit
7b014e13fb
2 changed files with 2 additions and 2 deletions
|
|
@ -436,7 +436,7 @@ function _parsePlanImpl(content: string): SlicePlan {
|
|||
let currentTask: TaskPlanEntry | null = null;
|
||||
|
||||
for (const line of taskLines) {
|
||||
const cbMatch = line.match(/^-\s+\[([ xX])\]\s+\*\*(\w+):\s+(.+?)\*\*\s*(.*)/);
|
||||
const cbMatch = line.match(/^-\s+\[([ xX])\]\s+\*\*([\w.]+):\s+(.+?)\*\*\s*(.*)/);
|
||||
if (cbMatch) {
|
||||
if (currentTask) tasks.push(currentTask);
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ export function parseRoadmapSlices(content: string): RoadmapSliceEntry[] {
|
|||
let currentSlice: RoadmapSliceEntry | null = null;
|
||||
|
||||
for (const line of checkboxItems) {
|
||||
const cbMatch = line.match(/^\s*-\s+\[([ xX])\]\s+\*\*(\w+):\s+(.+?)\*\*\s*(.*)/);
|
||||
const cbMatch = line.match(/^\s*-\s+\[([ xX])\]\s+\*\*([\w.]+):\s+(.+?)\*\*\s*(.*)/);
|
||||
if (cbMatch) {
|
||||
if (currentSlice) slices.push(currentSlice);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue