e69883d0ad
build: restore the single-instance launcher
2026-08-12 18:32:18 +09:00
9051c69b49
build: install GTK without development files
2026-08-12 18:01:39 +09:00
9566995c07
fix: separate Bash import streams
2026-08-12 17:42:25 +09:00
1f9af6ee3e
fix: reject unsupported SKK expressions
2026-08-12 17:39:09 +09:00
bae39c0188
build: force Docker-owned compilation
2026-08-12 17:34:48 +09:00
4e90fdd5c7
fix: harden caret and IBus dispatch
2026-08-12 17:34:34 +09:00
de536da0bb
refactor: trim popup and XIM helpers
2026-08-12 17:33:14 +09:00
8d68e00f2b
data: simplify and validate Japanese imports
2026-08-12 17:32:28 +09:00
a8a6c3b455
fix: construct Plan 9 paths without truncation
2026-08-12 17:28:17 +09:00
0d06ba43cd
refactor: remove conditional compilation layers
2026-08-12 17:27:42 +09:00
91931196e2
refactor: simplify the Plan 9 runtime loop
2026-08-12 17:26:55 +09:00
211a6917b2
refactor: remove guarded helper headers
2026-08-12 16:45:27 +09:00
4e8720a40d
fix: terminate XIM UTF-8 text runs
2026-08-12 16:43:57 +09:00
71af269efe
fix: preserve emoji commits through XIM
2026-08-12 16:40:58 +09:00
3f5e107230
docs: record data provenance and runtime constraints
2026-08-12 16:24:22 +09:00
c41a1b4227
build: remove generated artifacts and unsafe scripts
2026-08-12 16:23:45 +09:00
368e6adcd4
fix: keep the headless daemon running
2026-08-12 16:22:58 +09:00
5927f6a5e1
fix: forward input at the composition limit
2026-08-12 16:21:33 +09:00
9d60c4bbb0
fix: release XIM ownership on reset
2026-08-12 16:20:47 +09:00
c7d4f16d3e
test: stress engine transitions
2026-08-12 16:16:25 +09:00
a03efcf6bf
test: cover IPC response framing
2026-08-12 16:11:22 +09:00
432df3730c
fix: harden the per-user IPC endpoint
2026-08-12 16:08:23 +09:00
4120f90736
fix: make popup rendering deterministic
2026-08-12 15:59:52 +09:00
9c43bcb75c
fix: repair Wayland key lifecycle
2026-08-12 15:58:24 +09:00
1d8d711882
build: install the GTK module predictably
2026-08-12 15:57:18 +09:00
1295480858
fix: repair XIM context lifecycle
2026-08-12 15:56:43 +09:00
103f2ec448
fix: harden small core containers
2026-08-12 15:54:16 +09:00
cec62cc40f
fix: repair IBus context lifecycle
2026-08-12 15:49:28 +09:00
bc5712b6ac
fix: retain the active owner's caret
2026-08-12 15:44:04 +09:00
5ba5cf209c
fix: assign one active engine owner
2026-08-12 15:41:46 +09:00
9c244d1dd1
fix: retain the newest dictionary request
2026-08-12 15:37:50 +09:00
fabce14933
fix: tighten emoji lookup contracts
2026-08-12 15:36:37 +09:00
d0def814ef
refactor: remove empty language maps
2026-08-12 15:35:02 +09:00
d2fa51ceba
data: validate and repair Japanese dictionaries
2026-08-12 15:34:00 +09:00
f0ba7fc5f6
fix: normalize Korean shifted input
2026-08-12 15:32:28 +09:00
6dfbc08704
fix: correct Katakana composition
2026-08-12 15:29:35 +09:00
ec7e6eb992
fix: preserve complete Japanese readings
2026-08-12 15:28:16 +09:00
5ae0945015
Simplify build system
2026-08-12 14:23:41 +09:00
2ae87a3926
emoji: repair one-shot candidate selection
2026-08-12 02:08:01 +09:00
0fff17c8b8
emoji: add one-shot candidate search
2026-08-11 22:24:59 +09:00
82276bf37f
strengthen core unit tests
...
Add table-driven dictionary miss and language-switch state coverage, regress stale candidates after backspace, and clear them before dictionary refresh. Keep IPC and runtime-created file checks outside the unit runner.
2026-08-11 21:12:23 +09:00
9b3f2c46f0
restore unversioned ipc path
2026-08-11 20:05:37 +09:00
099acdf2a6
stop tracking build outputs
2026-08-11 19:35:19 +09:00
42823420ab
add focused unit and map checks
2026-08-11 19:35:11 +09:00
9dc116a035
harden ipc and frontend recovery
2026-08-11 19:34:47 +09:00
4bfb659b6d
fix candidate popup bounds
2026-08-11 19:34:27 +09:00
7b40ef419f
fix vietnamese telex state
2026-08-11 19:34:14 +09:00
e70278a3d2
fix core text and map ownership
2026-08-11 19:32:58 +09:00
b63122dd14
add GtkInputPurpose
2026-08-03 12:03:45 +09:00
a94d55c541
fix vietnamese telex: qu-/gi- onset tone placement and dd+tone
...
transvi fixes:
1. qu-/gi- onset tone placement. The u after q, and the i after g when a
vowel follows, are onset glides rather than the rime nucleus, so the
tone must skip them: qua -> quá (was qúa), gia -> giá. The onset was
previously passed straight through to the app, so transvi never saw it
and toned the glide. Keep the onset in the preedit by adding qu-/gi-
clusters to telex.map (mktelex.py onsets(), appended additively to the
curated map), and add onsetglide() so transvi skips the glide. gi- with
no following vowel keeps i as the nucleus (gì, gìn).
2. A tone key on a vowel-less preedit (e.g. "đ" from dd) now commits the
preedit and lets the tone key pass through (eat=0), matching the engine
commit-on-passthrough invariant, instead of eating it into the commit.
Verified against the running engine: qua/quan/quay/quê/quên/quyển,
gia/già/giàu/giữ/giúp/giống, gì/gìn, dd+s; unchanged mua->mùa, của, lúa;
all non-qu/gi words byte-identical to before.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 13:14:31 +09:00