breakaway 1.4.0-main.48 → 1.4.0-main.49

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.4.0-main.48",
3
+ "version": "1.4.0-main.49",
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",
@@ -558,3 +558,17 @@ export function specLines(spec) {
558
558
  out.push('', `Refine it: npx breakaway agents new --spec ${spec.path} "<what should change>"`);
559
559
  return out;
560
560
  }
561
+
562
+ /**
563
+ * What's left by hand once `repos remove` took a repository off the board (CLI-4): the board can't delete its routine
564
+ * on claude.ai, connected or not, nor the repository on GitHub. `repos remove` ends with these, and `--json` carries
565
+ * them as `byHand`.
566
+ * @param {string} github the repository, as owner/name
567
+ * @returns {string[]}
568
+ */
569
+ export function removedRepoByHand(github) {
570
+ return [
571
+ `Delete its routine on claude.ai, with its API trigger: open claude.ai/code/routines, then the routine for ${github}. The board can't delete it, whether or not it was connected.`,
572
+ `Made ${github} only for a rehearsal? Delete it on GitHub too (Settings, then Danger zone; or gh auth refresh -h github.com -s delete_repo once, then gh repo delete ${github}), and your local clone.`,
573
+ ];
574
+ }
package/scripts/tasks.mjs CHANGED
@@ -74,6 +74,7 @@ import {
74
74
  reviewRequest,
75
75
  staleCliWarning,
76
76
  releaseBehind,
77
+ removedRepoByHand,
77
78
  unknownSubcommand,
78
79
  } from './tasks/cli.js';
79
80
  import { mergeViews, pelotonLines, pelotonPost, pickPeloton } from './tasks/peloton.js';
@@ -2143,7 +2144,10 @@ async function promptAnswers() {
2143
2144
  return answers;
2144
2145
  }
2145
2146
 
2146
- /** repos remove (CLD-191): the board takes it off, then its routine leaves the Secrets Store and this machine's copy. */
2147
+ /**
2148
+ * repos remove (CLD-191): the board takes it off, then its routine leaves the Secrets Store and this machine's copy.
2149
+ * It ends with what's left by hand on claude.ai and GitHub (CLI-4).
2150
+ */
2147
2151
  async function removeRepo(slug, signer) {
2148
2152
  const { default: fallback } = await call('GET', 'repos');
2149
2153
  // Dropping a routine this machine connected rewrites the ROUTINES secret: check before anything changes.
@@ -2177,7 +2181,10 @@ async function removeRepo(slug, signer) {
2177
2181
  }
2178
2182
  }
2179
2183
  }
2180
- print(res, () => lines.join('\n'));
2184
+ // Said whether or not the board had a routine connected: it can't delete one on claude.ai either way (CLI-4).
2185
+ const byHand = removedRepoByHand(res.removed.github);
2186
+ lines.push('', 'Left to do by hand:', ...byHand.map((step) => ` - ${step}`));
2187
+ print({ ...res, byHand }, () => lines.join('\n'));
2181
2188
  }
2182
2189
 
2183
2190
  // ---- credentials -------------------------------------------------------------------------