# Technical Debt Register

> Unvollständige Anforderungen → siehe [docs/OPEN_ITEMS.md](./OPEN_ITEMS.md)


## O1: Planning Offline Queue
- **Priority:** High
- **Effort:** Large (L)
- **Status:** Not implemented
- **Description:** Planning mutations (drag/drop, resize, create/edit/delete assignments)
  write directly to Supabase. If the user is offline, changes are silently lost with only
  a console.error.
- **Existing infrastructure:** `lib/offline/queue.ts`, `lib/offline/sync-engine.ts`,
  `lib/offline/registry.ts` — the queue is registered for `assignments` but never called
  from `components/planning/planning-client.tsx`.
- **Required work:** Route all assignment CRUD through `lib/offline/repository.ts` pattern.
  Merge remote fetch results with pending queue entries before calling `setAssignments()`.
  Test sync-on-reconnect behaviour.
- **Blocking:** Offline PWA use case for planning is completely non-functional until fixed.

---

## Large Components Pending Split

### supplier-master-data-client.tsx (1149 lines)
- **Location:** `components/repository/supplier-master-data-client.tsx`
- **Priority:** Medium
- **Reason deferred:** Complex state management with interleaved CRUD + search + pagination.
  Splitting without full understanding risks breaking supplier data flows.

### department-master-data-client.tsx (876 lines)
- **Location:** `components/repository/department-master-data-client.tsx`
- **Priority:** Medium
- **Reason deferred:** Similar to supplier client — tightly coupled form + list + edit state.

### vsm-editor.tsx (925 lines)
- **Location:** `components/wertstrom/vsm-editor.tsx`
- **Priority:** Medium
- **Reason deferred:** Canvas-based VSM editor with complex drag/drop and SVG state.
  Splitting the render layer from state would require significant redesign.

### oee-calculator.tsx (824 lines)
- **Location:** `components/oee/oee-calculator.tsx`
- **Priority:** Medium
- **Reason deferred:** All state is interdependent (shift config affects loss calc affects chart).
  Safe split points unclear without running the feature end-to-end.

### project-documents-client.tsx (822 lines)
- **Location:** `components/repository/project-documents-client.tsx`
- **Priority:** Medium
- **Reason deferred:** Upload + preview + delete flows share upload state and progress refs.

### consultant-master-data-client.tsx (803 lines)
- **Location:** `components/repository/consultant-master-data-client.tsx`
- **Priority:** Medium
- **Reason deferred:** Role/team editing flows deeply coupled to form validation state.
