Tighten web surfaces and clean handoff
This commit is contained in:
@@ -42,7 +42,7 @@ The current delivery order is intentionally software-first:
|
||||
- Logic tick target: 120 Hz
|
||||
- Frame synthesis target: 60 Hz
|
||||
- Network send target: 40-60 Hz, profile dependent
|
||||
- Preview target: 10-15 Hz
|
||||
- Preview target: up to 60 Hz when the active surface can render it cleanly, otherwise 30 Hz fallback
|
||||
|
||||
Preview and telemetry are explicitly degradable. Realtime output is not.
|
||||
|
||||
|
||||
121
docs/codex_worklog.md
Normal file
121
docs/codex_worklog.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# Codex Worklog
|
||||
|
||||
## 2026-04-20 - Creative Surface kompakter und Preview-FPS-Pruefung
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `web/v1/styles.css`
|
||||
- `web/v1/app.js`
|
||||
- `crates/infinity_host/src/runtime.rs`
|
||||
- `docs/architecture.md`
|
||||
- Fachliche Aenderungen:
|
||||
- Creative Surface kompakter aufgestellt, damit die 18 Preview-Panels im 6x3-Raster besser vollstaendig sichtbar bleiben.
|
||||
- Frontend-Preview-Drosselung von ca. 11 fps entfernt und auf eine ruhige `requestAnimationFrame`-basierte Taktung mit Host-orientiertem Ziel-FPS umgestellt.
|
||||
- Host-Preview-Schedule von 15 Hz auf 60 Hz angehoben, ohne neue Architektur einzuziehen.
|
||||
- Dokumentation des Preview-Ziels auf den aktuellen Stand gebracht.
|
||||
- Gelaufene Tests:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -q -p infinity_host`
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- lokaler API-Check gegen temporaeren Host auf `127.0.0.1:9002` mit bestaetigtem `engine.preview_hz = 60`
|
||||
- kein echter Browser-Handtest in dieser CLI-Umgebung moeglich
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Kein Canvas-Preview-Rewrite in diesem Schritt; die bestehende DOM/CSS-Preview bleibt erhalten und wird nur verschlankt sowie render-seitig entdrosselt.
|
||||
|
||||
## 2026-04-20 - Diskretere Preview-Wirkung und weniger Preview-Clutter
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `crates/infinity_host/src/scene.rs`
|
||||
- `crates/infinity_host_api/src/server.rs`
|
||||
- `web/v1/app.js`
|
||||
- `web/v1/index.html`
|
||||
- Fachliche Aenderungen:
|
||||
- Normale Pattern-Intensitaet vor Preview-Ausgabe auf 10%-Stufen quantisiert.
|
||||
- Normales Preview-Smoothing standardmaessig stark reduziert; nur `breathing` darf weiterhin ueber den bestehenden `fade`-Pfad weich bleiben.
|
||||
- Preview-Stream im WebSocket sendet Preview nur noch bei geaendertem Payload; der bestehende Snapshot-Heartbeat bleibt fuer den API-Vertrag erhalten.
|
||||
- Master Brightness in den Header verschoben; linke Brightness-Sektion zeigt nur noch pattern-spezifische Helligkeitsparameter.
|
||||
- Den sichtbaren `speed`-Slider aus der Creative Surface entfernt; BPM oben plus `tempo_multiplier` bleiben die Geschwindigkeitsbedienung.
|
||||
- Gelaufene Tests:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -q -p infinity_host`
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Keine vollstaendige Python-Pattern-Engine-Portierung; stattdessen gezielte Diskretisierung und Stream-Beruhigung innerhalb der bestehenden Rust-Host-/Web-Architektur.
|
||||
- Kein echter Browser-Handtest in dieser CLI-Umgebung moeglich.
|
||||
|
||||
## 2026-04-20 - Creative Surface Redesign und Control-Fix (gezielt)
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `web/v1/index.html`
|
||||
- `web/v1/app.js`
|
||||
- `web/v1/styles.css`
|
||||
- `crates/infinity_host/src/scene.rs`
|
||||
- Fachliche Aenderungen:
|
||||
- Redundante globale Brightness-Steuerung in der linken Spalte entfernt; Master Brightness bleibt oben im Header.
|
||||
- Sichtbaren `speed`-Slider in der Creative Surface entfernt; Bedienung ueber BPM oben plus `tempo_multiplier` in den Pattern-Parametern.
|
||||
- `palette`, `color_mode`, `direction`, `mirror` als feste Controls (keine freien Textfelder) in der Web-UI beibehalten/abgesichert.
|
||||
- Palette auf zwei feste Gruppen mit den vorgegebenen Namen und Hex-Werten umgestellt; Host-Palette-Mapping auf dieselben IDs umgestellt.
|
||||
- Layout gezielt entkapselt: weniger harte Rahmen, leichtere Rails, kompaktere Topbar, mehr zusammenhaengende Arbeitsflaeche.
|
||||
- Preview-Grid auf feste 6 Spalten gesetzt und Tiles quadratisch gemacht (`aspect-ratio: 1 / 1`) fuer ein klares 3x6-Raster.
|
||||
- Gelaufene Tests:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -q -p infinity_host`
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- Browser-Handtest:
|
||||
- Versuch via lokalem Headless-Firefox auf `127.0.0.1:9002` ist in dieser Umgebung fehlgeschlagen (`cannot open display: :0` / Firefox Headless-Crash).
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Die neue, fest vorgegebene Palette-Liste ersetzt die alten Python-Palettenamen; das ist eine inhaltliche Vorgabe dieses Arbeitsschritts.
|
||||
|
||||
## 2026-04-20 - Palette ersetzen, linken Brightness-Slider entfernen, linke Rail entzerren
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `web/v1/index.html`
|
||||
- `web/v1/app.js`
|
||||
- `web/v1/styles.css`
|
||||
- Fachliche Aenderungen:
|
||||
- Die Creative-Surface-Palette bleibt auf die kuratierte WS2812-Liste mit exakt vorgegebenen Namen und Hex-Werten beschraenkt.
|
||||
- Den unteren Brightness-Bereich in der linken Spalte vollstaendig entfernt; globale Helligkeit bleibt ausschliesslich im Header.
|
||||
- Den dynamisch aus Host-Parametern kommenden `brightness`-Control in der linken Rail ausgefiltert.
|
||||
- Die linke Rail moderat verbreitert und Parameterfelder so nachgezogen, dass Dropdowns, Labels und Farbwerte weniger gequetscht sind.
|
||||
- Gelaufene Tests:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -q -p infinity_host`
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- lokaler CLI-Smoke gegen temporaeren Host auf `127.0.0.1:9002` via `/api/v1/state` und `/api/v1/preview`
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Keine; dieser Schritt korrigiert nur die Web-Darstellung und blendet den global redundanten Brightness-Slider links aus.
|
||||
|
||||
## 2026-04-20 - Technical Surface null-safe gegen fehlende recent_events
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `web/v1/technical.js`
|
||||
- `crates/infinity_host_api/tests/contract.rs`
|
||||
- `docs/codex_worklog.md`
|
||||
- Fachliche Aenderungen:
|
||||
- Technical Surface gegen unvollstaendige oder startende Snapshot-Daten robuster gemacht.
|
||||
- `recent_events`, `system`, `technical`, `nodes` und `panels` werden in der UI jetzt ueber null-safe Helper mit Fallbacks gelesen.
|
||||
- Direkter Zugriff auf `snapshot.recent_events.map(...)` entfernt, damit `/technical` nicht mehr crasht, wenn das Feld fehlt.
|
||||
- Contract-/UI-Smoke-Test ergaenzt, der absichert, dass das ausgelieferte `technical.js` den Guard fuer fehlende `recent_events` enthaelt, waehrend `/api/v1/state` das Feld weiterhin weglassen darf.
|
||||
- Gelaufene Tests:
|
||||
- `cargo fmt --check`
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- lokaler Host-Smoke auf `127.0.0.1:9011` mit erfolgreichem Abruf von `/` und `/api/v1/state`
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Keine; das ist ein reiner Stabilitaets-/Robustheitsfix in der bestehenden Web-Oberflaeche.
|
||||
|
||||
## 2026-04-20 - Browser-Smoke-Runner und Output-Disable-Fix
|
||||
|
||||
- Geaenderte Dateien:
|
||||
- `web/v1/technical.js`
|
||||
- `crates/infinity_host_api/tests/contract.rs`
|
||||
- `scripts/codex_browser_smoke.sh`
|
||||
- `docs/codex_worklog.md`
|
||||
- Fachliche Aenderungen:
|
||||
- Technical-Output-Controls gegen Polling-/Apply-Rennen stabilisiert, indem waehrend `saveOutputSettings()` ein `outputSaving`-Zustand gesetzt wird.
|
||||
- Output-Controls werden waehrend des Speicherns kurz deaktiviert und der Draft wird in dieser Zeit nicht von Polling-Snapshots ueberschrieben.
|
||||
- Contract-Test ergaenzt, der absichert, dass `output_enabled` nach vorherigem Aktivieren wieder sauber auf `false` gesetzt werden kann.
|
||||
- Kleinen lokalen Browser-/Route-Smoke-Runner fuer Codex angelegt, der eine Kurzinstanz startet und `/`, `/technical` sowie `/technical.js` selbst prueft.
|
||||
- Gelaufene Tests:
|
||||
- `cargo test -q -p infinity_host_api --test contract`
|
||||
- `scripts/codex_browser_smoke.sh 9012`
|
||||
- Bewusste Abweichungen zur Python-Version:
|
||||
- Keine; der Schritt behebt einen Web-Workflow-Bug und verbessert nur den lokalen Debug-Pfad.
|
||||
@@ -9,11 +9,27 @@ Diese Datei ist die schnelle Uebergabe fuer ein kleineres Modell wie Qwen 14B. S
|
||||
- Host-Core ist die zentrale Runtime und bleibt die einzige Kernarchitektur.
|
||||
- API v1 ist die verbindliche Aussenkante fuer State, Preview, Snapshot, Catalog, Commands und Event-Stream.
|
||||
- Die Creative Surface lebt in `web/v1/` und ist die operatorische Web-Oberflaeche.
|
||||
- Die Desktop-GUI in `crates/infinity_host_ui/` bleibt die technische Engineering-/Diagnoseoberflaeche.
|
||||
- Die Technical Surface in `web/v1/technical.html` plus `web/v1/technical.js` ist die aktuelle technische Web-Oberflaeche.
|
||||
- Die Desktop-GUI in `crates/infinity_host_ui/` existiert weiter als technische Engineering-/Diagnoseflaeche, ist aber nicht der primaere aktuelle UI-Arbeitspfad.
|
||||
- Persistenz, Recovery und Runtime-Show-Store sind vorhanden.
|
||||
- Show-Control-v1-Primitive sind faktisch eingefroren und dokumentiert.
|
||||
- Ein generischer externer Control-Pfad ist vorhanden, aber bewusst nicht grandMA-spezifisch.
|
||||
|
||||
## Frisch umgesetzt in dieser Arbeitsphase
|
||||
|
||||
- Creative Surface wurde kompakter gemacht, damit alle 18 Panels im 3x6-Raster gleichzeitig sichtbar bleiben.
|
||||
- Preview- und normale Pattern-Wirkung wurden diskreter gemacht:
|
||||
- Preview-Ziel im Host liegt jetzt bei bis zu 60 Hz.
|
||||
- Normale Preview-/Pattern-Helligkeit ist auf 10%-Stufen quantisiert.
|
||||
- Preview-Updates und WebSocket-Preview-Frames werden nur noch bei inhaltlicher Aenderung weitergeschoben.
|
||||
- Die feste WS2812-Palette wurde in Host und Web-UI hinterlegt; alte freie/abweichende Palettennamen wurden ersetzt.
|
||||
- Globaler Master-Brightness sitzt nur noch im Header; redundante globale Brightness-Bedienung links ist entfernt.
|
||||
- Die Technical Surface ist robuster gegen unvollstaendige Snapshots, insbesondere fehlende `recent_events`.
|
||||
- Fuer Codex gibt es jetzt einen lokalen Route-/Browser-Smoke-Runner:
|
||||
- `scripts/codex_browser_smoke.sh`
|
||||
- prueft `/`, `/technical` und `/technical.js` gegen eine frische Kurzinstanz
|
||||
- ersetzt noch keinen vollgerenderten Headless-Browser mit DOM-Interaktion
|
||||
|
||||
## Lokale Umgebung auf diesem Rechner
|
||||
|
||||
- Arbeitsverzeichnis des Rust-Projekts: `/home/jan/Documents/RFP/Infinity_Vis_Rust`
|
||||
@@ -77,6 +93,8 @@ Die wichtigsten Fortschrittsanker liegen hier:
|
||||
Konflikt- und Ownership-Regeln zwischen Web-UI, technischer GUI und externen Control-Quellen.
|
||||
- [docs/local_software_only_runbook.md](/home/jan/Documents/RFP/Infinity_Vis_Rust/docs/local_software_only_runbook.md:1)
|
||||
Reproduzierbarer software-only Startpfad.
|
||||
- [docs/codex_worklog.md](/home/jan/Documents/RFP/Infinity_Vis_Rust/docs/codex_worklog.md:1)
|
||||
Knapper Verlauf der letzten Codex-Arbeitspakete inklusive Tests, Abweichungen und lokalen Smoke-Checks.
|
||||
- [crates/infinity_host/tests/show_control_v1_golden.rs](/home/jan/Documents/RFP/Infinity_Vis_Rust/crates/infinity_host/tests/show_control_v1_golden.rs:1)
|
||||
Golden-Trace- und Replay-Schutz fuer die zentrale v1-Semantik.
|
||||
- Git-Historie:
|
||||
@@ -129,6 +147,7 @@ Die wichtigsten Fortschrittsanker liegen hier:
|
||||
- [styles.css](/home/jan/Documents/RFP/Infinity_Vis_Rust/web/v1/styles.css:1)
|
||||
- [technical.html](/home/jan/Documents/RFP/Infinity_Vis_Rust/web/v1/technical.html:1)
|
||||
- [technical.js](/home/jan/Documents/RFP/Infinity_Vis_Rust/web/v1/technical.js:1)
|
||||
- [codex_browser_smoke.sh](/home/jan/Documents/RFP/Infinity_Vis_Rust/scripts/codex_browser_smoke.sh:1)
|
||||
|
||||
## Was aktuell als stabil gelten soll
|
||||
|
||||
@@ -139,6 +158,7 @@ Die wichtigsten Fortschrittsanker liegen hier:
|
||||
- `Show/Event` bleibt staged plus Commit ueber `Go` oder `Fade Go`.
|
||||
- Preview-Only und Offline-Status ehrlich anzeigen, keine Fake-Nodes.
|
||||
- Creative Surface nicht mit technischen Mapping-Details ueberladen.
|
||||
- Technical Surface muss gegen partielle/startende State-Snapshots robust bleiben.
|
||||
|
||||
## Sichere Arbeitsreihenfolge fuer weitere Aenderungen
|
||||
|
||||
@@ -156,6 +176,7 @@ Die wichtigsten Fortschrittsanker liegen hier:
|
||||
. "$HOME/.cargo/env"
|
||||
cargo test -q -p infinity_host
|
||||
cargo test -q -p infinity_host_api --test contract
|
||||
scripts/codex_browser_smoke.sh 9012
|
||||
```
|
||||
|
||||
Fuer lokalen software-only Start:
|
||||
@@ -170,6 +191,7 @@ cargo run -p infinity_host_api -- --config config/project.example.toml --bind 12
|
||||
- Das alte Python-Projekt ist derzeit nicht lokal neben dem Repo ausgecheckt. Fuer echte 1:1-Conformance-Vergleiche sollte es bewusst lokal daneben geklont werden.
|
||||
- Das Runbook enthaelt noch einen veralteten Hinweis aus der frueheren Arbeitsbaum-Phase; aktuell ist das Repo wieder ein echter Git-Clone mit `.git`.
|
||||
- Die grosse Pattern-Conformance gegen das alte Python-Projekt ist noch nicht vollstaendig als separater, systematischer Abgleich abgeschlossen.
|
||||
- Ein echter gerenderter Headless-Browser-Runner mit DOM-Interaktion ist lokal noch nicht sauber eingerichtet; vorhanden ist aktuell nur der Route-/Asset-Smoke ueber `scripts/codex_browser_smoke.sh`.
|
||||
|
||||
## Kurzbriefing fuer das naechste Modell
|
||||
|
||||
|
||||
Reference in New Issue
Block a user