KeyTips: prefix-free collision suffixes (0-9A-Z, fixed width per group, clear of explicit keys) - #77
Merged
Merged
Conversation
…at a fixed width per letter group, clear of explicit keys The digit suffixes broke past nine colliders: 'B1' became a prefix of 'B10' and could never commit (maintainer, 2026-09-12). Suffixes now draw from 0–9A–Z at a FIXED width per letter group — one character for up to 36 colliders, two beyond (B00 … B10), and so on — so no sibling's suffix prefixes another's. A generated suffix that would land on an explicit key is skipped (an explicit B1 beside two auto Bs yields B0/B2), and a lone auto letter that an explicit key extends (auto C beside explicit CX, a dead prefix) is suffixed so it can commit. Explicit keys are still reserved first; duplicates still drop with a diagnostic. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013qbF5ru6uh5w7fqhP3yoPE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up on the same branch as #76 (merged, branch kept).
The digit suffixes broke past nine colliders:
B1became a prefix ofB10and could never commit. Suffixes now draw from0-9A-Zat a fixed width per letter group — one character for up to 36 colliders, two beyond (B00…B10), and so on — so no sibling's suffix prefixes another's. Two related holes closed while there: a generated suffix that would land on an explicit key is skipped (an explicitB1beside two autoBs yieldsB0/B2), and a lone auto letter that an explicit key extends (autoCbeside explicitCX, a dead prefix) is suffixed so it can commit. Explicit keys are still reserved first; duplicates still drop with a diagnostic.Tests: eleven colliders take
0-9thenA; thirty-seven widen the whole group to two characters and are checked pairwise prefix-free; explicit-key avoidance and the dead-prefix case; an alphabetic suffix drills (B,A). Bars 322 green.🤖 Generated with Claude Code
https://claude.ai/code/session_013qbF5ru6uh5w7fqhP3yoPE