Skip to content

feat: add personal dictionary - #16

Merged
zefutoff merged 1 commit into
mainfrom
feat/personal-dictionary
Oct 7, 2026
Merged

zefutoff merged 1 commit into
mainfrom
feat/personal-dictionary

Conversation

@zefutoff

@zefutoff zefutoff commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a persistent personal dictionary
  • build a real Graphspell dictionary in memory with Grammalecte DAWG
  • support adding, listing and removing personal words
  • share personal words across SpellCheckerService, PROCESS_TEXT and the IME
  • refresh an already-running engine when stored words change
  • add a dedicated personal dictionary management screen
  • keep the activity internal and non-exported
  • mark personal dictionary support complete in the roadmap

Engine behavior

  • personal words are stored locally
  • duplicate additions are ignored
  • removed words immediately become invalid again
  • personal dictionary changes clear Grammalecte morphology caches
  • entries use a neutral morphology tag rather than inventing grammatical information
  • dictionary size and entry length are bounded

Validation

  • make check
  • make assemble
  • git diff --check
  • real QuickJS / Graphspell smoke tests
  • add/remove mutation API tests
  • Android instrumentation for persistent dictionary refresh
  • manifest test verifies the personal dictionary activity is not exported
  • tested on Samsung Galaxy S21 / Android 15 over USB
  • verified that an added unknown word is accepted by real correction
  • final APK still requests no INTERNET permission

@zefutoff
zefutoff merged commit bde996a into main Oct 7, 2026
5 checks passed
@zefutoff
zefutoff deleted the feat/personal-dictionary branch October 7, 2026 19:58
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