feat(grammar): inline grammar checking via self-hosted LanguageTool #656
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
project-halkyon/halkyon-learn!656
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/656/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Inline grammar checking via self-hosted LanguageTool (app side)
Adds inline spell/grammar checking to the AppFlowy editors, reached through the new
check-grammarSupabase Edge Function that fronts a private self-hosted LanguageTool instance (mirrorsexecute-code-> Judge0). The device never sees the LanguageTool URL.Included
lib/src/feature/grammar/):GrammarGateway+SupabaseGrammarGateway, models, language-code mapping, per-paragraph segmentation,GrammarCheckController(debounce on pause/blur, clear-on-edit), and aCustomPaintsquiggle overlay with tap-to-apply fixes. The saved document is never mutated.front_language/back_language(Drift schema v47 + model/gateway/sync), set via pickers in the studyset edit sheet.check-grammarrequests are made.Verification
flutter analyzeclean (pre-existing issues only); new unit tests + existing widget suites pass.Companion PR
Backend (function + migrations + LanguageTool container): project-halkyon/halkyon-infra#60 — required for a live run.