Releases: rundax/SwitchFix
Releases · rundax/SwitchFix
v0.0.4
v0.0.3
SwitchFix v0.0.3
Highlights
- Introduced a new dictionary architecture with binary-format support and
mmaploading. - Added dictionary abstraction layer (
DictionaryIndex) so validation logic is storage-agnostic. - Implemented partitioned exact lookup and lazy trigram-based candidate retrieval for suggestions.
- Replaced per-call full-matrix Damerau-Levenshtein with an optimized rolling-row workspace.
- Updated startup behavior to avoid eager heavy prewarm on low-end machines.
Ukrainian Dictionary Size (vs v0.0.2)
- Single-word entries (
uk_UA.txt):320,307→2,958,567 - Increase:
+2,638,260words - Growth:
+823.67%(9.24x)
Word Combinations (multi-word phrases)
- In runtime
uk_UA.txt:0→0(phrases are intentionally excluded) - During merge processing,
16,764phrase lines fromuk_full.txtwere detected and filtered out from runtime dictionary.
Build and Packaging
- Added dictionary tooling:
scripts/merge_uk_dictionaries.pyscripts/compile_dictionary.swift
- Build pipeline now compiles dictionary binaries and packages them into app resources.
SwitchFix.appnow includes:en_US.binru_RU.binuk_UA.bin
insideSwitchFix_Dictionary.bundle.
Quality and Benchmarking
- Added performance test suite:
Sources/TestRunner/DictionaryPerformanceTests.swift
- Added baseline benchmark document:
plan/benchmarks/baseline_320k.md
- Validation status:
swift buildpassedswift run TestRunnerpassed (105 passed, 0 failed)
Notes
- App bundle size increased due the expanded Ukrainian dictionary dataset.
uk_full.txtremains source-only input for merge tooling and is not packaged as runtime dictionary.
v0.0.2
Full Changelog: v0.0.1...v0.0.2