Steve Yegge
b4cb636d92
Switch from hex to Base36 encoding for issue IDs (GH #213 )
...
This change improves information density by using Base36 (0-9, a-z) instead
of hex (0-9, a-f) for hash-based issue IDs. Key benefits:
- Shorter IDs: Can now use 3-char IDs (was 4-char minimum)
- Better scaling: 3 chars good for ~160 issues, 4 chars for ~980 issues
- Case-insensitive: Maintains excellent CLI usability
- Backward compatible: Old hex IDs continue to work
Changes:
- Implemented Base36 encoding with proper truncation (keep LSB)
- Updated adaptive length thresholds (3-8 chars instead of 4-8)
- Fixed collision probability math to match encoding (was calculating
for base36 but encoding in hex - now both use base36)
- Fixed ID parser bug (use prefixWithHyphen for substring matching)
- Updated all tests and test data patterns
Fixes #213
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-03 12:02:15 -08:00
..
2025-11-03 12:02:15 -08:00
2025-10-31 18:40:32 -07:00
2025-11-02 15:39:00 -08:00
2025-11-02 10:01:38 -08:00
2025-11-02 10:38:24 -08:00
2025-10-27 20:08:50 -07:00
2025-10-30 15:41:46 -07:00
2025-11-01 11:11:20 -07:00
2025-10-31 22:39:53 -07:00
2025-11-02 15:37:57 -08:00
2025-10-31 21:51:54 -07:00
2025-11-02 18:52:44 -08:00
2025-11-02 08:55:34 -08:00
2025-11-02 08:09:58 -08:00
2025-11-01 19:20:01 -07:00
2025-10-29 12:32:27 -07:00
2025-10-29 22:55:13 -07:00
2025-11-01 23:56:03 -07:00
2025-11-01 19:50:34 -07:00
2025-11-02 08:30:31 -08:00
2025-11-01 19:20:01 -07:00
2025-11-01 19:20:01 -07:00
2025-11-02 20:06:05 -08:00
2025-11-02 20:16:40 -08:00
2025-11-01 21:27:09 -07:00
2025-11-02 20:06:05 -08:00
2025-10-29 15:30:47 -07:00
2025-10-29 15:53:41 -07:00
2025-10-29 11:47:40 -07:00
2025-11-01 23:56:03 -07:00
2025-11-02 08:09:58 -08:00
2025-10-31 18:40:32 -07:00
2025-11-02 18:52:44 -08:00
2025-11-02 18:52:44 -08:00
2025-10-31 15:11:29 -07:00
2025-11-02 22:34:24 -08:00
2025-11-02 08:09:58 -08:00
2025-11-02 17:09:39 -08:00
2025-11-02 17:14:22 -08:00
2025-11-02 18:52:44 -08:00
2025-11-01 11:11:20 -07:00
2025-11-02 18:52:44 -08:00
2025-10-27 20:00:49 -07:00
2025-11-01 20:29:13 -07:00
2025-11-02 08:09:58 -08:00
2025-11-02 08:55:34 -08:00
2025-10-27 22:44:40 -07:00
2025-10-31 01:07:42 -07:00
2025-10-27 20:00:49 -07:00
2025-10-30 22:24:42 -07:00
2025-10-31 01:07:42 -07:00
2025-11-02 16:45:51 -08:00
2025-11-02 14:03:14 -08:00
2025-10-27 20:08:50 -07:00
2025-11-03 10:35:21 -08:00
2025-11-01 22:01:41 -07:00
2025-11-01 22:01:41 -07:00
2025-11-01 20:29:13 -07:00
2025-11-02 22:34:24 -08:00
2025-10-31 21:27:33 -07:00
2025-11-02 18:52:44 -08:00
2025-10-31 17:17:33 -07:00
2025-11-02 19:11:08 -08:00
2025-11-02 08:30:31 -08:00
2025-10-27 20:00:49 -07:00
2025-11-02 18:52:44 -08:00
2025-10-30 16:28:13 -07:00
2025-11-02 08:09:58 -08:00
2025-11-02 14:31:22 -08:00
2025-11-02 14:31:24 -08:00
2025-11-01 19:57:37 -07:00
2025-11-02 19:11:08 -08:00
2025-11-02 17:10:41 -08:00
2025-11-02 20:06:05 -08:00
2025-10-27 20:08:50 -07:00
2025-11-02 18:52:44 -08:00
2025-11-02 11:02:58 -08:00
2025-10-27 22:59:19 -07:00
2025-10-27 18:31:01 +00:00
2025-11-02 22:34:24 -08:00
2025-10-29 12:56:51 -07:00
2025-11-01 23:56:03 -07:00
2025-10-31 19:44:43 -07:00
2025-10-31 22:39:53 -07:00
2025-11-02 09:22:28 -08:00
2025-11-02 14:31:22 -08:00
2025-11-02 22:34:24 -08:00
2025-10-27 20:38:13 -07:00
2025-10-31 23:03:56 -07:00
2025-11-02 21:25:40 -08:00
2025-11-02 17:57:59 -08:00
2025-11-02 18:52:44 -08:00
2025-11-02 17:09:39 -08:00
2025-11-02 17:09:39 -08:00
2025-10-27 20:08:50 -07:00
2025-10-31 19:44:43 -07:00
2025-11-02 18:52:44 -08:00
2025-11-02 22:37:40 -08:00