feat: reduce default node ID length to 3 and auto-grow when exhausted

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 01:21:00 +02:00
parent 2a48ea046b
commit 5969a2591c

View File

@@ -265,8 +265,8 @@ func (s *txStore) NodeExists(id string) (bool, error) { return nodeExists(s.db,
// --- ID generation --- // --- ID generation ---
func genID() string { func genID(length int) string {
b := make([]byte, 5) b := make([]byte, length)
for i := range b { for i := range b {
b[i] = "abcdefghijklmnopqrstuvwxyz"[rand.Intn(26)] b[i] = "abcdefghijklmnopqrstuvwxyz"[rand.Intn(26)]
} }
@@ -274,14 +274,21 @@ func genID() string {
} }
func generateID(q querier) (string, error) { func generateID(q querier) (string, error) {
for { for length := 3; ; length++ {
id := genID() // Try up to 10*capacity attempts at this length before growing.
exists, err := nodeExists(q, id) capacity := 1
if err != nil { for i := 0; i < length; i++ {
return "", err capacity *= 26
} }
if !exists { for attempt := 0; attempt < 10*capacity; attempt++ {
return id, nil id := genID(length)
exists, err := nodeExists(q, id)
if err != nil {
return "", err
}
if !exists {
return id, nil
}
} }
} }
} }