- Hide annotation metadata for auxiliary inflection and ja-nai endings - Preserve lexical `くれる` forms and add regression coverage
2.3 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-311 | Suppress auxiliary inflection fragments from subtitle annotations | Done | 2026-05-02 09:07 | 2026-05-02 09:10 |
|
medium |
Description
Suppress standalone Japanese auxiliary/inflection subtitle fragments such as れる and れた from frequency/JLPT/N+1/known annotation styling while keeping lexical verbs such as くれ / くれる annotatable. Tokens must remain hoverable; only annotation metadata should be stripped.
Acceptance Criteria
- #1
れるandれた-style standalone helper fragments render as plain hoverable subtitle tokens. - #2 Lexical verbs like
くれ/くれるremain eligible for annotation. - #3 Regression tests cover unit filter behavior and tokenizer integration.
Implementation Notes
Implemented with TDD. Added failing coverage first for standalone れる/れた auxiliary fragments and a lexical くれ/くれる guard. Updated the shared subtitle annotation filter to strip annotation metadata for kana-only auxiliary inflection fragments identified by MeCab POS (助動詞 only, or 動詞/接尾 with optional trailing 助動詞) while preserving lexical くれ as くれる when tagged 動詞/自立. Added tokenizer integration coverage for れた and neighboring lexical N+1 behavior.
Final Summary
Suppressed annotation metadata for standalone auxiliary inflection fragments such as れる and れた in subtitle tokens, leaving them hoverable but plain. Preserved lexical くれ -> くれる verb metadata when MeCab tags it as 動詞/自立.
Added unit and tokenizer regression coverage, plus a release fragment in changes/311-auxiliary-inflection-annotation-filter.md.
Validation: targeted annotation/tokenizer tests passed; bun run typecheck passed; bun run changelog:lint passed. bun run test:fast was attempted twice and failed in unrelated src/core/services/subsync.test.ts cross-file state (window.electronAPI undefined), while bun test src/core/services/subsync.test.ts passes by itself.