Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
cd1ba8b
docs(checks): propose highlight-in-verse options (Relates to #277, #278)
Jul 2, 2026
b3d0cc0
docs(checks): clarify /view highlight still shares HL3/§4 range-mapping
Jul 2, 2026
1118970
First pass at proposal.
Jun 11, 2026
886ee3a
Repeated Word Check UI proposal: decision-sync fixes + review summary
Jun 11, 2026
14289b9
Revise Repeated Word Check UI proposal per PR #305 review
Jun 16, 2026
2f46757
Address CodeRabbit nits: 'in situ' -> 'in context'; add 'text' specif…
Jun 16, 2026
181258e
docs(checks-ui): expand S6.5 with the reversibility implication chain
Jun 16, 2026
e0e1a3b
feat(checks): add Repeated Word Check UI foundations (#277, #278)
Jun 18, 2026
1a0a4d2
docs(checks-ui): add §6.1.1 implementation-status checklist
Jun 18, 2026
b6a4813
docs(checks-ui): remove standalone progress checklist
Jun 18, 2026
aee3f7d
feat(checks): add useSuppressions hook (Phase 2)
Jun 21, 2026
5b055e7
feat(checks): add ChecksPanel and FindingRow components (Phase 3)
Jun 21, 2026
69c11bc
feat(checks): wire Repeated Word Check into DraftingPage (Phase 4)
Jun 21, 2026
9fa3451
fix(checks): send contract-correct lang_code + project_id to the AI c…
Jun 23, 2026
67dbbfe
fix(checks): apply toggle principle to suppression actions (BUG #3/#4)
Jun 23, 2026
d840aee
feat(checks): align repeated-word panel with new mocks
Jun 23, 2026
e8aa964
fix(checks): pass target language code through the PM open-chapter path
Jun 25, 2026
2790e71
📝 CodeRabbit Chat: Add unit tests for PR changes
coderabbitai[bot] Jun 25, 2026
63b1d46
test(checks): clean up CodeRabbit-generated unit tests
Jun 25, 2026
9507d09
fix(checks): recover occurrence-key pair without split('|')
Jun 25, 2026
b1f4978
refactor(checks): dedupe LeftTab via single source in useResourceStat…
Jun 25, 2026
3c5119d
a11y(checks): complete LeftPanel tab/tabpanel ARIA wiring
Jun 25, 2026
f5b1283
fix(checks): forward the trimmed lang_code, not the padded value
Jun 25, 2026
78d42f3
fix(checks): restore occurrence rules when global ignore PUT fails
Jun 25, 2026
7cb14d8
docs(checks): align reason label to "Ignore Everywhere" in review sum…
Jun 25, 2026
57a041f
test(switch): drop redundant misnamed aria-label test
Jun 25, 2026
a54e249
fix(checks): a11y label on resource toggle + sort verse groups (CR-10…
Jun 28, 2026
897d0f8
fix(checks): preserve sibling self/settings + guard stale global-writ…
Jun 28, 2026
fac4032
refactor(checks): send only checkIgnoredWordPairs on PUT; drop client…
Jun 28, 2026
b0cd51f
fix(checks): serialize global settings writes so PUTs commit in UI-ac…
Jun 28, 2026
e786c83
fix(checks): roll back global write to last committed baseline; merge…
Jun 28, 2026
594efbd
feat(flags): consume feature flags to hide the Repeated Word Check wh…
Jul 3, 2026
0e6dae9
fix(flags): address CodeRabbit review on #337
Jul 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 78 additions & 81 deletions docs/proposals/repeated-word-check/checks-ui-integration-suggestion.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Give translators the user-facing half of the Repeated Word Check: a **Checks tab

4. **Chapter-wide check on every successful verse auto-save** (W3/W4): a TanStack `useQuery` keyed on `(chapterAssignmentId, saveCounter)` sending all drafted verses; `snt_id` = `"{bookCode} {chapter}:{verse}"` (USFM, the smoke-test convention); no extra debounce beyond the existing 2 s save debounce. Drafting mode only (W10).

5. **Three-layer active/inactive cascade, most-specific-non-silent-wins** (W5/W6): Greek Room's `legitimate` verdict → user-global word-pair rule → occurrence rule `(snt_id, repeated_word, ordinal)`; rules are tri-state maps (`absent/'suppress'/'surface'`), which is what makes per-occurrence **undo** of a global rule or machine verdict possible. The dot counts active findings only; ignored items are hidden by default and revealed dimmed (with "Default Ignore"/"Ignore Here"/"Ignore Always" reason labels and "Undo Ignore") under a **"Show Ignored" toggle** (default off, not persisted), matching the revised #278.
5. **Three-layer active/inactive cascade, most-specific-non-silent-wins** (W5/W6): Greek Room's `legitimate` verdict → user-global word-pair rule → occurrence rule `(snt_id, repeated_word, ordinal)`; rules are tri-state maps (`absent/'suppress'/'surface'`), which is what makes per-occurrence **undo** of a global rule or machine verdict possible. The dot counts active findings only; ignored items are hidden by default and revealed dimmed (with "Default Ignore"/"Ignore Here"/"Ignore Everywhere" reason labels and "Undo Ignore") under a **"Show Ignored" toggle** (default off, not persisted), matching the revised #278.

6. **Graceful degradation, either-PR-lands-first** (W8/W9): the UI feature-detects `GET /self/settings` (404 ⇒ "Ignore Everywhere" simply not rendered — capability hidden, never a dead control); check failures surface as one inline red line in the panel while the last successful findings stay rendered (TanStack default). No toasts/banners — none exist in this codebase. **"Ignore Everywhere" shows a confirm dialog** (per revised #278) while still being reversible via undo.

Expand Down
304 changes: 304 additions & 0 deletions docs/proposals/repeated-word-check/highlight-in-verse-suggestion.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "^1.2.2",
"@radix-ui/react-switch": "^1.3.1",
"@radix-ui/react-tooltip": "^1.2.8",
"@radix-ui/react-visually-hidden": "^1.2.3",
"@tanstack/react-query": "^5.84.1",
Expand Down
183 changes: 183 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading