ADR-0012 made docs/issues/ canonical for the management scope only and left gitops, ThreadNet-Web and threadnet-call on GitLab "until the component adopts". That split produced exactly what it invited: two numbering worlds where management#20 and gitops#20 are different issues, drift nobody had to answer for (gitops#61 carried no milestone since 2026-08-11), and component backlogs that host sessions without lab access cannot read at all. The 46 open component issues are now files 0056-0101. The file id is the group-wide identifier; provenance lives in the frontmatter (new field `projekt` plus gitlab_iid) and in the filename, so "gitops#61" still finds 0091. Bodies are copied verbatim; comments and history stay on GitLab, as with the 2026-08-11 management import. Both scripts learned the second dimension: spiegel_issues.py routes each file to its origin project, reopens issues that are open in the repo but closed on the board, and writes the new iid back after creating one; gruppenpruefung.py checks drift across all four trackers instead of management alone. What the mirror cannot decide stays a finding, not a silent state. Two things needed a hand, both recorded in the files: gitops#61 had no milestone (M1 - it is a live account-takeover path) and carried two area labels where the schema holds one. The Gitea migration footers in the imported bodies point at decommissioned trackers; their links are removed, the provenance sentence stays. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
---
|
|
type: issue
|
|
id: "0093"
|
|
status: open
|
|
created: 2026-07-29
|
|
milestone: M4
|
|
priority: medium
|
|
projekt: threadnet-web
|
|
gitlab_iid: "3"
|
|
related: []
|
|
---
|
|
# Settings normalisieren: Video/Audio-Einstellungen nur im Call-Widget, nicht im Haupt-Client
|
|
|
|
> Adoptiert aus [threadnet-web#3](https://git.lab/axion1337.chat/ThreadNet-Web/-/issues/3) (2026-08-18, ADR-0019). Kommentare und Verlauf bleiben dort; kanonisch ist ab jetzt diese Datei.
|
|
|
|
Beim Durchgehen der Einstellungs-Oberflächen aufgefallen: Element Web (der
|
|
Haupt-Client) und Element Call (das eingebettete Widget) haben **getrennte, sich teils
|
|
überschneidende Settings-UIs** für Audio/Video, ohne erkennbare Synchronisation.
|
|
|
|
**Konkreter Ist-Zustand**:
|
|
- Element Web hat einen eigenen "Voice & Video"-Tab
|
|
(`apps/web/src/components/views/settings/tabs/user/VoiceUserSettingsTab.tsx`) mit:
|
|
Audio-Eingabe-/Ausgabegerät, Video-Eingabegerät, sowie Echo-Cancellation/Noise-Suppression/
|
|
Auto-Gain-Toggles.
|
|
- Element Call (unser Fork, `threadnet-call`) hat im "Video"-Tab (heute erweitert,
|
|
Issue #8/#11-Kontext) eigene `AudioProcessingSettings` (dieselben drei Audio-Toggles!) UND
|
|
die `MediaQualitySettings` (Auflösung/Framerate/Bitrate/Codec für Kamera + Screen-Share).
|
|
- **Überschneidung**: die Echo/Noise/Gain-Toggles existieren scheinbar an beiden Stellen als
|
|
getrennte Settings-Objekte (unterschiedliche `SettingLevel`/Storage-Mechanismen je nach
|
|
Codebasis) - unklar, ob sie synchron bleiben oder sich widersprechen können.
|
|
- **Lücke**: die Video-Qualitätseinstellungen (Auflösung/Framerate/Bitrate/Codec) gibt es
|
|
**nur** im Call-Widget. Ein Nutzer, der seine Präferenzen vorab einstellen will (ohne
|
|
gerade in einem Call zu sein), findet dafür nichts im Haupt-Client - müsste dafür erst
|
|
einen Call starten/das Widget öffnen.
|
|
|
|
**Mehrwert einer Normalisierung**: konsistente, einmal auffindbare Einstellungen statt
|
|
zwei getrennter Orte mit potenziell widersprüchlichem Zustand. Nutzer erwarten
|
|
Video-Qualitätseinstellungen vermutlich eher im Haupt-Client als im Widget.
|
|
|
|
**Zu klären/umzusetzen** (spannt vermutlich beide Repos, `ThreadNet-Web` + `threadnet-call`):
|
|
1. Bestandsaufnahme: teilen sich die Audio-Toggles bereits denselben Storage-Mechanismus
|
|
(z.B. beide über Matrix-Account-Data) oder sind das wirklich zwei unabhängige Zustände?
|
|
2. Video-Qualitätseinstellungen: entweder in Element Webs eigenen "Voice & Video"-Tab
|
|
duplizieren (mit Sync zum Widget) oder zumindest einen Link/Verweis vom Haupt-Client zum
|
|
Call-Widget-Setting ergänzen, damit sie auffindbar sind, ohne aktiv in einem Call zu sein.
|
|
3. Grundsatzentscheidung: sollen beide UIs langfristig dieselben Setting-Objekte teilen
|
|
(echte Normalisierung), oder reicht ein Verweis/Link als pragmatischere Zwischenlösung?
|
|
|
|
---
|
|
*Migriert aus Gitea `sorb/ThreadNet-Web#3` — dort erstellt am 2026-07-29 von sorb.*
|
|
<!-- gitea-migration: sorb/ThreadNet-Web#3 -->
|