breakaway 1.2.1-main.28 → 1.2.1-main.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "breakaway",
3
- "version": "1.2.1-main.28",
3
+ "version": "1.2.1-main.29",
4
4
  "description": "The task board for you and your coding agents: a Cloudflare Worker, its web app, Taskwarrior sync, and the CLI (npx breakaway).",
5
5
  "license": "FSL-1.1-Apache-2.0",
6
6
  "type": "module",
package/scripts/tasks.mjs CHANGED
@@ -231,6 +231,8 @@ Working
231
231
  --pipeline <file.json|none> sets its deploy pipeline ({"workers": {"staging", "production"}, "workflows": {...}, "deployPaths"}) or clears it
232
232
  features add <slug> new feature: its tasks join by carrying <slug> as a tag [--title <text>]
233
233
  [--brief <text> | --brief-file <path>] [--release <x.y.z>] (agents add one without a release)
234
+ --from <ref> (owner): made from the group <ref> is in on the Dependencies view: its open tasks
235
+ join, and tasks already in another feature stay there
234
236
  features modify <slug> change one (owner): --title, --brief, --brief-file, --release <x.y.z|none>, --state open|shipped
235
237
  routines add <slug> new routine (owner) --name <text> --prompt <text> | --prompt-file <path> [--done-when <text>] [--horizon now|next|later] [--gap <minutes>] [--daily <n>]
236
238
  [--repo <slug>] the repository it runs in (default: the checkout's)
@@ -1083,11 +1085,18 @@ const commands = {
1083
1085
  const by = opts.as ?? setting('AGENT');
1084
1086
  if (sub === 'add') {
1085
1087
  const slug = need(args[1], 'slug').toLowerCase();
1086
- const { feature } = await call('POST', 'features', { slug, ...body(), ...(by ? { by } : {}) });
1087
- print({ feature }, (d) =>
1088
+ const from = opts.from === undefined ? {} : { from: opts.from };
1089
+ const added = await call('POST', 'features', { slug, ...body(), ...from, ...(by ? { by } : {}) });
1090
+ print(added, (d) =>
1088
1091
  [
1089
1092
  `Added the feature ${d.feature.slug}${d.feature.release ? `, aimed at ${d.feature.release}` : ''}: ${progressLine(d.feature.progress)}.`,
1090
- `Tasks join it by the tag: npx breakaway modify <ref> --tag ${d.feature.slug}`,
1093
+ ...(d.joined
1094
+ ? [
1095
+ `Joined by its tag: ${d.joined.join(', ')}.`,
1096
+ ...d.kept.map((k) => `${k.wid} stays in ${k.feature}: a task is in one feature.`),
1097
+ `Chase it: npx breakaway chase ${d.feature.slug}`,
1098
+ ]
1099
+ : [`Tasks join it by the tag: npx breakaway modify <ref> --tag ${d.feature.slug}`]),
1091
1100
  ].join('\n'),
1092
1101
  );
1093
1102
  return;
@@ -4,5 +4,5 @@
4
4
  * and how to update it. scripts/tasks/version.test.js fails when the copied files change and this doesn't:
5
5
  * so it lives in the board's package (CLD-135) and the CLI imports it from here.
6
6
  */
7
- export const CLI_VERSION = 59;
8
- export const CLI_FINGERPRINT = '99b886c47f74a427';
7
+ export const CLI_VERSION = 60;
8
+ export const CLI_FINGERPRINT = 'faef5017c4405443';