release: v0.1.3 — 106 tests, clipboard fix, ua-horn cluster

- Update README version badge to 0.1.3 + test count
- Update CHANGELOG with v0.1.3 release notes
- DEB (976K) + AppImage (2.2M) on GitHub + Forgejo
This commit is contained in:
Khoa Vo 2026-06-26 19:27:24 +07:00
parent be8943bf52
commit a13e0bbd05
2 changed files with 25 additions and 39 deletions

View file

@ -1,50 +1,35 @@
# Changelog
## v0.1.3 (2026-06-26)
### Clipboard & Injection Fixes
- **ua-horn cluster fix** — Correct tone placement for `ưa` clusters (mưa, lửa).
- **Word-spacing fix** — Clipboard operations use `clipboard_context` to save/restore user's clipboard.
- **Control-key consumption** — VNI/Telex control keys properly consumed across all code paths.
- **Clipboard preservation** — User's clipboard saved before injection and restored after, preventing Ctrl+C/V conflicts.
### Tests
- **106 tests** passing (72 engine + 16 CLI + 12 protocol + 5 auto-restore + 1 tone placement).
### Releases
- `vietc_0.1.3-1_amd64.deb` (976K), `Viet+-0.1.3-x86_64.AppImage` (2.2M) on GitHub + Forgejo.
---
## v0.1.2 (2026-06-26)
### Telex & Spacing Fixes
- **ua-horn cluster fix** — Correct tone placement for `ưa` clusters (mưa, lửa).
- **Word-spacing fix** — Clipboard operations now properly preserve user's clipboard content during injection by saving and restoring via `clipboard_context`.
- **Control-key consumption fix** — VNI/Telex control keys properly consumed across all code paths.
- **Clipboard preservation** — User's clipboard is saved before daemon injection and restored after, preventing Ctrl+C/V conflicts.
### Flush & Spacing
- **Flush char forwarded as raw key** — Engine no longer includes flush char in Replace insert. Daemon forwards it as raw keycode after injection.
- **Stop retyping finished word on flush** — Characters already on screen stay, only the flush key is typed.
- **Auto-restore English words** — Common English words and invalid Vietnamese syllables are restored on space.
### Tone Placement
- **qu/gi onset glides** — Correct tone for `qu` (quý), `gi` (gió) clusters.
- **uê/uơ clusters** — Correct tone on second vowel for `uê` (thuế), `uơ` (thuở).
### Injection
- **Skip auto-repeat** — Skip 3 auto-repeat events after injection to prevent key flood.
- **Enter key**`\n` sent as KEY_ENTER via uinput.
- **Removed xdotool** — Layout-dependent; reverted to clipboard paste.
- **Uinput daemon** improvements for clipboard-aware injection.
### AppImage
- `--quit`, `--restart`, `--update` flags.
- xdotool bundled for future use.
### Tests
- **106 tests** (72 engine + 16 CLI + 12 protocol + 5 auto-restore + 1 tone placement).
### Releases
- `vietc_0.1.2-1_amd64.deb` (975K), `Viet+-0.1.2-x86_64.AppImage` (2.2M) on GitHub + Forgejo.
- Flush char forwarded as raw key, stop retyping finished word on flush
- Auto-restore English words, tone placement for qu/gi/uê/uơ
- Skip auto-repeat, Enter key support, removed xdotool
- 102 tests, AppImage `--quit`/`--restart`/`--update` flags
---
## v0.1.1 (2026-06-26)
### Telex fixes
- Fix `r` consumed as tone key — tone keys check `has_vowel` before applying.
- Fix normal letters consumed — `is_vn_control_key` was eating `a`,`e`,`o`,`d`,`u`.
- 67 engine tests.
### Injection
- 15ms delay, persistent X11 connection, Enter key support.
- `--quit`, `--restart`, `--update` flags.
- Fix `r` consumed as tone key, fix normal letters consumed in Telex
- 15ms delay, persistent X11 connection, Enter key
- 67 engine tests
---

View file

@ -2,7 +2,8 @@
<img src="https://img.shields.io/badge/Platform-Linux-blue?style=for-the-badge" alt="Platform">
<img src="https://img.shields.io/badge/Language-Rust-orange?style=for-the-badge" alt="Rust">
<img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License">
<img src="https://img.shields.io/badge/Version-0.1.0-purple?style=for-the-badge" alt="Version">
<img src="https://img.shields.io/badge/Version-0.1.3-purple?style=for-the-badge" alt="Version">
<img src="https://img.shields.io/badge/Tests-106_passing-brightgreen?style=for-the-badge" alt="Tests">
</p>
<h1 align="center">