Skip to content

feat: 1.2.0 practice window + quality close-out - #232

Merged
wangzhizhou merged 4 commits into
mainfrom
dev
Nov 7, 2026
Merged

wangzhizhou merged 4 commits into
mainfrom
dev

Conversation

@wangzhizhou

Copy link
Copy Markdown
Contributor

B4 练习 + B5 收口,一次性出候选包验收。

新增

  • ⌥K 打开练习窗口(hotkey.open_practice,Schema 23 项):题型 A 看字打码 / C 识别码判断,只出 full 题。
  • 进度 ~/Library/Application Support/Lampyris/practice.tsv(数据非配置,3,000 行 / 256 KiB 上限、原子写、删除即重置)。

收口(ADR-314)

  • 冷首键实测 ~28 ms(学习区关着也一样,用户不可感知)→ 不优化;
  • A1/A2/A3/A5 关闭并写重开触发条件;
  • 内存按 ADR-312 双阈值(默认 30 / 学习区 34 MiB)。

验证:make verify PASS、离线 62 文件 / 328 例 PASS、ime-config/ime-ffi 全绿。

… A/B

The same build measures 28.6 to 30.0 mebibytes of private memory with the learning area off and 31.7
to 33.3 with it on. Parsing on demand did not change the delta, and view objects are far too few to
explain it, so the remaining explanation is glyph caching for the extra characters the panel draws,
which is a cost of the feature rather than a leak.

ADR-312 therefore keeps 30 MiB for the default configuration and allows 34 when the learning area is
enabled, with the memory gate choosing the limit from the configuration and the report recording both
tables.

Signed-off-by: wangzhizhou <824219521@qq.com>
Scopes practice down to a question bank from full entries only, local judging with the corpus
explanation on a miss, and a bounded local progress file that is data rather than configuration. It
offers three exercise shapes, does not touch the candidate window, stores nothing remotely and keeps
the learning resource on demand, with acceptance criteria that include only full entries and no
change to the latency or memory gates.

Signed-off-by: wangzhizhou <824219521@qq.com>
…n codes

Practice is limited to entries the corpus marks as full, so the app never tests the user on data it is
itself unsure about. Two exercise shapes: typing a character's full code, and choosing the last stroke
and structure to derive the recognition letter, with the reverse table shared with the corpus rules.

Progress lives in practice.tsv under application support as data rather than configuration, bounded to
three thousand rows and 256 KiB, written atomically and reset by deletion. The window is independent
and non-modal, opened by a new alt+k chord that joins the existing hotkey schema, so it appears in the
settings list with the same collision checks.

Signed-off-by: wangzhizhou <824219521@qq.com>
Cold first key measures about twenty eight milliseconds with the learning area off, so it is not caused
by the panel and the user reports no perceptible pause; it stays disclosed separately as before.
Ranking observation, fixed order, level three codes, cold key optimisation and pinyin backend work are
all closed for this release with explicit conditions that would reopen them, so nothing remains
vaguely pending. The report also records which memory number is authoritative.

Signed-off-by: wangzhizhou <824219521@qq.com>
@wangzhizhou
wangzhizhou merged commit 90664aa into main Nov 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant