Claude: Screenshot Phase 1

This commit is contained in:
chk
2026-06-04 19:53:04 +02:00
parent 0e706428ce
commit 132e0ec597
4 changed files with 202 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
# AppRobotWebcam Hi-Res-Snapshot via Consumer-Umhängen
> Status: **Konzept, phasenweise testbar.** Noch nicht umgesetzt.
> Status: **Phase 1 implementiert** (Code steht, Messung an der Live-Instanz steht
> noch aus). Phase 2 weiterhin Konzept.
> Vorgeschichte & gescheiterte Ansätze: siehe `04_Delay_roadmap.md` (Abschnitt
> „KONSOLIDIERT"). Diese Datei beschreibt den Ansatz, der die dort dokumentierten
> Fehler **strukturell** umgeht.
@@ -121,6 +122,17 @@ im schlimmsten Fall ist es ein Reconnect von cam0.
```
5. Kein Schreibzugriff auf go2rtc. Nur Lesen.
### Umgesetzt am 2026-06-04
- **Node:** `GET /api/snapshot/:id/release-test` in `src/snapshotService.js` pollt
`/api/streams` alle 200 ms (max. 10 s), misst `zeroConsumerAt`/`producerStoppedAt`,
liefert `{ freed, msUntilFree, samples }`. Rein lesend. Parser an den bestehenden
`server.js`-Monitor angelehnt (`producers[].state === 'running'`, `consumers.length`).
- **Viewer:** Pro Kamera Button „HD?" in `public/viewer.js`. Friert den Frame auf ein
`<canvas>` („HD Image Work"), entfernt den `<video-stream>` (Umhängen), ruft den
Endpunkt, hängt im `finally` **immer** wieder auf Live zurück.
- **Messung an der Live-Instanz steht noch aus** (Docker/go2rtc auf dem Server) erst
diese liefert das echte `msUntilFree` für Schritt 3/5.
### Erfolgskriterium Phase 1
- Log/JSON zeigt `freed: true` und eine **konkrete** `msUntilFree`.
- Nach dem Test (Schritt 6) zeigt cam0 wieder normal Live (~50 % CPU, stabil).