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
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
bd rename-prefix kbrefuses: "Multiple prefixes detected ... Use --repair to consolidate."bd rename-prefix kb --repair --dry-runshows every renamed id becomes a fresh 8-hex hash: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 oncre-db-nwb.3 -> kb-374cce81 cre-db-c2a -> kb-cf9b29e7 cre-db-nwb.4 -> kb-cc56a703.beads/<id>) would need a hash lookup to survive.bd config set issue_prefix kbis refused ("use rename-prefix"), so there is also no way to say "mint new ids askb-*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)
--repairpreserves suffixes, minting a new id only on an actual collision (and reporting it), or a--keep-suffixflag 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(orrename-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.
Source: gastownhall/beads