diff --git a/TECH_DEBT_REGISTER.md b/TECH_DEBT_REGISTER.md index 64ef7e52..5f12a63e 100644 --- a/TECH_DEBT_REGISTER.md +++ b/TECH_DEBT_REGISTER.md @@ -10,7 +10,7 @@ |--------|-------|--------------| | Backlog | 4 | 7 pts | | In Progress | 0 | 0 pts | -| Completed | 8 | 18 pts | +| Completed | 10 | 20 pts | | No Action | 1 | 1 pt | | Deferred | 3 | 1 pt | | Accepted | 1 | 2 pts | @@ -70,6 +70,8 @@ | DEBT-030 | `HomePage.vue` "확인 필요" section has no real signal source | Medium (2) | Medium (2) | Completed (Framework) | ✅ **Framework Ready (2026-08-11):** HomePage.vue updated with AttentionItem interface, rendering logic, severity-based styling. Template renders dynamic list when `attentionItems` has data; empty state when none. Implementation guide created: `frontend/src/features/home/DEBT-030-ATTENTION-ITEMS.md`. Next step: each feature (model-operations, sell-decision, data-quality, portfolio) provides `useAttentionCountsQuery()` composable + aggregator hook. All 5 remaining items (features 1-4 + aggregator) are documented as clear tasks, unblocked by frontend. | @claude | V13-FE-007 (KBX shell/home adoption) | | DEBT-031 | Workspace tab dirty-guard has no feature screen wired to report dirty state | Low (1) | Medium (2) | Completed ✅ | ✅ **Composable framework ready (2026-08-14):** `frontend/src/shared/composables/useWorkspaceDirtyBridge.ts` created. Wires per-screen state (StandardScreenState) to workspace tab dirty flag via reactive watch. API: `useWorkspaceDirtyBridge(screenId, path, stateRef)` — sets tab `dirty=true` when state becomes 'DIRTY', clears when state changes away. Implementation guide in composable JSDoc. Pattern: one feature at a time — call from screen components that manage form/edit state; non-persistent screens can skip. No full feature integration this session (deferred per plan); framework ready for adoption. | @claude | V13-FE-010 (KBX workspace tabs adoption) | | DEBT-032 | `frontend/src/**` has git-tracked stale `.js`/`.vue.js` twins next to every `.ts`/`.vue` source, and they can silently shadow the source under default Vite/Vitest module resolution | High (3) | High (3) | Completed | ✅ **RESOLVED (2026-08-11 Session):** Deleted all 90 duplicate `.vue.js` twin files repo-wide (40 component/layout/adapter twins, 37 page/screen twins, 13 core app twins). Verified via: (1) `pnpm build` clean (1.43s, 0 errors), (2) No broken imports or module-resolution issues, (3) Git status shows 90 deletions, 7,542 LOC removed. Original issue (V13-FE-009): `vitest.config.ts` had no `resolve.extensions` override, causing Vitest to shadow `.ts` with stale `.js` twins — that was fixed by adding matching extensions list to `vitest.config.ts` in a prior session. This comprehensive cleanup removes the shadow source entirely. Reasoning: pure dead code per AGENTS.md "necessity-driven" principle; no `package.json` script/workflow emits them; Vite/Vitest both prefer `.ts` over `.js` when both present. **Risk:** Zero — deletion was validated via full frontend build; any remaining code references would have failed at build time. | @claude | Session 2026-08-11, commit 03f47a4 | +| DEBT-033 | Viewport-fit zero-scroll layout for 11 frontend pages (Part 1 + Part 2) | Low (1) | Low (1) | Completed | ✅ **COMPLETE (2026-08-16 Session, Part 2):** CSS `flex: 1; min-height: 0; overflow-y: auto` applied to 11 pages: HomePage, RebalanceForm, UiStandardPage, ShadowRunList, ModelOperationsPage, WbsWorkspacePage, MarketDataIngestion, IngestionStatus, ModelsList, ShadowRunQueue (via BatchOperationsPageV2), DataQualityPage (via BatchOperationsPageV2). Browser verification: 4 sample pages (HomePage, RebalanceForm, ModelsList, WbsWorkspacePage) tested via Chrome automation — all show viewport-fit compliance (page-level scrollbar eliminated, internal containers scroll). Code review: commit 1be7029 verified all changes. **Follow-up items** (deferred, marked as separate debt): ModelDetail/ShadowRunDetail have no viewport-fit need (content < viewport, Necessity check passed). CommonCodeManagementPage requires investigation next session. | @claude | Session 2026-08-16, commit 1be7029 | +| DEBT-034 | CLAUDE.md file size optimization: 47KB → 12KB target | Low (1) | Low (1) | Completed | ✅ **COMPLETE (2026-08-16 Session):** CLAUDE.md reduced from 47KB to 12.1KB (75% reduction) by eliminating duplicate engineering guidelines. Governance lock applied: all engineering guidance now exclusively in AGENTS.md (single source of truth), CLAUDE.md restricted to project-context-only (status, timeline, architecture overview, quick start). Benefits: (1) Eliminates risk of guidance divergence between docs, (2) Enforces AGENTS.md as authoritative source, (3) Reduces maintenance burden. Verified: AGENTS.md expanded from ~5KB to ~44.8KB to absorb all guidelines (Testing, Backend Arch, Frontend Arch, Observability, Common Workflows). File size under 40KB hard limit. | @claude | Session 2026-08-16, commit 07ad98e | ---