Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion CHANGELOG.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ GitHub 릴리스 노트가 되고 대시보드의 업데이트 탭에도 그대

## [Unreleased]

## [0.10.10] - 2026-10-23

### 변경

- Android 키보드의 도구바와 후보 줄을 분리하고 붙여넣기·클립보드·이모지를 바로 열 수 있게 했습니다. 스페이스를 드래그하면 공백 입력 없이 커서를 옮깁니다. 밝은·어두운 모두 무채색으로 정리하고 기능 키 구분과 키 크기를 다듬었습니다. 키보드 안에서 시스템·라이트·다크 테마, 키 높이 3단계, 진동·키 미리보기를 설정하고 저장할 수 있으며, 테마와 높이를 바꿔도 작성 중인 조합을 유지합니다.

## [0.10.9] - 2026-10-23

### 추가
Expand Down Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Type English, Korean, and Japanese on one QWERTY keyboard — it works out which

<p align="center">
<a href="https://github.com/iamallyouneed/tacit/releases/latest"><img src="https://img.shields.io/github/v/release/iamallyouneed/tacit?label=release&color=2ea44f" alt="release"></a>
<a href="https://github.com/iamallyouneed/tacit/releases"><img src="https://img.shields.io/github/downloads/iamallyouneed/tacit/total?label=downloads&amp;color=555" alt="Total release downloads"></a>
<a href="https://github.com/iamallyouneed/tacit/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/iamallyouneed/tacit/ci.yml?branch=main&label=CI" alt="CI"></a>
<img src="https://img.shields.io/badge/Rust-2021-000000?logo=rust&logoColor=white" alt="Rust">
<img src="https://img.shields.io/badge/Windows-TSF-0078D4?logo=windows&logoColor=white" alt="Windows">
Expand Down Expand Up @@ -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)
```

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

<p align="center">
<a href="https://github.com/iamallyouneed/tacit/releases/latest"><img src="https://img.shields.io/github/v/release/iamallyouneed/tacit?label=release&color=2ea44f" alt="release"></a>
<a href="https://github.com/iamallyouneed/tacit/releases"><img src="https://img.shields.io/github/downloads/iamallyouneed/tacit/total?label=downloads&amp;color=555" alt="릴리스 누적 다운로드 수"></a>
<a href="https://github.com/iamallyouneed/tacit/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/iamallyouneed/tacit/ci.yml?branch=main&label=CI" alt="CI"></a>
<img src="https://img.shields.io/badge/Rust-2021-000000?logo=rust&logoColor=white" alt="Rust">
<img src="https://img.shields.io/badge/Windows-TSF-0078D4?logo=windows&logoColor=white" alt="Windows">
Expand Down Expand Up @@ -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 와 같이 쓰면 거기에 더한다)
```

Expand Down
2 changes: 1 addition & 1 deletion crates/cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion crates/config/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion crates/core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion crates/packgen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
163 changes: 135 additions & 28 deletions docs/report/performance-enkoja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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% 안은 잡음으로 봄). 정확도는 높을수록, 크기·지연·메모리는 낮을수록 좋음.

Expand All @@ -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 = |
Expand Down Expand Up @@ -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 = |
Expand All @@ -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)
Expand Down
Loading
Loading