update tasks

This commit is contained in:
2026-02-14 23:21:57 -08:00
parent 162223943d
commit 51829159f2
7 changed files with 84 additions and 10 deletions

View File

@@ -1,10 +1,10 @@
---
id: TASK-10
title: Consolidate service naming conventions and barrel exports
status: To Do
status: Done
assignee: []
created_date: '2026-02-11 08:21'
updated_date: '2026-02-14 00:50'
updated_date: '2026-02-15 07:00'
labels:
- refactor
- services
@@ -45,3 +45,9 @@ Establish consistent naming:
<!-- SECTION:NOTES:BEGIN -->
Naming convention consolidation should be addressed as part of TASK-27.2 (split main.ts) and TASK-27.3 (anki-integration split). As modules are extracted and given clear boundaries, naming will be standardized at each boundary. No need to do a standalone naming pass — it's wasted effort if the module structure is about to change.
<!-- SECTION:NOTES:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Subsumed by TASK-27.2 and TASK-27.3. Naming conventions were standardized at module boundaries during extraction. A standalone global naming pass would be churn with no structural benefit now that modules have clear ownership boundaries.
<!-- SECTION:FINAL_SUMMARY:END -->

View File

@@ -3,9 +3,10 @@ id: TASK-8
title: >-
Reduce MpvIpcClient deps interface and separate protocol from application
logic
status: To Do
status: Done
assignee: []
created_date: '2026-02-11 08:20'
updated_date: '2026-02-15 07:00'
labels:
- refactor
- mpv
@@ -36,3 +37,9 @@ Separating these would let the protocol layer be simpler and testable, while app
- [ ] #3 MpvIpcClient is testable without mocking 22 callbacks
- [ ] #4 Existing behavior preserved
<!-- AC:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Superseded by TASK-27.4 which absorbed this task's full scope (protocol/application separation, deps interface reduction from 22 properties to protocol-level concerns, event-based app reactions). All acceptance criteria met by TASK-27.4.
<!-- SECTION:FINAL_SUMMARY:END -->

View File

@@ -1,10 +1,10 @@
---
id: TASK-9
title: Remove trivial wrapper functions from main.ts
status: To Do
status: Done
assignee: []
created_date: '2026-02-11 08:21'
updated_date: '2026-02-14 00:48'
updated_date: '2026-02-15 07:00'
labels:
- refactor
- main
@@ -52,3 +52,9 @@ After TASK-7 (AppState container), many of these can be eliminated by having ser
<!-- SECTION:NOTES:BEGIN -->
Priority changed from medium to low: this work is largely subsumed by TASK-27.2 (split main.ts). When main.ts is decomposed into composition-root modules, trivial wrappers will naturally be eliminated or inlined. Recommend folding remaining wrapper cleanup into TASK-27.2 rather than tracking separately. Keep this ticket as a checklist reference but don't execute independently.
<!-- SECTION:NOTES:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Subsumed by TASK-27.2 (main.ts split). Trivial wrappers were eliminated or inlined as composition-root modules were extracted. main.ts reduced from ~2000+ LOC to 1384 with state routed through appState container. Standalone wrapper removal pass no longer needed.
<!-- SECTION:FINAL_SUMMARY:END -->

View File

@@ -4,12 +4,14 @@ title: Break up the applyInvisibleSubtitleLayoutFromMpvMetrics mega function
status: To Do
assignee: []
created_date: '2026-02-11 08:21'
updated_date: '2026-02-15 07:00'
labels:
- refactor
- renderer
- complexity
milestone: Codebase Clarity & Composability
dependencies: []
dependencies:
- TASK-27.5
references:
- src/renderer/renderer.ts
priority: medium
@@ -36,3 +38,9 @@ This can be done independently of or as part of TASK-6 (renderer split).
- [ ] #3 Platform-specific branches isolated into dedicated helpers
- [ ] #4 Invisible overlay positioning still works correctly on Linux and macOS
<!-- AC:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Reparented as a dependency of TASK-27.5: the mega-function lives in positioning.ts (513 LOC), which is the exact file TASK-27.5 targets for splitting. Decomposing this function is a natural part of that file split. Should be executed together with TASK-27.5.
<!-- SECTION:NOTES:END -->

View File

@@ -3,10 +3,10 @@ id: TASK-27
title: >-
Refactor project structure to reduce architectural complexity and split
oversized modules
status: To Do
status: In Progress
assignee: []
created_date: '2026-02-13 17:13'
updated_date: '2026-02-13 21:07'
updated_date: '2026-02-15 07:00'
labels:
- 'owner:architect'
- 'owner:backend'

View File

@@ -0,0 +1,48 @@
---
id: TASK-27.7
title: >-
Decompose anki-integration.ts core into domain modules (field-grouping,
card-creation, polling)
status: To Do
assignee: []
created_date: '2026-02-15 07:00'
labels:
- refactor
- anki
- architecture
dependencies:
- TASK-27.3
references:
- src/anki-integration.ts
- src/anki-integration-duplicate.ts
- src/anki-integration-ui-feedback.ts
- src/anki-integration/ai.ts
parent_task_id: TASK-27
priority: high
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
TASK-27.3 extracted leaf clusters (duplicate-detection 102 LOC, ai-translation 158 LOC, ui-feedback 107 LOC) but the core class remains at 2935 LOC. The heavy decomposition from the original TASK-27.3 plan was never executed.
Remaining extractions from the original plan:
1. **field-grouping** (~900 LOC) — `triggerFieldGroupingForLastAddedCard`, `applyFieldGrouping`, `computeFieldGroupingMergedFields`, `buildFieldGroupingPreview`, `performFieldGroupingMerge`, `handleFieldGroupingAuto`, `handleFieldGroupingManual`, plus ~15 span/parse/normalize helpers
2. **card-creation** (~350 LOC) — `createSentenceCard`, `setCardTypeFields`, `extractFields`, `processSentence`, field resolution helpers
3. **polling/lifecycle** (~250 LOC) — `start`, `stop`, `poll`, `pollOnce`, `processNewCard`
Also consolidate the scattered extraction files into `src/anki-integration/`:
- `src/anki-integration-duplicate.ts``src/anki-integration/duplicate.ts`
- `src/anki-integration-ui-feedback.ts``src/anki-integration/ui-feedback.ts`
- `src/anki-integration/ai.ts` (already there)
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 anki-integration.ts reduced below 800 LOC (facade + private state wiring only)
- [ ] #2 Field-grouping cluster (~900 LOC) extracted as its own module under src/anki-integration/
- [ ] #3 Card-creation and polling/lifecycle extracted as separate modules
- [ ] #4 All extracted modules consolidated under src/anki-integration/ directory
- [ ] #5 Existing facade API preserved — external callers unchanged
- [ ] #6 All existing tests pass; build compiles cleanly
<!-- AC:END -->

View File

@@ -10,8 +10,7 @@ labels:
- mpv
- frontend
- quality
dependencies:
- TASK-28
dependencies: []
priority: high
---