@markmdev/pebble 0.1.17 → 0.1.18

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/README.md CHANGED
@@ -84,7 +84,7 @@ pb ui
84
84
  - `-t, --type <type>` — Issue type: task, bug, epic (default: task)
85
85
  - `-p, --priority <n>` — Priority: 0=critical, 4=backlog (default: 2)
86
86
  - `-d, --description <text>` — Description
87
- - `--parent <id>` — Parent epic ID
87
+ - `--parent <id>` — Parent issue ID
88
88
 
89
89
  ### List
90
90
 
@@ -112,7 +112,7 @@ pb ui
112
112
  priority: 0-4; // 0=critical, 4=backlog
113
113
  status: 'open' | 'in_progress' | 'blocked' | 'closed';
114
114
  description?: string;
115
- parent?: string; // Parent epic ID
115
+ parent?: string; // Parent issue ID
116
116
  blockedBy: string[]; // IDs of blocking issues
117
117
  comments: Comment[];
118
118
  createdAt: string;
package/dist/cli/index.js CHANGED
@@ -1019,7 +1019,7 @@ function outputIssueListVerbose(issues, pretty, sectionHeader, limitInfo) {
1019
1019
 
1020
1020
  // src/cli/commands/create.ts
1021
1021
  function createCommand(program2) {
1022
- program2.command("create <title>").description("Create a new issue").option("-t, --type <type>", "Issue type (task, bug, epic, verification)", "task").option("-p, --priority <priority>", "Priority (0-4)", "2").option("-d, --description <desc>", "Description").option("--parent <id>", "Parent epic ID").option("--verifies <id>", "ID of issue this verifies (sets type to verification)").option("--blocked-by <ids>", "Comma-separated IDs of issues that block this one").option("--blocks <ids>", "Comma-separated IDs of issues this one will block").action(async (title, options) => {
1022
+ program2.command("create <title>").description("Create a new issue").option("-t, --type <type>", "Issue type (task, bug, epic, verification)", "task").option("-p, --priority <priority>", "Priority (0-4)", "2").option("-d, --description <desc>", "Description").option("--parent <id>", "Parent issue ID").option("--verifies <id>", "ID of issue this verifies (sets type to verification)").option("--blocked-by <ids>", "Comma-separated IDs of issues that block this one").option("--blocks <ids>", "Comma-separated IDs of issues this one will block").action(async (title, options) => {
1023
1023
  const pretty = program2.opts().pretty ?? false;
1024
1024
  try {
1025
1025
  let type = options.type;
@@ -1045,11 +1045,11 @@ function createCommand(program2) {
1045
1045
  if (!parent) {
1046
1046
  throw new Error(`Parent issue not found: ${options.parent}`);
1047
1047
  }
1048
- if (parent.type !== "epic") {
1049
- throw new Error(`Parent must be an epic, got: ${parent.type}`);
1048
+ if (parent.type === "verification") {
1049
+ throw new Error(`Verification issues cannot be parents`);
1050
1050
  }
1051
1051
  if (parent.status === "closed") {
1052
- throw new Error(`Cannot add children to closed epic: ${parentId}`);
1052
+ throw new Error(`Cannot add children to closed issue: ${parentId}`);
1053
1053
  }
1054
1054
  }
1055
1055
  let verifiesId;
@@ -1132,7 +1132,7 @@ function createCommand(program2) {
1132
1132
 
1133
1133
  // src/cli/commands/update.ts
1134
1134
  function updateCommand(program2) {
1135
- program2.command("update <ids...>").description("Update issues. Supports multiple IDs.").option("--status <status>", "Status (open, in_progress, blocked, closed)").option("--priority <priority>", "Priority (0-4)").option("--title <title>", "Title").option("--description <desc>", "Description").option("--parent <id>", 'Parent epic ID (use "null" to remove parent)').action(async (ids, options) => {
1135
+ program2.command("update <ids...>").description("Update issues. Supports multiple IDs.").option("--status <status>", "Status (open, in_progress, blocked, closed)").option("--priority <priority>", "Priority (0-4)").option("--title <title>", "Title").option("--description <desc>", "Description").option("--parent <id>", 'Parent issue ID (use "null" to remove parent)').action(async (ids, options) => {
1136
1136
  const pretty = program2.opts().pretty ?? false;
1137
1137
  try {
1138
1138
  const pebbleDir = getOrCreatePebbleDir();
@@ -1175,11 +1175,11 @@ function updateCommand(program2) {
1175
1175
  if (!parentIssue) {
1176
1176
  throw new Error(`Parent issue not found: ${options.parent}`);
1177
1177
  }
1178
- if (parentIssue.type !== "epic") {
1179
- throw new Error(`Parent must be an epic. ${parentId} is a ${parentIssue.type}`);
1178
+ if (parentIssue.type === "verification") {
1179
+ throw new Error(`Verification issues cannot be parents`);
1180
1180
  }
1181
1181
  if (parentIssue.status === "closed") {
1182
- throw new Error(`Cannot set parent to closed epic: ${parentId}`);
1182
+ throw new Error(`Cannot set parent to closed issue: ${parentId}`);
1183
1183
  }
1184
1184
  data.parent = parentId;
1185
1185
  }
@@ -2720,12 +2720,12 @@ data: ${message}
2720
2720
  res.status(400).json({ error: `Parent issue not found: ${parent}` });
2721
2721
  return;
2722
2722
  }
2723
- if (parentIssue.type !== "epic") {
2724
- res.status(400).json({ error: "Parent must be an epic" });
2723
+ if (parentIssue.type === "verification") {
2724
+ res.status(400).json({ error: "Verification issues cannot be parents" });
2725
2725
  return;
2726
2726
  }
2727
2727
  if (parentIssue.status === "closed") {
2728
- res.status(400).json({ error: "Cannot add children to a closed epic" });
2728
+ res.status(400).json({ error: "Cannot add children to a closed issue" });
2729
2729
  return;
2730
2730
  }
2731
2731
  }
@@ -2931,8 +2931,8 @@ data: ${message}
2931
2931
  res.status(400).json({ error: `Parent issue not found: ${parent}` });
2932
2932
  return;
2933
2933
  }
2934
- if (parentFound.issue.type !== "epic") {
2935
- res.status(400).json({ error: "Parent must be an epic" });
2934
+ if (parentFound.issue.type === "verification") {
2935
+ res.status(400).json({ error: "Verification issues cannot be parents" });
2936
2936
  return;
2937
2937
  }
2938
2938
  } else {
@@ -2941,8 +2941,8 @@ data: ${message}
2941
2941
  res.status(400).json({ error: `Parent issue not found: ${parent}` });
2942
2942
  return;
2943
2943
  }
2944
- if (parentIssue.type !== "epic") {
2945
- res.status(400).json({ error: "Parent must be an epic" });
2944
+ if (parentIssue.type === "verification") {
2945
+ res.status(400).json({ error: "Verification issues cannot be parents" });
2946
2946
  return;
2947
2947
  }
2948
2948
  }