feat: collapse mesh.name and mesh.slug into one identifier (v1.21.0)
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

Pre-launch fix: every visible surface already keyed on slug, so
"name" was a parallel string that only existed to confuse users
on rename ("I renamed but nothing visible changed").

Now slug IS the identifier. claudemesh rename <old> <new> is the
whole rename surface. PATCH /api/cli/meshes/:slug body becomes
{ slug } and the route writes both columns to keep them in sync.
Mesh create derives slug from input.name and stores name = slug.
Pickers drop the (parens). The claudemesh slug verb shipped 30
min ago is removed — merged into rename.

The mesh.name DB column stays for now to avoid touching ~25
reader sites; a follow-up migration drops it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-05-03 15:23:04 +01:00
parent 03cff156e2
commit 5785454ac9
15 changed files with 94 additions and 160 deletions

View File

@@ -1,10 +1,10 @@
import type { JoinedMesh } from "~/services/config/facade.js";
import { bold, dim } from "../styles.js";
import { bold } from "../styles.js";
export function renderMeshPicker(meshes: JoinedMesh[]): void {
console.log("\n Select a mesh:\n");
meshes.forEach((m, i) => {
console.log(" " + bold((i + 1) + ")") + " " + m.slug + " " + dim("(" + m.name + ")"));
console.log(" " + bold((i + 1) + ")") + " " + m.slug);
});
console.log("");
}