[UI/Settings] Abgleich mit settings.ts und Komponenten-Refactoring #289

Closed
opened 2026-01-25 14:47:02 +00:00 by jack · 0 comments
Owner

Problem

Die Settings-UI zeigt nicht alle verfügbaren Einstellungen aus packages/shared/src/settings.ts. Außerdem ist die Settings.tsx zu groß und sollte in kleinere Komponenten aufgeteilt werden.

Fehlende Settings in der UI

1. Remote Mode (Advanced Tab)

Nur Checkbox vorhanden, aber URLs fehlen:

  • REMOTE_URL - Backend URL für Remote-Modus
  • REMOTE_TOKEN - Auth Token für Remote-Modus

2. PostgreSQL Konfiguration (Advanced Tab)

Nur SQLite-Path sichtbar, PostgreSQL-Felder fehlen:

  • DATABASE_URL - Connection String
  • DATABASE_HOST
  • DATABASE_PORT
  • DATABASE_USER
  • DATABASE_PASSWORD
  • DATABASE_NAME

3. Embedding Provider (neuer Abschnitt oder AI Provider Tab)

  • EMBEDDING_PROVIDER - 'local' | 'mistral'
  • MISTRAL_EMBEDDING_MODEL

4. Processing Mode / Lazy Mode (neuer Tab oder Advanced)

  • PROCESSING_MODE - 'normal' | 'lazy' | 'hybrid'
  • LAZY_BATCH_INTERVAL
  • LAZY_PROCESS_ON_SEARCH
  • LAZY_HYBRID_TYPES

5. Sleep Agent (neuer Abschnitt)

  • SLEEP_AGENT_ENABLED
  • SLEEP_AGENT_INTERVAL
  • SLEEP_AGENT_IDLE_TIMEOUT

6. Worker Mode (Workers Tab)

  • WORKER_MODE - 'spawn' | 'in-process' | 'hybrid'
  • IN_PROCESS_WORKER_TIMEOUT
  • IN_PROCESS_WORKER_IDLE_EXIT

7. Worker Auto-Restart (Workers Tab)

  • WORKER_RESTART_POLICY - 'never' | 'on-failure' | 'always'
  • WORKER_MAX_RESTARTS
  • WORKER_RESTART_DELAY_MS
  • WORKER_RESTART_BACKOFF_MULTIPLIER

8. Cleanup Service (Advanced Tab)

  • CLEANUP_AUTO_ENABLED
  • CLEANUP_INTERVAL_MS
  • CLEANUP_STALE_TIMEOUT_MS
  • CLEANUP_TASK_AGE_MS

9. Docker (Advanced Tab)

  • DOCKER_AUTO_UPDATE_ENABLED

10. Worker Capabilities (Workers Tab)

  • DEFAULT_LLM_PROVIDER
  • DEFAULT_EMBEDDING_PROVIDER
  • DEFAULT_VECTORDB_PROVIDER
  • WORKER_PROFILES (JSON Editor)
  • CAPABILITY_LIMITS (JSON Editor)

11. Endless Mode (neuer Tab oder Advanced)

  • ENDLESS_MODE_ENABLED
  • ENDLESS_MODE_COMPRESSION_MODEL
  • ENDLESS_MODE_COMPRESSION_TIMEOUT
  • ENDLESS_MODE_FALLBACK_ON_TIMEOUT
  • ENDLESS_MODE_SKIP_SIMPLE_OUTPUTS
  • ENDLESS_MODE_SIMPLE_OUTPUT_THRESHOLD

12. Sonstige fehlende

  • AI_PROVIDER_FALLBACK (Array-Editor)
  • BACKEND_WS_PORT
  • BACKEND_HOST

Komponenten-Refactoring

Die Settings.tsx sollte in kleinere Komponenten aufgeteilt werden:

packages/ui/src/views/Settings/
├── Settings.tsx              # Hauptkomponente mit Tabs
├── GeneralSettings.tsx       # Log Level, Data Dir, Retention, CLAUDE.md, Secrets
├── AIProviderSettings.tsx    # Provider-Auswahl, API Keys, Models
├── ContextSettings.tsx       # Observation Limit, Token Display
├── WorkerSettings.tsx        # Max Workers, Auto-Spawn, Restart Policy
├── AdvancedSettings.tsx      # Network, Database, Vector DB
├── ProcessingSettings.tsx    # Lazy Mode, Sleep Agent, Endless Mode (NEU)
└── components/
    ├── SettingGroup.tsx      # Wiederverwendbare Gruppe mit Label
    ├── SettingToggle.tsx     # Checkbox mit Beschreibung
    ├── SettingInput.tsx      # Text/Number Input mit Beschreibung
    ├── SettingSelect.tsx     # Dropdown mit Beschreibung
    ├── ApiKeyInput.tsx       # Masked Input mit Show/Hide
    └── JsonEditor.tsx        # Für WORKER_PROFILES etc.

Vorgeschlagene Tab-Struktur

Tab Inhalte
General Log Level, Data Dir, Retention, CLAUDE.md, Secret Detection
AI Provider Provider, API Keys, Models, Fallback, Embedding Provider
Context Observation Limit, Token Display
Workers Max Workers, Mode, Auto-Spawn, Restart Policy, Capabilities
Processing Processing Mode, Lazy Mode, Sleep Agent, Endless Mode (NEU)
Advanced Network, Remote Mode, Database, Vector DB, Cleanup, Docker

Priorität

Mittel - Funktional, aber unvollständig und schwer wartbar

