#6591·beads

rename-prefix --repair replaces every id with a random hash; no way to consolidate prefixes while keeping suffixes, or to change the mint prefix alone

Author: cpliakasCreated Sep 16, 2026Updated Sep 16, 2026

bd version 1.2.2 (Homebrew), embedded Dolt, macOS.

Setup

A monorepo tracker that absorbed four project trackers. bd where reports prefix taxdb; the store holds seven id families (1,266 issues): taxdb-* 686, investment-advisor-* 391, kb-* 82 (hand-named via --id), cre-db-* 53, investment-* 43, rnd-db-* 11. Suffixes are the usual short base-36 (taxdb-u6ch) with dotted children (taxdb-5su1.13). Across all 1,266 ids only one suffix collides between families.

What I wanted

Consolidate on prefix kb and keep the suffixes: taxdb-u6ch → kb-u6ch, taxdb-5su1.13 → kb-5su1.13.

What happens

  1. bd rename-prefix kb refuses: "Multiple prefixes detected ... Use --repair to consolidate."
  2. bd rename-prefix kb --repair --dry-run shows every renamed id becomes a fresh 8-hex hash:
    cre-db-nwb.3 -> kb-374cce81
    cre-db-c2a   -> kb-cf9b29e7
    cre-db-nwb.4 -> kb-cc56a703
    1,185 issues would lose their mnemonic id and dotted children lose the visible parent. Every external reference (docs, ADRs, commit messages, memory indexes keyed on .beads/<id>) would need a hash lookup to survive.
  3. bd config set issue_prefix kb is refused ("use rename-prefix"), so there is also no way to say "mint new ids as kb-* from now on and leave existing ids alone" — which would have been enough for my case.

rename-prefix --help documents --repair as "consolidating multiple prefixes", and the single-prefix path's examples (knowledge-work- → kw-) read as suffix-preserving, so the hash minting on the repair path is surprising.

Asks (either would do)

  • --repair preserves suffixes, minting a new id only on an actual collision (and reporting it), or a --keep-suffix flag with the same behaviour and a refusal listing collisions.
  • A sanctioned way to change the mint prefix only, e.g. bd config set issue_prefix <p> --mint-only (or rename-prefix <p> --mint-only), leaving stored ids untouched. Related visibility issue: #3494; the half-migrated case in #4827 was a different failure (prefix doubling).

Happy to test a build.