diff --git a/CHANGELOG.en.md b/CHANGELOG.en.md index 1f7072d..1698cb9 100644 --- a/CHANGELOG.en.md +++ b/CHANGELOG.en.md @@ -9,6 +9,12 @@ Korean version: [CHANGELOG.md](CHANGELOG.md). ## [Unreleased] +## [0.10.10] - 2026-10-23 + +### Changed + +- Android now keeps a fixed toolbar and a separate reading strip, with direct paste, clipboard and emoji access. Spacebar dragging moves the cursor without typing spaces. Neutral light/dark colors and clearer function keys simplify the keyboard. An in-keyboard settings panel saves system/light/dark themes, three key heights, haptics and key previews; changing theme or height preserves the current composition. + ## [0.10.9] - 2026-10-23 ### Added @@ -440,7 +446,8 @@ This version is **0.8.0**, not 0.7.1, because the pack file format changed. Pack - First release: English/Korean auto-decision input method for Windows (TSF), Tab completion, per-app rules, KakaoTalk compatibility. -[Unreleased]: https://github.com/iamallyouneed/tacit/compare/v0.10.9...HEAD +[Unreleased]: https://github.com/iamallyouneed/tacit/compare/v0.10.10...HEAD +[0.10.10]: https://github.com/iamallyouneed/tacit/compare/v0.10.9...v0.10.10 [0.10.9]: https://github.com/iamallyouneed/tacit/compare/v0.10.8...v0.10.9 [0.10.8]: https://github.com/iamallyouneed/tacit/compare/v0.10.7...v0.10.8 [0.10.7]: https://github.com/iamallyouneed/tacit/compare/v0.10.6...v0.10.7 diff --git a/CHANGELOG.md b/CHANGELOG.md index a1907a7..7bc1ca3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ GitHub 릴리스 노트가 되고 대시보드의 업데이트 탭에도 그대 ## [Unreleased] +## [0.10.10] - 2026-10-23 + +### 변경 + +- Android 키보드의 도구바와 후보 줄을 분리하고 붙여넣기·클립보드·이모지를 바로 열 수 있게 했습니다. 스페이스를 드래그하면 공백 입력 없이 커서를 옮깁니다. 밝은·어두운 모두 무채색으로 정리하고 기능 키 구분과 키 크기를 다듬었습니다. 키보드 안에서 시스템·라이트·다크 테마, 키 높이 3단계, 진동·키 미리보기를 설정하고 저장할 수 있으며, 테마와 높이를 바꿔도 작성 중인 조합을 유지합니다. + ## [0.10.9] - 2026-10-23 ### 추가 @@ -440,7 +446,8 @@ GitHub 릴리스 노트가 되고 대시보드의 업데이트 탭에도 그대 - 첫 공개: Windows용 영어·한국어 자동 판별 입력기(TSF), Tab 자동완성, 앱별 규칙, 카카오톡 호환. -[Unreleased]: https://github.com/iamallyouneed/tacit/compare/v0.10.9...HEAD +[Unreleased]: https://github.com/iamallyouneed/tacit/compare/v0.10.10...HEAD +[0.10.10]: https://github.com/iamallyouneed/tacit/compare/v0.10.9...v0.10.10 [0.10.9]: https://github.com/iamallyouneed/tacit/compare/v0.10.8...v0.10.9 [0.10.8]: https://github.com/iamallyouneed/tacit/compare/v0.10.7...v0.10.8 [0.10.7]: https://github.com/iamallyouneed/tacit/compare/v0.10.6...v0.10.7 diff --git a/Cargo.lock b/Cargo.lock index 0c1cf88..ab1f231 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -525,7 +525,7 @@ dependencies = [ [[package]] name = "tacit-android" -version = "0.10.9" +version = "0.10.10" dependencies = [ "jni", "tacit-core", @@ -533,14 +533,14 @@ dependencies = [ [[package]] name = "tacit-cli" -version = "0.10.9" +version = "0.10.10" dependencies = [ "tacit-core", ] [[package]] name = "tacit-config" -version = "0.10.9" +version = "0.10.10" dependencies = [ "getrandom 0.3.4", "serde", @@ -556,7 +556,7 @@ dependencies = [ [[package]] name = "tacit-core" -version = "0.10.9" +version = "0.10.10" dependencies = [ "memmap2", "serde", @@ -567,14 +567,14 @@ dependencies = [ [[package]] name = "tacit-ffi" -version = "0.10.9" +version = "0.10.10" dependencies = [ "tacit-core", ] [[package]] name = "tacit-packgen" -version = "0.10.9" +version = "0.10.10" dependencies = [ "serde_json", "sha2", @@ -583,7 +583,7 @@ dependencies = [ [[package]] name = "tacit-tip" -version = "0.10.9" +version = "0.10.10" dependencies = [ "tacit-core", "windows", diff --git a/README.en.md b/README.en.md index ee32e9d..5644e93 100644 --- a/README.en.md +++ b/README.en.md @@ -28,6 +28,7 @@ Type English, Korean, and Japanese on one QWERTY keyboard — it works out which

