@coopcli/specsketch 2026.817.1 → 2026.819.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -2560,7 +2560,8 @@ function renderTasks(doc) {
2560
2560
  `];
2561
2561
  for (const task of group.tasks) {
2562
2562
  const box = task.done ? "x" : " ";
2563
- lines.push(`- [${box}] ${task.number} ${task.title}`);
2563
+ lines.push(`- [${box}] ${task.number} ${task.title.split("\n").join(`
2564
+ ${TASK_CONTINUATION}`)}`);
2564
2565
  }
2565
2566
  parts.push(`${lines.join("\n")}
2566
2567
  `);
@@ -2640,6 +2641,8 @@ function emitChange(change) {
2640
2641
  return renderChangeDocument(changeDocument(change));
2641
2642
  }
2642
2643
  var TASK_LINE = /^- \[([ xX])\] (\d+\.\d+) (.*)$/;
2644
+ var TASK_CONTINUATION = " ";
2645
+ var TASK_CONTINUATION_LINE = /^ {2}(.*)$/;
2643
2646
  var GROUP_CITATION = /^(.*) — implements `([^`]+)`: `([^`]+)`$/;
2644
2647
  var GROUP_HEADING = /^## (\d+)\. (.*)$/;
2645
2648
  var FENCE = /^```(\S*)\s*$/;
@@ -2685,7 +2688,10 @@ function parseProposalFile(src) {
2685
2688
  }
2686
2689
  const draft = emptyProposal();
2687
2690
  for (const spec of PROPOSAL_SECTIONS) {
2688
- const body = (bodies.get(spec.id) ?? []).join("\n").trim();
2691
+ const collected = [...bodies.get(spec.id) ?? []];
2692
+ if (collected[0] === "") collected.shift();
2693
+ if (collected.length > 0 && collected[collected.length - 1] === "") collected.pop();
2694
+ const body = collected.join("\n");
2689
2695
  if (body === "" || body === UNSATISFIED_MARKER) {
2690
2696
  draft[spec.id] = { state: "empty" };
2691
2697
  continue;
@@ -2775,7 +2781,17 @@ function parseTasksFile(src) {
2775
2781
  const task = TASK_LINE.exec(p);
2776
2782
  if (task && open) {
2777
2783
  const done = (task[1] ?? " ").toLowerCase() === "x";
2778
- open.tasks.push({ title: (task[3] ?? "").trim(), done });
2784
+ open.tasks.push({ title: task[3] ?? "", done });
2785
+ continue;
2786
+ }
2787
+ const continuation = TASK_CONTINUATION_LINE.exec(p);
2788
+ if (continuation && open && open.tasks.length > 0) {
2789
+ const last = open.tasks[open.tasks.length - 1];
2790
+ open.tasks[open.tasks.length - 1] = {
2791
+ ...last,
2792
+ title: `${last.title}
2793
+ ${continuation[1] ?? ""}`
2794
+ };
2779
2795
  }
2780
2796
  }
2781
2797
  if (open) groups.push(open);
@@ -4014,7 +4030,7 @@ function mountWorkbenchHost(app, options) {
4014
4030
  }
4015
4031
 
4016
4032
  // server/cli.ts
4017
- var CLI_VERSION = true ? "2026.08.17.1" : "dev";
4033
+ var CLI_VERSION = true ? "2026.08.19.1" : "dev";
4018
4034
  var USAGE = `Usage: specsketch <change-id> [--port <n>] [--fixture]
4019
4035
  specsketch login [--profile <name>] [--web-url <url>]
4020
4036
  specsketch --version