What
Slice mode is chosen on byte sizes but slicing is capped on UTF-16 code units (mechanical 1.4): sumFileSizes sums stat().size and feeds resolveSliceMode (core/broadside/repo.ts:606), while slurpFileList compares running + block.length in characters (:568). For non-ASCII content the two disagree, so a repository can be sliced per directory when one slice would do, or the other way round.
Fix
Measure both on the same unit — read lengths in characters when choosing the mode (the files are read anyway), or cap slices in bytes.
Found by the 2026-09-15 self-audit (full-with-deep-audit on this repository at a159d6c, v0.25.0 + #353, ollama-cloud/deepseek-v4.1-flash); confirmed by reading before filing. Report and finding id in self-audit/2026-09-15-v0.25.0-full-with-deep-audit/REVIEW.md.
🤖 Generated with Claude Code
What
Slice mode is chosen on byte sizes but slicing is capped on UTF-16 code units (mechanical 1.4):
sumFileSizessumsstat().sizeand feedsresolveSliceMode(core/broadside/repo.ts:606), whileslurpFileListcomparesrunning + block.lengthin characters (:568). For non-ASCII content the two disagree, so a repository can be sliced per directory when one slice would do, or the other way round.Fix
Measure both on the same unit — read lengths in characters when choosing the mode (the files are read anyway), or cap slices in bytes.
Found by the 2026-09-15 self-audit (
full-with-deep-auditon this repository ata159d6c, v0.25.0 + #353,ollama-cloud/deepseek-v4.1-flash); confirmed by reading before filing. Report and finding id inself-audit/2026-09-15-v0.25.0-full-with-deep-audit/REVIEW.md.🤖 Generated with Claude Code