release + Total release downloads CI Rust Windows @@ -110,7 +111,7 @@ Re-running the command on an existing install is fine (enabled languages are kep ```powershell $i = [scriptblock]::Create((irm https://github.com/iamallyouneed/tacit/releases/latest/download/install.ps1)) & $i -Uninstall # remove (settings and language packs are kept) -& $i -Version v0.10.9 # pinned release +& $i -Version v0.10.10 # pinned release & $i -Japanese # also enable Japanese (adds to -Languages if given) ``` diff --git a/README.md b/README.md index b5fd44f..88adeaf 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@

release + 릴리스 누적 다운로드 수 CI Rust Windows @@ -112,7 +113,7 @@ irm https://github.com/iamallyouneed/tacit/releases/latest/download/install.ps1 ```powershell $i = [scriptblock]::Create((irm https://github.com/iamallyouneed/tacit/releases/latest/download/install.ps1)) & $i -Uninstall # 제거 (설정과 언어 팩은 남는다) -& $i -Version v0.10.9 # 특정 버전 +& $i -Version v0.10.10 # 특정 버전 & $i -Japanese # 일본어도 켠다 (-Languages 와 같이 쓰면 거기에 더한다) ``` diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 3741a21..d989df1 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tacit-cli" -version = "0.10.9" +version = "0.10.10" edition = "2021" license = "AGPL-3.0-only" repository = "https://github.com/iamallyouneed/tacit" diff --git a/crates/config/Cargo.toml b/crates/config/Cargo.toml index 3c0a260..bdb7258 100644 --- a/crates/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tacit-config" -version = "0.10.9" +version = "0.10.10" edition = "2021" license = "AGPL-3.0-only" repository = "https://github.com/iamallyouneed/tacit" diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index e20f8bf..0131953 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tacit-core" -version = "0.10.9" +version = "0.10.10" edition = "2021" rust-version = "1.89" license = "AGPL-3.0-only" diff --git a/crates/packgen/Cargo.toml b/crates/packgen/Cargo.toml index d16723a..e6ec24e 100644 --- a/crates/packgen/Cargo.toml +++ b/crates/packgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tacit-packgen" -version = "0.10.9" +version = "0.10.10" edition = "2021" license = "AGPL-3.0-only" repository = "https://github.com/iamallyouneed/tacit" diff --git a/docs/report/performance-enkoja.md b/docs/report/performance-enkoja.md index 7ecf34e..bec3eb4 100644 --- a/docs/report/performance-enkoja.md +++ b/docs/report/performance-enkoja.md @@ -24,7 +24,7 @@ cargo run --release --manifest-path lab/Cargo.toml -- --profile enkoja --save 직전 버전과 비교합니다. 기준선은 `lab/baseline-enkoja.tsv`이며, 영·한 기준선을 대신 사용하지 않습니다. 아래 수치는 동일 프로필 5회 실행의 중앙값입니다. -## 한눈에: 0.10.3 → 0.10.9 +## 한눈에: 0.10.9 → 0.10.10 ▲ 좋아짐 · ▼ 나빠짐 · = 동점/잡음(정확도 0.05%p, 지연 25% 안은 잡음으로 봄). 정확도는 높을수록, 크기·지연·메모리는 낮을수록 좋음. @@ -34,7 +34,7 @@ cargo run --release --manifest-path lab/Cargo.toml -- --profile enkoja --save 막대 범위: 영·한 80~100%, 일본어(ja.*) 0~100%. -| 지표 | 0.10.3 | 0.10.9 | 변화 | +| 지표 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | | `acc.ALL` | 99.52 `████████████` | 99.52 `████████████` | +0.00 = | | `acc.en.freq/none` | 98.85 `███████████░` | 98.85 `███████████░` | +0.00 = | @@ -63,7 +63,7 @@ cargo run --release --manifest-path lab/Cargo.toml -- --profile enkoja --save ### 유형별 시나리오 문장 정답률 (%, 높을수록 좋음, 막대 80~100 구간) -| 유형 | 0.10.3 | 0.10.9 | 변화 | +| 유형 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | | chat | 96.51 `██████████░░` | 96.51 `██████████░░` | +0.00 = | | dev | 98.98 `███████████░` | 98.98 `███████████░` | +0.00 = | @@ -72,43 +72,150 @@ cargo run --release --manifest-path lab/Cargo.toml -- --profile enkoja --save ### 크기 비교 (KiB, 낮을수록 좋음, 막대 표 안 최대 기준) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `tacit_tip.dll` (x64) | 962 `█░░░░░░░░░░░` | 968 `█░░░░░░░░░░░` | +6 (+0.6%) ▼ | -| `tacit_tip.dll` (x86) | 773 `█░░░░░░░░░░░` | 778 `█░░░░░░░░░░░` | +5 (+0.6%) ▼ | -| `tacit-config.exe` | 3285 `███░░░░░░░░░` | 3339 `███░░░░░░░░░` | +54 (+1.6%) ▼ | -| `tacit-windows-ja.zip` | 2389 `██░░░░░░░░░░` | 2418 `██░░░░░░░░░░` | +29 (+1.2%) ▼ | -| `tacit-pack-en-0.10.9.zip` | 446 `█░░░░░░░░░░░` | 446 `█░░░░░░░░░░░` | 0 = | -| `tacit-pack-ko-0.10.9.zip` | 450 `█░░░░░░░░░░░` | 451 `█░░░░░░░░░░░` | +1 (+0.2%) ▼ | -| `tacit-pack-ja-0.10.9.zip` | 14628 `████████████` | 14628 `████████████` | 0 = | +| `tacit_tip.dll` (x64) | 968 `█░░░░░░░░░░░` | 968 `█░░░░░░░░░░░` | 0 = | +| `tacit_tip.dll` (x86) | 778 `█░░░░░░░░░░░` | 778 `█░░░░░░░░░░░` | 0 = | +| `tacit-config.exe` | 3339 `███░░░░░░░░░` | 3339 `███░░░░░░░░░` | 0 = | +| `tacit-windows-ja.zip` | 2418 `██░░░░░░░░░░` | 2418 `██░░░░░░░░░░` | 0 = | +| `tacit-pack-en-0.10.10.zip` | 446 `█░░░░░░░░░░░` | 446 `█░░░░░░░░░░░` | 0 = | +| `tacit-pack-ko-0.10.10.zip` | 451 `█░░░░░░░░░░░` | 450 `█░░░░░░░░░░░` | -1 (-0.2%) ▲ | +| `tacit-pack-ja-0.10.10.zip` | 14628 `████████████` | 14628 `████████████` | 0 = | ### 지연 비교 (µs 중앙값, 낮을수록 좋음, 막대 표 안 최대 기준) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `commit.avg_us` | 46.94 `█░░░░░░░░░░░` | 78.49 `█░░░░░░░░░░░` | +31.55 (+67.2%) ▼ | -| `commit.p50_us` | 42.50 `█░░░░░░░░░░░` | 68.40 `█░░░░░░░░░░░` | +25.90 (+60.9%) ▼ | -| `commit.p95_us` | 99.90 `█░░░░░░░░░░░` | 172.30 `██░░░░░░░░░░` | +72.40 (+72.5%) ▼ | -| `commit.p99_us` | 143.50 `██░░░░░░░░░░` | 257.60 `████░░░░░░░░` | +114.10 (+79.5%) ▼ | -| `keystroke.avg_us` | 22.07 `█░░░░░░░░░░░` | 37.14 `█░░░░░░░░░░░` | +15.07 (+68.3%) ▼ | -| `keystroke.p50_us` | 14.00 `█░░░░░░░░░░░` | 22.70 `█░░░░░░░░░░░` | +8.70 (+62.1%) ▼ | -| `keystroke.p95_us` | 64.30 `█░░░░░░░░░░░` | 111.00 `██░░░░░░░░░░` | +46.70 (+72.6%) ▼ | -| `keystroke.p99_us` | 101.30 `█░░░░░░░░░░░` | 181.80 `███░░░░░░░░░` | +80.50 (+79.5%) ▼ | -| `ja.convert.avg_us` | 191.27 `███░░░░░░░░░` | 360.45 `█████░░░░░░░` | +169.18 (+88.5%) ▼ | -| `ja.convert.p50_us` | 173.10 `██░░░░░░░░░░` | 317.00 `████░░░░░░░░` | +143.90 (+83.1%) ▼ | -| `ja.convert.p95_us` | 320.90 `████░░░░░░░░` | 592.00 `████████░░░░` | +271.10 (+84.5%) ▼ | -| `ja.convert.p99_us` | 386.00 `█████░░░░░░░` | 860.00 `████████████` | +474.00 (+122.8%) ▼ | +| `commit.avg_us` | 78.49 `█░░░░░░░░░░░` | 75.77 `█░░░░░░░░░░░` | -2.72 (-3.5%) = | +| `commit.p50_us` | 68.40 `█░░░░░░░░░░░` | 63.20 `█░░░░░░░░░░░` | -5.20 (-7.6%) = | +| `commit.p95_us` | 172.30 `██░░░░░░░░░░` | 170.40 `██░░░░░░░░░░` | -1.90 (-1.1%) = | +| `commit.p99_us` | 257.60 `████░░░░░░░░` | 238.70 `███░░░░░░░░░` | -18.90 (-7.3%) = | +| `keystroke.avg_us` | 37.14 `█░░░░░░░░░░░` | 34.50 `█░░░░░░░░░░░` | -2.64 (-7.1%) = | +| `keystroke.p50_us` | 22.70 `█░░░░░░░░░░░` | 20.80 `█░░░░░░░░░░░` | -1.90 (-8.4%) = | +| `keystroke.p95_us` | 111.00 `██░░░░░░░░░░` | 104.00 `█░░░░░░░░░░░` | -7.00 (-6.3%) = | +| `keystroke.p99_us` | 181.80 `███░░░░░░░░░` | 164.00 `██░░░░░░░░░░` | -17.80 (-9.8%) = | +| `ja.convert.avg_us` | 360.45 `█████░░░░░░░` | 339.06 `█████░░░░░░░` | -21.39 (-5.9%) = | +| `ja.convert.p50_us` | 317.00 `████░░░░░░░░` | 311.00 `████░░░░░░░░` | -6.00 (-1.9%) = | +| `ja.convert.p95_us` | 592.00 `████████░░░░` | 571.60 `████████░░░░` | -20.40 (-3.4%) = | +| `ja.convert.p99_us` | 860.00 `████████████` | 666.60 `█████████░░░` | -193.40 (-22.5%) = | ### 시작·메모리 비교 (낮을수록 좋음, 막대 행별 비교) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `load.ms` | 18.74 `███████░░░░░` | 30.86 `████████████` | +12.12 (+64.7%) ▼ | +| `load.ms` | 30.86 `████████████` | 19.83 `████████░░░░` | -11.03 (-35.7%) ▲ | | `heap.loaded_kb` | 2468.14 `████████████` | 2468.14 `████████████` | +0.00 (+0.0%) = | -| `heap.peak_kb` | 14047.56 `████████████` | 14047.65 `████████████` | +0.09 (+0.0%) = | -| `ja.load.ms` | 2.91 `██████░░░░░░` | 5.60 `████████████` | +2.69 (+92.4%) ▼ | +| `heap.peak_kb` | 14047.65 `████████████` | 14047.65 `████████████` | +0.00 (+0.0%) = | +| `ja.load.ms` | 5.60 `████████████` | 4.23 `█████████░░░` | -1.37 (-24.5%) = | | `ja.heap.loaded_kb` | 2998.60 `████████████` | 2998.60 `████████████` | +0.00 (+0.0%) = | +## 0.10.10 + +commit cfd3096, 2026-10-23, rustc 1.93.1 (01f6ddf75 2026-02-11) + +프로필: `enkoja` (영·한·일), lab 0.2.12. + +공통 정확도·시나리오는 해당 언어가 켜진 판별기로 측정합니다. acc.ALL은 영·한 공통 세트이며 일본어 정답률과 합산하지 않습니다. + +load.ms·heap.*는 판별기 시작/단어 평가 기준입니다. enkoja의 ja.load.ms·ja.heap.loaded_kb는 별도 가나→한자 변환기 초기화/힙 증가입니다. 영·한판(tacit-windows.zip)과 일본어 포함판(tacit-windows-ja.zip)은 프로그램과 설치 zip이 다르고, 팩 목록도 활성 언어에 따라 다릅니다. + +### 크기 (KiB) + +| 항목 | KiB | +| --- | ---: | +| `tacit_tip.dll` (x64) | 968 | +| `tacit_tip.dll` (x86) | 778 | +| `tacit-config.exe` | 3339 | +| `tacit-windows-ja.zip` | 2418 | +| `tacit-pack-en-0.10.10.zip` | 446 | +| `tacit-pack-ko-0.10.10.zip` | 450 | +| `tacit-pack-ja-0.10.10.zip` | 14628 | + +### 정확도 (%) + +| 세트 | 정확도 | +| --- | ---: | +| `acc.ALL` | 99.52 | +| `acc.en.freq/none` | 98.85 | +| `acc.en.freq/after-ko` | 98.80 | +| `acc.ko.words/none` | 100.00 | +| `acc.ko.vocab/none` | 100.00 | +| `big.ko.sent.sentence` | 99.03 | +| `big.ko.sent.token` | 99.81 | +| `big.ko.phrase.sentence` | 99.37 | +| `big.ko.long.sentence` | 97.70 | +| `big.en.sent.sentence` | 99.90 | +| `big.cs.particle.sentence` | 99.06 | +| `big.cs.particle.token` | 99.85 | +| `big.cs_heldout.particle.sentence` | 98.95 | +| `big.cs.bare.sentence` | 96.94 | +| `big.cs.number.sentence` | 99.05 | +| `big.ko.title.none` | 99.87 | +| `big.ko.title.after-en` | 99.37 | +| `big.learn.other_forms_before` | 100.00 | +| `big.learn.other_forms_after` | 100.00 | +| `ja.convert.ALL.top1` | 85.94 | +| `ja.convert.ALL.top5` | 96.88 | +| `ja.detect.none.top1` | 100.00 | +| `ja.detect.after-ja.top1` | 100.00 | +| `ja.guard.english.top1` | 100.00 | + +### 유형별 시나리오 (문장 정답률 %, token은 단어 단위, chain은 4문장 이어 입력) + +| 유형 | 문장 | token | chain.token | µs/글자 | +| --- | ---: | ---: | ---: | ---: | +| chat | 96.51 | 98.78 | 99.17 | 7.08 | +| dev | 98.98 | 99.69 | 99.37 | 7.24 | +| writing | 98.78 | 99.77 | 99.75 | 8.34 | +| 전체 | 98.12 | 99.50 | | | + +| 시나리오 | 문장 정답률 | +| --- | ---: | +| `chat.brand` | 100.00 | +| `chat.casual` | 100.00 | +| `chat.english` | 100.00 | +| `chat.loan` | 92.31 | +| `chat.number` | 100.00 | +| `chat.punct` | 100.00 | +| `chat.slang` | 88.24 | +| `dev.commit` | 100.00 | +| `dev.error` | 100.00 | +| `dev.identifier` | 100.00 | +| `dev.issue` | 100.00 | +| `dev.review` | 100.00 | +| `dev.terminal` | 96.00 | +| `dev.tool` | 100.00 | +| `writing.academic` | 92.86 | +| `writing.email` | 100.00 | +| `writing.english` | 100.00 | +| `writing.essay` | 100.00 | +| `writing.formal` | 100.00 | +| `writing.long` | 100.00 | +| `writing.numbers` | 100.00 | +| `writing.quote` | 100.00 | + +### 속도·메모리 (중앙값, 5회) + +| 항목 | 값 | +| --- | ---: | +| `commit.avg_us` | 75.77 | +| `commit.p50_us` | 63.20 | +| `commit.p95_us` | 170.40 | +| `commit.p99_us` | 238.70 | +| `keystroke.avg_us` | 34.50 | +| `keystroke.p50_us` | 20.80 | +| `keystroke.p95_us` | 104.00 | +| `keystroke.p99_us` | 164.00 | +| `ja.convert.avg_us` | 339.06 | +| `ja.convert.p50_us` | 311.00 | +| `ja.convert.p95_us` | 571.60 | +| `ja.convert.p99_us` | 666.60 | +| `load.ms` | 19.83 | +| `heap.loaded_kb` | 2468.14 | +| `heap.peak_kb` | 14047.65 | +| `ja.load.ms` | 4.23 | +| `ja.heap.loaded_kb` | 2998.60 | + ## 0.10.9 commit b58cc6d, 2026-10-23, rustc 1.93.1 (01f6ddf75 2026-02-11) diff --git a/docs/report/performance.md b/docs/report/performance.md index 04ffbb8..430823e 100644 --- a/docs/report/performance.md +++ b/docs/report/performance.md @@ -86,7 +86,7 @@ sh lab/report.sh --profile enkoja > section-enkoja.md # 별도 영·한·일 문 - 기준선 저장도 프로필별입니다: `cargo run --release --manifest-path lab/Cargo.toml -- --profile enko --save`는 `lab/baseline-enko.tsv`, `--profile enkoja --save`는 `lab/baseline-enkoja.tsv`만 갱신합니다. 기본값은 `enko`입니다. - **이전 버전과 비교할 때는 같은 lab으로 잽니다.** 세트와 데이터가 달라지면 같은 코드도 수치가 달라집니다. 새 worktree 둘을 만들어 한쪽에만 `git restore --source=<이전 태그> --worktree --staged crates/core`를 하고(코어에 없는 API를 쓰는 `lab/src/tune.rs` 같은 파일은 그 worktree에서만 비활성으로 바꿉니다), 각각 `lab/data`를 **복사**해 두고 5회씩 돌려 중앙값을 냅니다. `lab/data`를 junction이나 링크로 연결한 worktree를 `git worktree remove --force` 하면 링크 너머의 실제 데이터까지 지워집니다. -## 한눈에: 0.10.3 → 0.10.9 +## 한눈에: 0.10.9 → 0.10.10 ▲ 좋아짐 · ▼ 나빠짐 · = 동점/잡음(정확도 0.05%p, 지연 25% 안은 잡음으로 봄). 정확도는 높을수록, 크기·지연·메모리는 낮을수록 좋음. @@ -96,7 +96,7 @@ sh lab/report.sh --profile enkoja > section-enkoja.md # 별도 영·한·일 문 막대 범위: 영·한 80~100%, 일본어(ja.*) 0~100%. -| 지표 | 0.10.3 | 0.10.9 | 변화 | +| 지표 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | | `acc.ALL` | 99.69 `████████████` | 99.69 `████████████` | +0.00 = | | `acc.en.freq/none` | 99.50 `████████████` | 99.50 `████████████` | +0.00 = | @@ -120,7 +120,7 @@ sh lab/report.sh --profile enkoja > section-enkoja.md # 별도 영·한·일 문 ### 유형별 시나리오 문장 정답률 (%, 높을수록 좋음, 막대 80~100 구간) -| 유형 | 0.10.3 | 0.10.9 | 변화 | +| 유형 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | | chat | 96.51 `██████████░░` | 96.51 `██████████░░` | +0.00 = | | dev | 98.98 `███████████░` | 98.98 `███████████░` | +0.00 = | @@ -129,35 +129,130 @@ sh lab/report.sh --profile enkoja > section-enkoja.md # 별도 영·한·일 문 ### 크기 비교 (KiB, 낮을수록 좋음, 막대 표 안 최대 기준) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `tacit_tip.dll` (x64) | 747 `███░░░░░░░░░` | 756 `███░░░░░░░░░` | +9 (+1.2%) ▼ | -| `tacit_tip.dll` (x86) | 613 `██░░░░░░░░░░` | 620 `██░░░░░░░░░░` | +7 (+1.1%) ▼ | -| `tacit-config.exe` | 3100 `████████████` | 3158 `████████████` | +58 (+1.9%) ▼ | -| `tacit-windows.zip` | 2150 `████████░░░░` | 2182 `████████░░░░` | +32 (+1.5%) ▼ | -| `tacit-pack-en-0.10.9.zip` | 446 `██░░░░░░░░░░` | 446 `██░░░░░░░░░░` | 0 = | -| `tacit-pack-ko-0.10.9.zip` | 451 `██░░░░░░░░░░` | 451 `██░░░░░░░░░░` | 0 = | +| `tacit_tip.dll` (x64) | 756 `███░░░░░░░░░` | 756 `███░░░░░░░░░` | 0 = | +| `tacit_tip.dll` (x86) | 620 `██░░░░░░░░░░` | 620 `██░░░░░░░░░░` | 0 = | +| `tacit-config.exe` | 3158 `████████████` | 3158 `████████████` | 0 = | +| `tacit-windows.zip` | 2182 `████████░░░░` | 2182 `████████░░░░` | 0 = | +| `tacit-pack-en-0.10.10.zip` | 446 `██░░░░░░░░░░` | 446 `██░░░░░░░░░░` | 0 = | +| `tacit-pack-ko-0.10.10.zip` | 451 `██░░░░░░░░░░` | 450 `██░░░░░░░░░░` | -1 (-0.2%) ▲ | ### 지연 비교 (µs 중앙값, 낮을수록 좋음, 막대 표 안 최대 기준) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `commit.avg_us` | 10.48 `██░░░░░░░░░░` | 15.84 `██░░░░░░░░░░` | +5.36 (+51.1%) ▼ | -| `commit.p50_us` | 9.00 `█░░░░░░░░░░░` | 12.80 `██░░░░░░░░░░` | +3.80 (+42.2%) ▼ | -| `commit.p95_us` | 19.80 `███░░░░░░░░░` | 26.30 `████░░░░░░░░` | +6.50 (+32.8%) ▼ | -| `commit.p99_us` | 37.00 `█████░░░░░░░` | 56.50 `████████░░░░` | +19.50 (+52.7%) ▼ | -| `keystroke.avg_us` | 9.70 `█░░░░░░░░░░░` | 15.18 `██░░░░░░░░░░` | +5.48 (+56.5%) ▼ | -| `keystroke.p50_us` | 7.60 `█░░░░░░░░░░░` | 10.70 `██░░░░░░░░░░` | +3.10 (+40.8%) ▼ | -| `keystroke.p95_us` | 22.80 `███░░░░░░░░░` | 33.70 `█████░░░░░░░` | +10.90 (+47.8%) ▼ | -| `keystroke.p99_us` | 50.30 `███████░░░░░` | 83.60 `████████████` | +33.30 (+66.2%) ▼ | +| `commit.avg_us` | 15.84 `██░░░░░░░░░░` | 19.04 `██░░░░░░░░░░` | +3.20 (+20.2%) = | +| `commit.p50_us` | 12.80 `██░░░░░░░░░░` | 13.70 `██░░░░░░░░░░` | +0.90 (+7.0%) = | +| `commit.p95_us` | 26.30 `███░░░░░░░░░` | 31.40 `████░░░░░░░░` | +5.10 (+19.4%) = | +| `commit.p99_us` | 56.50 `███████░░░░░` | 75.00 `█████████░░░` | +18.50 (+32.7%) ▼ | +| `keystroke.avg_us` | 15.18 `██░░░░░░░░░░` | 17.06 `██░░░░░░░░░░` | +1.88 (+12.4%) = | +| `keystroke.p50_us` | 10.70 `█░░░░░░░░░░░` | 11.50 `█░░░░░░░░░░░` | +0.80 (+7.5%) = | +| `keystroke.p95_us` | 33.70 `████░░░░░░░░` | 37.10 `█████░░░░░░░` | +3.40 (+10.1%) = | +| `keystroke.p99_us` | 83.60 `██████████░░` | 97.70 `████████████` | +14.10 (+16.9%) = | ### 시작·메모리 비교 (낮을수록 좋음, 막대 행별 비교) -| 항목 | 0.10.3 | 0.10.9 | 변화 | +| 항목 | 0.10.9 | 0.10.10 | 변화 | | --- | ---: | ---: | ---: | -| `load.ms` | 1.57 `██████░░░░░░` | 3.19 `████████████` | +1.62 (+103.2%) ▼ | +| `load.ms` | 3.19 `███████████░` | 3.47 `████████████` | +0.28 (+8.8%) = | | `heap.loaded_kb` | 52.67 `████████████` | 52.67 `████████████` | +0.00 (+0.0%) = | -| `heap.peak_kb` | 11628.73 `████████████` | 11628.82 `████████████` | +0.09 (+0.0%) = | +| `heap.peak_kb` | 11628.82 `████████████` | 11628.82 `████████████` | +0.00 (+0.0%) = | + +## 0.10.10 + +commit cfd3096, 2026-10-23, rustc 1.93.1 (01f6ddf75 2026-02-11) + +프로필: `enko` (영·한), lab 0.2.12. + +공통 정확도·시나리오는 해당 언어가 켜진 판별기로 측정합니다. acc.ALL은 영·한 공통 세트이며 일본어 정답률과 합산하지 않습니다. + +load.ms·heap.*는 판별기 시작/단어 평가 기준입니다. enkoja의 ja.load.ms·ja.heap.loaded_kb는 별도 가나→한자 변환기 초기화/힙 증가입니다. 영·한판(tacit-windows.zip)과 일본어 포함판(tacit-windows-ja.zip)은 프로그램과 설치 zip이 다르고, 팩 목록도 활성 언어에 따라 다릅니다. + +### 크기 (KiB) + +| 항목 | KiB | +| --- | ---: | +| `tacit_tip.dll` (x64) | 756 | +| `tacit_tip.dll` (x86) | 620 | +| `tacit-config.exe` | 3158 | +| `tacit-windows.zip` | 2182 | +| `tacit-pack-en-0.10.10.zip` | 446 | +| `tacit-pack-ko-0.10.10.zip` | 450 | + +### 정확도 (%) + +| 세트 | 정확도 | +| --- | ---: | +| `acc.ALL` | 99.69 | +| `acc.en.freq/none` | 99.50 | +| `acc.en.freq/after-ko` | 99.45 | +| `acc.ko.words/none` | 100.00 | +| `acc.ko.vocab/none` | 100.00 | +| `big.ko.sent.sentence` | 99.13 | +| `big.ko.sent.token` | 99.83 | +| `big.ko.phrase.sentence` | 99.37 | +| `big.ko.long.sentence` | 98.40 | +| `big.en.sent.sentence` | 99.93 | +| `big.cs.particle.sentence` | 99.06 | +| `big.cs.particle.token` | 99.85 | +| `big.cs_heldout.particle.sentence` | 98.95 | +| `big.cs.bare.sentence` | 97.77 | +| `big.cs.number.sentence` | 99.29 | +| `big.ko.title.none` | 99.87 | +| `big.ko.title.after-en` | 99.37 | +| `big.learn.other_forms_before` | 100.00 | +| `big.learn.other_forms_after` | 100.00 | + +### 유형별 시나리오 (문장 정답률 %, token은 단어 단위, chain은 4문장 이어 입력) + +| 유형 | 문장 | token | chain.token | µs/글자 | +| --- | ---: | ---: | ---: | ---: | +| chat | 96.51 | 98.78 | 99.17 | 4.33 | +| dev | 98.98 | 99.69 | 99.37 | 4.68 | +| writing | 98.78 | 99.77 | 99.75 | 3.37 | +| 전체 | 98.12 | 99.50 | | | + +| 시나리오 | 문장 정답률 | +| --- | ---: | +| `chat.brand` | 100.00 | +| `chat.casual` | 100.00 | +| `chat.english` | 100.00 | +| `chat.loan` | 92.31 | +| `chat.number` | 100.00 | +| `chat.punct` | 100.00 | +| `chat.slang` | 88.24 | +| `dev.commit` | 100.00 | +| `dev.error` | 100.00 | +| `dev.identifier` | 100.00 | +| `dev.issue` | 100.00 | +| `dev.review` | 100.00 | +| `dev.terminal` | 96.00 | +| `dev.tool` | 100.00 | +| `writing.academic` | 92.86 | +| `writing.email` | 100.00 | +| `writing.english` | 100.00 | +| `writing.essay` | 100.00 | +| `writing.formal` | 100.00 | +| `writing.long` | 100.00 | +| `writing.numbers` | 100.00 | +| `writing.quote` | 100.00 | + +### 속도·메모리 (중앙값, 5회) + +| 항목 | 값 | +| --- | ---: | +| `commit.avg_us` | 19.04 | +| `commit.p50_us` | 13.70 | +| `commit.p95_us` | 31.40 | +| `commit.p99_us` | 75.00 | +| `keystroke.avg_us` | 17.06 | +| `keystroke.p50_us` | 11.50 | +| `keystroke.p95_us` | 37.10 | +| `keystroke.p99_us` | 97.70 | +| `load.ms` | 3.47 | +| `heap.loaded_kb` | 52.67 | +| `heap.peak_kb` | 11628.82 | ## 0.10.9 diff --git a/lab/Cargo.lock b/lab/Cargo.lock index 0df7e2c..392cdd4 100644 --- a/lab/Cargo.lock +++ b/lab/Cargo.lock @@ -280,7 +280,7 @@ dependencies = [ [[package]] name = "tacit-core" -version = "0.10.9" +version = "0.10.10" dependencies = [ "memmap2", "serde", @@ -297,7 +297,7 @@ dependencies = [ [[package]] name = "tacit-packgen" -version = "0.10.9" +version = "0.10.10" dependencies = [ "serde_json", "sha2", diff --git a/platforms/android/app/res/drawable/ic_smile.xml b/platforms/android/app/res/drawable/ic_smile.xml new file mode 100644 index 0000000..4086e51 --- /dev/null +++ b/platforms/android/app/res/drawable/ic_smile.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/platforms/android/app/res/drawable/keyboard_key.xml b/platforms/android/app/res/drawable/keyboard_key.xml index 86aa623..05a62d7 100644 --- a/platforms/android/app/res/drawable/keyboard_key.xml +++ b/platforms/android/app/res/drawable/keyboard_key.xml @@ -6,20 +6,20 @@ - + - - + + - + diff --git a/platforms/android/app/res/layout/input.xml b/platforms/android/app/res/layout/input.xml index 15a3d86..8ac6f22 100644 --- a/platforms/android/app/res/layout/input.xml +++ b/platforms/android/app/res/layout/input.xml @@ -18,37 +18,45 @@ android:layout_width="48dp" android:layout_height="48dp" android:background="@drawable/reading_chip" - android:padding="12dp" + android:padding="14dp" android:src="@drawable/tacit_logo" android:scaleType="fitCenter" android:contentDescription="@string/input_mode" /> - - - - - + + + + + + + + + @@ -125,5 +133,16 @@ android:textColor="@color/keyboard_hint" android:textSize="12sp" /> + + + + + diff --git a/platforms/android/app/res/layout/keyboard.xml b/platforms/android/app/res/layout/keyboard.xml index 63c5679..f8de69d 100644 --- a/platforms/android/app/res/layout/keyboard.xml +++ b/platforms/android/app/res/layout/keyboard.xml @@ -9,6 +9,6 @@ android:paddingBottom="6dp" android:keyBackground="@drawable/keyboard_key" android:keyTextColor="@color/keyboard_text" - android:keyTextSize="21sp" - android:labelTextSize="13sp" + android:keyTextSize="22sp" + android:labelTextSize="14sp" android:shadowRadius="0" /> diff --git a/platforms/android/app/res/layout/settings.xml b/platforms/android/app/res/layout/settings.xml new file mode 100644 index 0000000..e72866d --- /dev/null +++ b/platforms/android/app/res/layout/settings.xml @@ -0,0 +1,38 @@ + + + + + +