commits
Sync opam package metadata including x-maintenance-intent
and external dependency specifications.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add README files for jsonwt, owntracks, monopam, and srcsetter
- Fix langdetect language count (47→49) in dune-project
- Remove unused variable in crockford encode function
- Improve retention type documentation in zulip channels.mli
- Refactor conpool is_healthy to reduce nesting and improve clarity
- Document unimplemented IDNA features in punycode README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Chunk profile arrays for WASM compatibility (max 9000 elements per chunk)
to work around wasm_of_ocaml's 10,000 operand limit for array_new_fixed
- Add proper Unicode normalization matching the original Java implementation:
- Hangul syllables → '가' (U+AC00)
- Hiragana → 'あ' (U+3042)
- Katakana → 'ア' (U+30A2)
- Bopomofo → 'ㄅ' (U+3105)
- Add JS/WASM mode selector to test.html with localStorage persistence
- Fix browser tests to use deterministic seed per test
- Korean and Japanese now detect correctly in both native and browser
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New langdetect-js package provides:
- JavaScript API via js_of_ocaml (langdetect.detect, detectAll, etc.)
- Browser-based regression tests across 37 languages
- Interactive demo page (test.html)
Build with: opam exec -- dune build lib/js/
Open test.html in browser to run tests and try the demo.
API:
langdetect.detect(text) → lang code or null
langdetect.detectWithProb(text) → {lang, prob} or null
langdetect.detectAll(text) → [{lang, prob}, ...]
langdetect.languages() → array of supported language codes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reduces binary size by ~75% (115MB → 28MB static library) by:
- Using a shared string table for all 172K unique n-grams
- Storing profile data as a single flat int array (662K elements)
- Using offset-based access with (lang_code, start_idx, num_pairs)
This format is compatible with WASM/js_of_ocaml (31-bit safe ints)
and eliminates duplication across 47 language profiles.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add README files for jsonwt, owntracks, monopam, and srcsetter
- Fix langdetect language count (47→49) in dune-project
- Remove unused variable in crockford encode function
- Improve retention type documentation in zulip channels.mli
- Refactor conpool is_healthy to reduce nesting and improve clarity
- Document unimplemented IDNA features in punycode README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Chunk profile arrays for WASM compatibility (max 9000 elements per chunk)
to work around wasm_of_ocaml's 10,000 operand limit for array_new_fixed
- Add proper Unicode normalization matching the original Java implementation:
- Hangul syllables → '가' (U+AC00)
- Hiragana → 'あ' (U+3042)
- Katakana → 'ア' (U+30A2)
- Bopomofo → 'ㄅ' (U+3105)
- Add JS/WASM mode selector to test.html with localStorage persistence
- Fix browser tests to use deterministic seed per test
- Korean and Japanese now detect correctly in both native and browser
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New langdetect-js package provides:
- JavaScript API via js_of_ocaml (langdetect.detect, detectAll, etc.)
- Browser-based regression tests across 37 languages
- Interactive demo page (test.html)
Build with: opam exec -- dune build lib/js/
Open test.html in browser to run tests and try the demo.
API:
langdetect.detect(text) → lang code or null
langdetect.detectWithProb(text) → {lang, prob} or null
langdetect.detectAll(text) → [{lang, prob}, ...]
langdetect.languages() → array of supported language codes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reduces binary size by ~75% (115MB → 28MB static library) by:
- Using a shared string table for all 172K unique n-grams
- Storing profile data as a single flat int array (662K elements)
- Using offset-based access with (lang_code, start_idx, num_pairs)
This format is compatible with WASM/js_of_ocaml (31-bit safe ints)
and eliminates duplication across 47 language profiles.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>