The CLI source (242 files, ~14k lines) was gitignored during the earlier cli→cli-v2 reorg so only the published npm package carried it. That blocks the GitHub Actions release workflow (release-cli.yml), which clones the repo fresh on each runner and needs the source to compile binaries via `bun build --compile`. Moves the gitignore from root-level to `apps/cli-v2/.gitignore` with only the usual build artefacts excluded (node_modules, dist, .turbo, .cache). Source is now in git at apps/cli-v2/src/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
803 B
TypeScript
26 lines
803 B
TypeScript
/**
|
|
* `claudemesh leave <slug>` — remove a mesh from local config.
|
|
*
|
|
* Does NOT (yet) notify the broker. In 15b+ this will send a
|
|
* best-effort revoke request before removing the entry.
|
|
*/
|
|
|
|
import { readConfig, writeConfig } from "~/services/config/facade.js";
|
|
|
|
export function runLeave(args: string[]): void {
|
|
const slug = args[0];
|
|
if (!slug) {
|
|
console.error("Usage: claudemesh leave <slug>");
|
|
process.exit(1);
|
|
}
|
|
const config = readConfig();
|
|
const before = config.meshes.length;
|
|
config.meshes = config.meshes.filter((m) => m.slug !== slug);
|
|
if (config.meshes.length === before) {
|
|
console.error(`claudemesh: no joined mesh with slug "${slug}"`);
|
|
process.exit(1);
|
|
}
|
|
writeConfig(config);
|
|
console.log(`Left mesh "${slug}". Remaining: ${config.meshes.length}`);
|
|
}
|