Technical Debt & Improvements Register
The single, prioritized view of Oter’s technical debt and planned improvements. Each item links to the canonical source doc — this register indexes and prioritizes, it does not duplicate detail.
This folder replaces the previously scattered debt notes (Roadmap’s “Technical Debt” section, finance improvement notes, migration plans, design-token gaps, testing gaps) as the live entry point. The Roadmap remains the strategic product roadmap; it is dated 2026-04-01 and partly stale — trust this register for current debt state.
How to use this
- Skim the Prioritized register below for the whole picture.
- Severity: P0 = blocking / actively risky · P1 = high · P2 = medium · P3 = low / cleanup.
- Effort: S ≤ 1 day · M ≈ days · L ≈ weeks.
- Drill into the per-area files for context, current state, and target state:
- migrations.md — the three in-flight migrations (the dominant active debt)
- architecture.md — code structure, patterns, sync, offline
- testing.md — coverage reality vs targets, test infrastructure
- design-system.md — token parity & design-fidelity migration
- infra.md — dependencies, build/CI, cloud cost, security, doc hygiene
Top risks right now
- Mobile consolidation is mid-flight (big-bang, branch
design-system-foundation). Steps S1–S3 done; S4–S7 not done / not verified. The app boots-compiles but feature coverage on the shared UI is unverified, and the old Android UI/Hilt/Room layer was only partially removed. High blast radius. → migrations.md - Client test coverage is near-zero.
sharedhas 4 test files for 491 sources;composeApp0/287;androidApp0/2. Onlyserveris meaningfully tested (53 files). This is far below the 70–90% targets claimed in Testing & QA. → testing.md - Dependency bleeding edge. Several pins are pre-release:
exposed = 1.0.0-rc-4,compose-lifecycle = 2.11.0-beta01. Stability/upgrade risk. → infra.md
Prioritized register
| ID | Item | Area | Sev | Effort | Status | Source |
|---|---|---|---|---|---|---|
| TD-01 | Finish mobile consolidation (S4 feature-gap closure, S5 delete remaining Android UI/Hilt, S6 run-verify, S7 responsive breakpoints) | Migrations | P0 | L | In progress (S1–S3 done) | migrations.md · plans/mobile-consolidation-koin.md |
| TD-02 | Rebuild client test coverage (shared/composeApp ≈ 0); replace deleted Hilt-based test-core with koin-test | Testing | P1 | L | Open | testing.md |
| TD-03 | Remove dead Hilt/Room/compose-hilt-navigation version pins from libs.versions.toml after consolidation | Infra | P2 | S | Open | infra.md |
| TD-04 | Stabilize pre-release deps (Exposed RC, compose-lifecycle beta); define an upgrade cadence | Infra | P2 | M | Open | infra.md |
| TD-05 | Complete web frontend migration (Kotlin/JS → TypeScript): remaining feature parity (realtime, uploads, notifications) | Migrations | P2 | L | In progress | migrations.md · infra/web-migration-plan.md |
| TD-06 | Resolve the 5 open design-token DECISIONS and reach Figma↔code 1:1 token parity | Design system | P2 | M | In progress (guard baseline empty) | design-system.md · design-system/tokens.md |
| TD-07 | Decompose god-files (FinanceService.kt 1015 LOC → 162 LOC facade + 8 sub-services; remaining: WorkoutViewModel.kt 814, RecipesViewModel.kt 778) | Architecture | P2 | M | Partial (Finance done 2026-06) | architecture.md |
| TD-08 | Finish the sync algorithm design (“Sync Data Model — to be defined”) and reconcile offline strategy | Architecture | P2 | L | Open | architecture.md · architecture/sync-algorithm-design.md |
| TD-09 | Finance: remove FinanceRepositoryImpl doRequest duplication; add custom exception types, input validation, KDoc | Architecture | P2 | M | Partially done | architecture.md |
| TD-10 | Standardize responsive breakpoints (replace ad-hoc 720/900/1100dp with a shared OterWindowSize) | Architecture | P2 | M | Open (S7) | architecture.md |
| TD-11 | Wire Finance savings-goals & debts tabs (loadSavingsGoals, loadDebts); add paywall “coming soon” UX; resolve theme-aware icon TODO | Architecture | P3 | M | Done (2026-06) | architecture.md |
| TD-12 | Author the plan-patterns-and-tradeoffs.md doc (the draft plan is unfinished) | Architecture | P3 | S | Draft | architecture/plan-patterns-and-tradeoffs.md |
| TD-13 | Refresh the stale Roadmap (dated 2026-04-01) and de-duplicate root-level docs that copy docs/ (WEB_MIGRATION_PLAN.md, RELEASE_CHECKLIST.md, DOCR_SETUP.md, FCM_TROUBLESHOOTING.md, STUDY_SYSTEM.md) | Infra | P3 | S | Open | infra.md |
| TD-14 | Infra hardening from Roadmap (caching/Redis, DB indexing/partitioning, observability, MFA/encryption) | Infra | P3 | L | Backlog | infra.md · Roadmap |
Code-level TODO inventory
Live list of in-code debt markers in the active codebase (shared, composeApp, androidApp, core, server). As of 2026-06 the codebase is clean — no open TODO/FIXME/HACK markers (TD-11 stubs were resolved).
Refresh with:
rg -n -g '!**/build/**' -g '*.kt' 'TODO|FIXME|HACK' shared composeApp androidApp core server(filter outWorkTicketStatus.TODOenum hits).