Repository navigation
fix: carry digit context into the following word - #26
Merged
helloiamnotth3devnicetomeetyou merged 3 commits intoOct 24, 2026
Merged
helloiamnotth3devnicetomeetyou merged 3 commits into
helloiamnotth3devnicetomeetyou merged 3 commits into
Conversation
Consume pending numeric adjacency only when starting a word. Preserve owned suffix deletion and invalidate numeric origin across context, commit and split boundaries without changing classifier policy. Fixes iamallyouneed#24 Signed-off-by: snowykr <snowykr22@gmail.com>
Signed-off-by: notth3dev <160973721+noth3dev@users.noreply.github.com>
Shift+Space can insert or pass through whitespace before the generic dispatch reset. Clear the pending digit context before either return so the next word is scored without stale numeric adjacency. Cover both whitespace widths after integrating the correction-learning repair. Signed-off-by: notth3dev <160973721+noth3dev@users.noreply.github.com>
helloiamnotth3devnicetomeetyou
merged commit Oct 24, 2026
bb76b93
into
iamallyouneed:main
5 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #24.
Repair
The session clears
width.after_digitbefore the first letter can copy it intoword_after_digit. It also fails to produce pending numeric context when a digit follows a nonempty word. Restore that producer/consumer handoff, without changing the classifier's numeric policy:before_digitinterval and confidence policy remain intact.This repair includes current main after #25 (
869768bf08eeb80f38234865e6420d8c837821b8). Session and changelog conflicts are reconciled so both visible-reading correction provenance and numeric-context resets are retained. The premerge review also found that Shift+Space returned before clearing pending numeric adjacency; this is now reset in the shared Shift+Space path, with a regression covering both full-width insertion and half-width passthrough. #23's shape-evidence policy is unchanged.Maintainer integration verification
The final integrated head is
8f3b662ded2b1b77b2bf2a370bb8602cc551abae, including merged #25 and the Shift+Space boundary repair. On Windows:cargo test --workspaceandcargo test --workspace --all-features: pass, including accuracy/golden, correction learning, numeric context, Windows TIP and FFI tests.cargo fmt --all -- --check, default/all-feature all-target workspace Clippy with-D warnings, changelog selftest, andgit diff --check: pass.Original implementation gains and tradeoffs
This is not a zero-regression accuracy/performance claim. Restoring previously lost context activates existing numeric-scoring paths.
A fixed synthetic matrix of 38 Latin identifier/unit controls and 5 Korean counters, two language profiles and Enter/Space gives 172 observations per revision:
10cm:10츠 → 10cm, enko and enkoja.10fps:10렌 → 10fps, enko and enkoja.10sus:10すs → 10년, enkoja. The original five enko counter controls remain correct.Existing enko InputSession replay (
--fold 0/3 --corpus 3000) covers 7,050 lines. Exhaustive error listings show no newly wrong or fixed final sentences; all six buckets retain final accuracy. English remains 100%; Korean sentences remain 97.867%.However, three partial previews become incorrect and two improve. One new mismatch is
cmbeing kept Latin while it is an unfinished Korean층(cmd) prefix; two others occur within longer Korean text following a number. This is observable typing behavior, not a harmless metadata change. Existing numeric policy is not retuned to hide it.Five alternating full-replay benchmark pairs also show a cost:
For Korean sentences, the p95 ranges were 11.916–12.041 / 12.375–12.792 µs: the increase is not described as overlapping-range noise. Allocated bytes/key rise about 3.2% for Korean and 5.9% for chat. These are local synthetic replay timings, not physical-key or end-to-end native latency.
The existing nonnumeric
NoopClientpreview/completion benchmark was also run in five alternating pairs per profile: zero-history p95 medians enko 31.125 → 30.958 µs, enkoja 63.375 → 62.958 µs. This does not cancel or measure away the numeric-path cost above, and no general speedup is claimed.Original implementation verification
tacit-tiplocally: 345 default / 486 all-feature tests pass, with 1 / 2 existing ignored tests respectively.10cm; patched default and Japanese-feature editions pass.-D warnings: pass.git diff --check: pass.--corpus 3000reports retain 127 enko / 156 enkoja non-timing metrics. Session replay changes are reported separately above.The Korean split regression uses an explicitly synthetic routing engine and requires an actual split before testing the retained suffix. An initial real-model fixture did not split on either revision and was corrected; that fixture failure is not counted as a product regression. Japanese split/partial-candidate invalidation was source-reviewed and existing Japanese numeric/conversion tests pass; not every forced-Japanese path has a direct recording-engine context assertion.
The existing switching tool rejects enkoja, so no Japanese corpus-switching replay is claimed. No installed-patched-IME, physical-key, or local Windows/Linux/Android runtime test is claimed. Cross-platform CI is additional evidence.
Full-file Prettier warnings on historical changelog formatting already exist on the baseline; the new Unreleased sections match pinned prettier@3.3.3 without unrelated history churn.
Independent architecture and critic reviews approve the scoped implementation with the above tradeoffs disclosed; runtime checks were performed by the integrating parent, not independently rerun by those reviewers.
No installation, personal-data reset, version bump or release is included. The installed app remains unchanged.