## Problem Die Settings-UI zeigt nicht alle verfügbaren Einstellungen aus `packages/shared/src/settings.ts`. Außerdem ist die `Settings.tsx` zu groß und sollte in kleinere Komponenten aufgeteilt werden. ## Fehlende Settings in der UI ### 1. Remote Mode (Advanced Tab) Nur Checkbox vorhanden, aber URLs fehlen: - [ ] `REMOTE_URL` - Backend URL für Remote-Modus - [ ] `REMOTE_TOKEN` - Auth Token für Remote-Modus ### 2. PostgreSQL Konfiguration (Advanced Tab) Nur SQLite-Path sichtbar, PostgreSQL-Felder fehlen: - [ ] `DATABASE_URL` - Connection String - [ ] `DATABASE_HOST` - [ ] `DATABASE_PORT` - [ ] `DATABASE_USER` - [ ] `DATABASE_PASSWORD` - [ ] `DATABASE_NAME` ### 3. Embedding Provider (neuer Abschnitt oder AI Provider Tab) - [ ] `EMBEDDING_PROVIDER` - 'local' | 'mistral' - [ ] `MISTRAL_EMBEDDING_MODEL` ### 4. Processing Mode / Lazy Mode (neuer Tab oder Advanced) - [ ] `PROCESSING_MODE` - 'normal' | 'lazy' | 'hybrid' - [ ] `LAZY_BATCH_INTERVAL` - [ ] `LAZY_PROCESS_ON_SEARCH` - [ ] `LAZY_HYBRID_TYPES` ### 5. Sleep Agent (neuer Abschnitt) - [ ] `SLEEP_AGENT_ENABLED` - [ ] `SLEEP_AGENT_INTERVAL` - [ ] `SLEEP_AGENT_IDLE_TIMEOUT` ### 6. Worker Mode (Workers Tab) - [ ] `WORKER_MODE` - 'spawn' | 'in-process' | 'hybrid' - [ ] `IN_PROCESS_WORKER_TIMEOUT` - [ ] `IN_PROCESS_WORKER_IDLE_EXIT` ### 7. Worker Auto-Restart (Workers Tab) - [ ] `WORKER_RESTART_POLICY` - 'never' | 'on-failure' | 'always' - [ ] `WORKER_MAX_RESTARTS` - [ ] `WORKER_RESTART_DELAY_MS` - [ ] `WORKER_RESTART_BACKOFF_MULTIPLIER` ### 8. Cleanup Service (Advanced Tab) - [ ] `CLEANUP_AUTO_ENABLED` - [ ] `CLEANUP_INTERVAL_MS` - [ ] `CLEANUP_STALE_TIMEOUT_MS` - [ ] `CLEANUP_TASK_AGE_MS` ### 9. Docker (Advanced Tab) - [ ] `DOCKER_AUTO_UPDATE_ENABLED` ### 10. Worker Capabilities (Workers Tab) - [ ] `DEFAULT_LLM_PROVIDER` - [ ] `DEFAULT_EMBEDDING_PROVIDER` - [ ] `DEFAULT_VECTORDB_PROVIDER` - [ ] `WORKER_PROFILES` (JSON Editor) - [ ] `CAPABILITY_LIMITS` (JSON Editor) ### 11. Endless Mode (neuer Tab oder Advanced) - [ ] `ENDLESS_MODE_ENABLED` - [ ] `ENDLESS_MODE_COMPRESSION_MODEL` - [ ] `ENDLESS_MODE_COMPRESSION_TIMEOUT` - [ ] `ENDLESS_MODE_FALLBACK_ON_TIMEOUT` - [ ] `ENDLESS_MODE_SKIP_SIMPLE_OUTPUTS` - [ ] `ENDLESS_MODE_SIMPLE_OUTPUT_THRESHOLD` ### 12. Sonstige fehlende - [ ] `AI_PROVIDER_FALLBACK` (Array-Editor) - [ ] `BACKEND_WS_PORT` - [ ] `BACKEND_HOST` ## Komponenten-Refactoring Die `Settings.tsx` sollte in kleinere Komponenten aufgeteilt werden: ``` packages/ui/src/views/Settings/ ├── Settings.tsx # Hauptkomponente mit Tabs ├── GeneralSettings.tsx # Log Level, Data Dir, Retention, CLAUDE.md, Secrets ├── AIProviderSettings.tsx # Provider-Auswahl, API Keys, Models ├── ContextSettings.tsx # Observation Limit, Token Display ├── WorkerSettings.tsx # Max Workers, Auto-Spawn, Restart Policy ├── AdvancedSettings.tsx # Network, Database, Vector DB ├── ProcessingSettings.tsx # Lazy Mode, Sleep Agent, Endless Mode (NEU) └── components/ ├── SettingGroup.tsx # Wiederverwendbare Gruppe mit Label ├── SettingToggle.tsx # Checkbox mit Beschreibung ├── SettingInput.tsx # Text/Number Input mit Beschreibung ├── SettingSelect.tsx # Dropdown mit Beschreibung ├── ApiKeyInput.tsx # Masked Input mit Show/Hide └── JsonEditor.tsx # Für WORKER_PROFILES etc. ``` ## Vorgeschlagene Tab-Struktur | Tab | Inhalte | |-----|---------| | **General** | Log Level, Data Dir, Retention, CLAUDE.md, Secret Detection | | **AI Provider** | Provider, API Keys, Models, Fallback, Embedding Provider | | **Context** | Observation Limit, Token Display | | **Workers** | Max Workers, Mode, Auto-Spawn, Restart Policy, Capabilities | | **Processing** | Processing Mode, Lazy Mode, Sleep Agent, Endless Mode *(NEU)* | | **Advanced** | Network, Remote Mode, Database, Vector DB, Cleanup, Docker | ## Priorität Mittel - Funktional, aber unvollständig und schwer wartbar
jack closed this issue 2026-01-25 15:08:18 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem#289
No description provided.