53 KiB
TEST_LOG.md
Unieke categorie-iconen - 2026-07-22
| Check | Resultaat |
|---|---|
| Live inventaris | Pass; 16 categorieën bevatten al 16 unieke semantische waarden, waarvan 10 eerder niet door de frontendrenderer werden herkend |
| Renderer en instellingen | Pass; één catalogus levert 19 opties en alle 16 canonieke categorieën resolven naar een afzonderlijke Lucide-component |
| Nieuwe categorie | Pass; kiest automatisch het eerste nog ongebruikte ondersteunde pictogram |
| Onbekende importwaarde | Pass; veilige Layers3-fallback blijft behouden en verschijnt als Aangepast in Instellingen |
npm run format:check / lint / typecheck |
Pass |
| Unit/integratie / security | Pass; 57/57 en 5/5 |
| Playwright | Pass; 13 uitgevoerd en 15 project-gededupliceerd op desktop, tablet, mobiel en ultrawide |
| Build / audit | Pass; JS 377,08 kB, CSS 187,64 kB, server 182,0 kB en 0 kwetsbaarheden |
| React-review | Pass; named components, stabiele catalogus, afgeleide icoonkeuze en behouden semantische SVG-presentatie |
De release draait live op Tower met image sha256:1cf11fc02e7e…, is healthy en heeft 0 herstarts. De .env en bestaande JPEG-wallpaper van 3.245.835 bytes bleven byte-identiek. Chrome bevestigt in Categorieën 16 opgeslagen icoonwaarden, 16 gerenderde SVG's en 16 unieke SVG-signaturen; het dashboard toont dezelfde semantische pictogrammen en rapporteert 0 browserwaarschuwingen of -fouten. Er was geen databasewijziging nodig: de bestaande unieke waarden worden uitsluitend voortaan correct gerenderd.
Platformbrede wallpaperlaag - 2026-07-22
| Check | Resultaat |
|---|---|
| Geometrie | Pass; stage start op 72 px, eindigt op de viewportonderrand en is exact viewportbreed vanaf x=0 |
| Presetprioriteit | Pass; canvas heeft bij een wallpaper background-image: none en een transparante achtergrond |
| Compositie | Pass; scherp instelbaar beeld plus zachte cover-ambientlaag, met glasoppervlakken voor linkerrail, tegels en rechter widgetdock |
| Scrollgedrag | Pass; fixed stage blijft onder de topbalk staan terwijl de dashboardinhoud onafhankelijk doorloopt |
npm run format:check / lint / typecheck |
Pass |
| Unit/integratie / security | Pass; 54/54 en 5/5 |
| Playwright | Pass; 13 uitgevoerd en 15 project-gededupliceerd op desktop, tablet, mobiel en ultrawide; geen horizontale overflow |
| Build / audit | Pass; JS 375,95 kB, CSS 187,64 kB, server 182,0 kB en 0 kwetsbaarheden |
| React-review | Pass; decoratieve ambientbeelden zijn verborgen, de bestaande semantiek en lokale draftstate blijven intact |
De live Tower-release draait op image sha256:f5d62a9e30f6…, is healthy en heeft 0 herstarts. De .env en bestaande JPEG-wallpaper van 3.245.835 bytes bleven byte-identiek; Unraid, AppOps en alle zeven livepanelen zijn connected. Chrome bevestigt op 3440×1215 een fixed stage van x=0/y=72 tot de volledige 3425×1143 browsercontentruimte. Na 900 px scroll blijft y=72 behouden, de presetcanvas blijft transparant, beide zijpanelen gebruiken 62% glas en er is geen horizontale overflow of applicatiefout.
Responsieve wallpaperstudio - 2026-07-22
| Check | Resultaat |
|---|---|
| Reproductie | Pass; cover schaalde tegen een 3077×3015 contentcanvas in plaats van het zichtbare centrale viewport van 3077×1143 |
| Viewportstage | Pass; wallpaper schaalt tegen 100svh - 72px, blijft tijdens scrollen in het centrale vlak en verstoort het ultrawide dock niet |
| Preview en bediening | Pass; Passend/Vullend, X-/Y-focus, 80–160% zoom, herstel en expliciet toepassen |
| Persistentie/migratie/export | Pass; vier nieuwe gevalideerde voorkeuren, legacydefaults en versie 1 round-trip |
npm run format:check / lint / typecheck |
Pass |
| Unit/integratie / security | Pass; 54/54 en 5/5 |
| Playwright | Pass; 13 uitgevoerd en 15 project-gededupliceerd op desktop, tablet, mobiel en ultrawide |
| Build / audit | Pass; JS 375,56 kB, CSS 185,13 kB, server 182,0 kB en 0 kwetsbaarheden |
| React-review | Pass; lokale draftstate, volledige dependencies, semantische controls, toetsenbordbediening en decoratieve alttekst |
De live Tower-release draait op image sha256:606051e4f146…, is healthy en heeft 0 herstarts. De .env en bestaande JPEG-wallpaper van 3.245.835 bytes bleven byte-identiek. Chrome bevestigt op 3440×1215 een wallpaperstage van 2381×1143 binnen een 3015 px hoge scrollcanvas: Passend, 50/50-focus en 100% zoom, zonder horizontale overflow of browserfouten. De gecentreerde studio-preview is 1600×686; Vullend wijzigt alleen de draft en Herstellen zet die terug zonder de live voorkeur te overschrijven.
Achtergrond- en wallpaperherstel - 2026-07-22
| Check | Resultaat |
|---|---|
| Reproductie live | Pass; voorkeur grid en JPEG-wallpaper van 3,2 MB waren opgeslagen, maar de CSS-compositie werd ongeldig verklaard door een ontbrekende semantische token |
| Achtergrondpresets | Pass; Aurora, Blauwdruk en Minimaal leveren drie verschillende berekende canvasachtergronden |
| Wallpaperflow | Pass; upload via Instellingen verschijnt als preview, zet has-wallpaper en wordt als /api/wallpaper in de zichtbare canvas gerenderd |
npm run format:check / lint / typecheck |
Pass |
| Unit/integratie / security | Pass; 54/54 en 5/5 |
| Playwright | Pass; 13 uitgevoerd en 15 project-gededupliceerd, inclusief de nieuwe end-to-end achtergrondflow |
| Build / audit | Pass; JS 371,81 kB, CSS 180,35 kB, server 180,6 kB en 0 kwetsbaarheden |
| Live Unraid-release | Pass; image sha256:977791a84355… healthy met 0 herstarts, .env byte-identiek en bestaande JPEG-wallpaper van 3.245.835 bytes behouden |
| Live Chrome-audit | Pass op 3440×1215; alle presets visueel en berekend verschillend, wallpaper in iedere compositie, 0 overflow en 0 browserfouten |
De audit heeft via de echte instellingeninterface Aurora, Minimaal en Blauwdruk geactiveerd. De wallpaper bleef tijdens iedere wissel zichtbaar; de canvascomposities gebruikten respectievelijk kleurlichten, een rustige overlay en een raster van 40 px. Blauwdruk is na de controle als actieve gebruikersvoorkeur hersteld.
Premium wallpaper-, weer- en controlpass - 2026-07-22
| Check | Resultaat |
|---|---|
| Typecheck en unit/integratie | Pass; 54/54 tests inclusief weer-cache en wallpaperformaten |
| Playwright | Pass; 12 uitgevoerd, 12 project-gededupliceerd; desktop/tablet/mobile/3440px, 0 browserfouten |
| Toggle-geometrie | Pass; E2E bevestigt meer dan 18px verplaatsing tussen beide zichtbare posities |
| Visuele screenshots | Pass; weerbadge, compacte Home Assistant-tegel, consistente rails en geen horizontale overflow |
| React-review | Pass; effectcleanup, locatie-afhankelijke revalidatie, semantische switches en server-side datafetch |
De finale lint, typecheck, unit/integratie, Playwright, security, build en audit zijn groen. Build: client-JS 371,81 kB (115,70 kB gzip), CSS 178,48 kB (30,05 kB gzip), server 180,6 kB; npm audit meldt 0 kwetsbaarheden. Tower docker compose config en imagebuild zijn groen; image a371cab602ce… draait healthy met 0 restarts en een byte-identieke .env. Live wallpapercyclus: PUT 201, GET 200, DELETE 204. Open-Meteo gaf voor Mol 21,2 °C/bewolkt. Alle zes appwidgets zijn connected; de ultrawide Chrome-audit toont 0 functionele fouten.
Project: DockDeck Laatste gate: 2026-07-22
Autoritatieve inventarisheartbeat en instellingen-UX — 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 48/48; inclusief connected-only opschoning, degraded behoud, deduplicatie en read-only/case-insensitieve Unraid-iconen |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 12 uitgevoerd / 12 project-gededupliceerd op vier viewports; dashboardcategoriefilter en 0 console-/paginafouten |
npm run build |
Pass, JS 364,55 kB / 113,69 kB gzip; CSS 170,68 kB / 28,53 kB gzip; server 167,2 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| In-app browseraudit | Pass op 1440×900: topbars beide left=32/height=72, filter reduceert tot één groep, verticale Integraties, 14px kleine tekst, brede Paneelstudio |
| React-review | Pass: single-flight heartbeat, cleanup van timer/listeners, afgeleide filterstate, semantische knoppen, stabiele ids en lokaal begrensde state |
De browseraudit mat geen horizontale overflow en bevatte geen browserwarnings of -errors. De opschoonregel wijzigt uitsluitend DockDecks SQLite-records na een verbonden inventarisrespons; Docker blijft read-only en een degraded heartbeat verwijdert niets.
Live release 5e411d1: Compose-config en imagebuild groen; image sha256:2d320ff25b66eb84e3fdad27f5437ad8c9732e99891ceb14d714e95655c6db2c; container healthy met 0 herstarts en PID 1 als UID 100. De secretvrije pre-sync-export bevat 139 apps, 16 categorieën en 1 favoriet (SHA-256 35d1cf987511177a7246e906afd27f42f87f714f4b621358aaa21ab22b5873ea). Na de verbonden heartbeat: 90 apps, 50 zichtbaar, 16 categorieën, 0 stale/ontbrekende/dubbele namen en 0 statusafwijkingen tegenover AppOps. Alle 5 lokale Unraid-iconen geven HTTP 200 met een afbeelding-MIME-type.
Finale visuele audit — 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42; inclusief persistente echte ontdekstatus en legacy-migratie |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd op vier viewports; 0 console-/paginafouten |
npm run build |
Pass, JS 361,49 kB / 113,01 kB gzip; CSS 147,26 kB / 25,19 kB gzip; server 164,6 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| In-app Chrome-audit | Pass: dashboard, Quick Launch en alle zeven instellingensecties; 390, 768, 1440 en 3440 px; geen horizontale overflow |
| React-review | Pass: afgeleide catalogusstate, begrensde renders, effect-cleanup, semantische controls, stabiele keys en portalfocus |
| Secret-/mutatiescan | Pass; geen toegevoegde secrets, externe UI-assets of Docker-mutaties |
| Lokale Docker-validatie | Niet beschikbaar: Windows-omgeving heeft geen Docker-CLI; Compose en imagebuild worden op Tower uitgevoerd |
De audit heeft de operationele servicepanelen onder een compacte maar zichtbare Live inzicht-rij geplaatst, zonder de Paneelstudio of configuratie te verwijderen. Appbeheer gebruikt maximaal twintig rijen per pagina en een echte isNew-status; Widget Studio toont twaalf mogelijkheden per tranche. Geavanceerde weergavekeuzes en favoriete-editorvelden blijven volledig werkend via expliciete uitklapsecties. De Quick Launch-portal vult op ultrawide het volledige viewport en herstelt de invoerfocus na de portalovergang.
Live release 72879e1
| Check | Resultaat |
|---|---|
| Pre-deploybehoud | Secretvrije export opgeslagen; .env-SHA-256 vóór/staging/na identiek; named volume dockdeck_dockdeck_data behouden |
docker compose config --quiet |
Pass op huidige en gestagede bron |
| Klassieke Docker-imagebuild | Pass; image sha256:5025a6599410…, bundels identiek aan de lokale build |
| Compose release | Pass; één DockDeck-container, healthy, 0 herstarts op 192.168.10.150:1218 |
| Persistentie/schema | Pass; 138 apps, 55 zichtbaar, 1 favoriet, 3 categorieën, 6 appwidgets en dark theme; alle API-records hebben isNew |
| Read-only integraties | Pass; 233 templates, 3 array-/poolgroepen en 89 AppOps-containers connected; NPM bewust disabled |
| Live Chrome-audit | Pass op 3440×1271: favorietenrail, echte iconen, 0 monogrammen, Quick Launch 3440 px met focus, alle zeven instellingensecties en 0 overflow |
De vorige bronversie blijft recoverable onder /mnt/user/appdata/dockdeck-prev-20260722-025420; de secretvrije pre-release-export en behoudsmetingen staan afgeschermd onder /mnt/user/appdata/dockdeck-release-backups/72879e1-20260722-025420.
Checks
| Check | Command / evidence | Result |
|---|---|---|
| Dependency-installatie | npm install |
Pass |
| Formatting | npm run format:check |
Pass |
| Lint | npm run lint |
Pass, 0 warnings |
| TypeScript | npm run typecheck |
Pass |
| Unit/integratie/migratie | npm test |
Pass, 42/42; inclusief app-/serverhistoriek, widgetpersistentie, capabilityprofielen en duale Unraid-icooncachehelper |
| Read-only security | npm run test:security |
Pass, 5/5; inclusief GET-only providergrens, serviceworker zonder API-cache en cachehelper zonder Docker-mutaties |
| Browserflows | npm run test:e2e |
Pass, 10 uitgevoerd / 18 bewust overgeslagen; vier viewports, advanced widgets, presets, diagnostics en editmodus |
| Production build | npm run build |
Pass; client 305.49 kB / 91.03 kB gzip, CSS 69.77 kB / 12.85 kB gzip, serverbundle 163.0 kB |
| Dependency security | npm audit --audit-level=moderate |
Pass, 0 vulnerabilities |
| Production smoke | PORT=3100 npm start + HTTP checks |
Pass: health ok, HTML 200, 4 mockapps, alle nieuw verborgen |
| Visuele browseraudit | In-app Chromium, echte lokale UI | Pass: diepe widgetinstellingen op 375×812 en 2560×1440; mobiele codecontract-overflow hersteld, 0 consolefouten |
| Secret-/mutatiescan | rg plus securitytests |
Pass; alleen verwachte envnamen en socketmount in de aparte proxy |
| Unraid Compose-config | docker compose config --quiet |
Pass op Tower/Unraid |
| Unraid image/build | Klassieke Docker-builder | Pass; de BuildKit-cache op de host was inconsistent, de klassieke builder bouwde dockdeck:local |
| Unraid live smoke | Compose, health en HTTP API | Pass: healthy, 0 restarts, 192.168.10.150:1218, persistent named volume |
| Live read-only discovery | Socketproxy + metadata-mirror | Pass: 77 containers, 228 bruikbare templates; 230 templates gesaneerd en geverifieerd tot Name/WebUI/Icon |
| Responsive live release | Unraid Compose + Chromium | Pass: 192.168.10.150:1218, healthy, 0 restarts, 77 apps, nieuwe voorkeurvelden en geen browserconsolefouten |
| Live servicewidget | Docker stats + Chromium 2560×1080 | Pass: AdGuard gemigreerd, CPU/geheugen/netwerk/uptime gevuld, integraties connected, geen overflow/fouten |
| Providerwidget release | Vitest + in-app Chromium | Pass: Unraid-hostwidget en providerfallback op 390×844 en 2560×1440; geen overflow, overlay of consolefouten |
| React review | React best-practices checklist | Pass: named configurator, stabiele keys, geen extra effects, semantische buttons/switches en zichtbare focus |
| Live hostwidget release | Unraid Compose + API + Chromium | Pass: healthy op 192.168.10.150:1218; Tower, 77 containers, 72 running, 20 cores, 62 GB, geen overflow/fouten |
| Live tailored widgets | API-delta + Chromium desktop/mobile | Pass: AdGuard DNS-layout/API-lock, JDownloader down-/uploadsnelheid, correcte links, 0 restarts en geen overflow/fouten |
| Live credential settings | API + in-app Chromium | Pass: AdGuard toont alleen ontbrekende username/password, password masking, geen overflow/consolefouten, geen dummywrite |
| Widget Studio lokaal | In-app Chromium + Playwright | Pass: catalogus/filter/search op desktop, responsive op vier viewports, gelijke kaarten, geen overflow/consolefouten |
| Widget Studio live | Unraid API + Compose health | Pass: 41 capabilities voor 82 apps, 2 bestaande widgets behouden, healthy met 0 restarts; credentialstore niet aangemaakt |
| Navigatie/beheer lokaal | Vitest + Playwright + Chromium | Pass: 30 tests, 8 browserchecks; remove-suppressie, rename-search, Tower, Google, sidebarfavorieten en 390px zonder overflow |
| Navigatie/beheer live | Unraid API + in-app Chromium | Pass: healthy/0 restarts; Tower-search/link, Tweakers-sidebar, gecorrigeerde AdGuard- en Immich-URL's, geen fouten/overflow |
| Widgetconfiguratie lokaal | Vitest + Playwright + agent-browser | Pass: drie formaten, inhoudslagen, import/export, 390/3440 px en geen overflow |
| Widgetconfiguratie live | Tower Compose + API + browser | Pass: healthy/0 restarts op :1218; 80 apps, 55 zichtbaar, 5 widgets; juiste AnythingLLM/Immich-attributie |
| Volledige widgetroadmap | Vitest + Playwright + API | Pass: onafhankelijke volgorde, metriccompositie, presets, freshness, cadence, warnings, sparklines, PWA en diagnostics |
| Native Unraid live | Read-only mounts + API | Pass: array STARTED, parity healthy/0 fouten, 3 opslaggroepen, 57 °C hoogste meting; integratie connected |
| Finale live responsiviteit | Chromium 390×844 en 3440×1440 | Pass: 7 live panelen incl. Tower, geen positieve overflow, geen Vite-overlay en PWA-manifest aanwezig |
| Persoonlijke widgetdiepte | API + Vitest + Chromium | Pass: 80/80 capabilities, 55 custom GET-profielen, 23 native providers en gescheiden app/worker/database-metrics |
| Tower poort/configuratie | SQLite + live API + Chromium | Pass: naam/URL zichtbaar in Settings; voorkeur en hostkaart wijzen naar http://192.168.10.150:5000 |
| Finale Unraid release | Compose config/build/up + health | Pass: klassieke imagebuild, healthy, 0 restarts, 80 apps/55 zichtbaar/6 appwidgets; named-volumeconfiguratie behouden |
| Single-container release | AppOps + Compose + API + browser | Pass: exact één DockDeck, oude proxy verwijderd, 83 live containers, icoon/WebUI correct, data-ID en 55 zichtbare apps behouden |
| Diepe widgetconfiguratie | Vitest + Playwright + browser | Pass: statselectie/-limiet/-stijl, elke numerieke waarschuwing, 3 grafiektypes, 60-punt provider- en Towerhistoriek |
| App-specifieke fallback | Capabilityaudit + browser | Pass: kaarten behouden eigen metrics zonder endpoint en tonen eerlijke Connect data; alle geaudite generieke profielen weg |
| Unraid PNG-icoon | Asset, HTTP, beide caches en Chrome | Pass live: actieve SVG-cache vervangen; Unraid rendert nu de echte 512×512 PNG in DockDecks rij zonder question.png-fallback |
| Finale capabilityaudit | Live API + capabilityvergelijking | Pass: 97 opgeslagen apps, 97 capabilityprofielen, nul generieke profielen; BlockPilot en LumaOps expliciet gedekt |
| Diepe widgetrelease live | Compose + API + in-app Chromium | Pass: healthy/0 restarts, 74 ontdekt/69 actief, 55 zichtbaar, 6 appwidgets plus Tower, geen overflow of browserconsolefouten |
Scenario coverage
- Deterministische discovery, Unraid XML/WebUI-portvervanging en NPM-hostmatching.
- Nieuwe containers verborgen; zichtbaarheid, naam, categorie, order en URL-override.
- Categorieën en favorieten aanmaken/bewerken/verwijderen.
- Volledige dynamische zoekindex voor zichtbare/verborgen apps, actuele namen, technische namen, categorieën, images, URL's, favorieten en Tower; expliciete Google-fallback in nieuw tabblad.
- Persistente DockDeck-only appverwijdering met rediscoveryonderdrukking en back-updekking; geen Docker-mutatie.
- Alle drie thema's, overzicht/categorienavigatie en mobiele navigatie.
- Persistente accent-, dichtheid-, contentbreedte-, achtergrond-, hero- en statusvoorkeuren.
- Responsieve grids en navigatie op mobiel, tablet, desktop en ultrawide; lokale fonts zonder externe request.
- Automatische first-party faviconafleiding met lokale merk-/semantische fallback en handmatige override; lettermonogrammen zijn niet meer nodig.
- Per-app widgetkeuze, limiet van acht, legacy-migratie en generieke read-only Dockerstats met degraded fallback.
- Persistente widgetformaten en inhoudslagen voor app- en Unraidpanelen, refreshmomenten en dichte responsieve plaatsing.
- Standaard Unraid-hostwidget via Docker
/infoen provider-aware AdGuard/Plex/Immich/Home Assistant/*arr-presentatie met server-only credentials. - Gemaskeerde providercredentialinvoer via Settings, allowlist per provider, HTTP(S)-URL-validatie, same-origin write, atomische
0600-environmentpersistentie en directe hertest zonder secret echo. - Widget Studio capabilitycatalogus met aanbevolen/alle/actieve filters, acht-panelenlimiet, directe sync en vervangbare connected credentials.
- Volledige 80/80 capabilitycatalogus met app-specifieke metricdefinities, per-metric zichtbaarheid/volgorde en een begrensd custom GET-only JSON-contract.
- Persistente Tower-naam/URL met poort
5000als standaard en dezelfde actuele waarde in kaart en zoekindex. - Zero-config Ollama-/Glances-API's, Tautulli-/Paperless-adapters en app-specifieke AI/document/security-Dockerfallbacks.
- Per-servicetype fallbackpresentatie met berekende live netwerkdelta's; JDownloader gebruikt download-/uploadsnelheid en AdGuard DNS-traffic in plaats van generieke cumulatieve netwerkbytes.
- Zijpaneel met klok, deck health, favorieten en snelle servicelinks; gebalanceerde tegelbreedtes op 2560 en 3440 pixels.
- Statuspolling, offline container en integratie-degradatie.
- SQLite-migratie, restartpersistentie, container-ID-wijziging en export/import versie 1.
- Geen Docker-mutatie-endpoint of Docker-beheeractie.
Open external checks
- Live Nginx Proxy Manager: credentials ontbreken; adapter en degradatie zijn wel gemockt/getest.
- Optionele providercredentials: alleen nodig voor de diepste API-metrics van beveiligde diensten; Dockerfallbacks blijven beschikbaar.
Latest quality gate
De volledige lokale Canon v1-gate is groen: format:check, lint, typecheck, 42/42 unit- en integratietests, 5/5 afzonderlijke securitytests, 7 uitgevoerde en 9 doelbewust project-gededupliceerde Playwright-checks op desktop/tablet/mobile/ultrawide, production build en 0 kwetsbaarheden. De browserflows eindigen met 0 console.error- of ongehanteelde paginafouten. De clientbuild is 312,99 kB JS (93,53 kB gzip) en 94,91 kB CSS (17,51 kB gzip); de serverbundle is 163,9 kB. In-app Chromium verifieerde daarnaast eerste-use, gevuld dashboard, Quick Launch, apps-instellingen, mobiele drawer en dark/light op 390×844 en 1440×900. De vaste testpoortblokkade op 3000 is opgelost met geïsoleerde poorten 3101/5174 en een schone Canon-testdatabase. Docker Compose en imagebuild zijn niet opnieuw uitgevoerd omdat in deze Windows-omgeving geen docker-CLI/runtime beschikbaar is; de eerdere Tower-verificatie blijft ongewijzigd.
Canon v1 gate — 2026-07-21
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42 |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 7 uitgevoerd / 9 gededupliceerd over vier viewports; 0 console-/paginafouten |
npm run build |
Pass, JS 312,99 kB / 93,53 kB gzip; CSS 94,91 kB / 17,51 kB gzip; server 163,9 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| In-app browserreview | Pass: 390×844 en 1440×900, dark/light, dashboard, Quick Launch, apps, drawer, geen horizontale overflow |
| Secret-/mutatiescan | Pass; geen toegevoegde secrets of Docker-mutaties |
docker compose config --quiet / imagebuild |
Niet uitgevoerd: docker is lokaal niet geïnstalleerd |
Directe Stitch-pass — 2026-07-21
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42 |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd; 390×844, 768×1024, 1440×900 en 3440×1440; 0 console-/paginafouten |
npm run build |
Pass, JS 312,49 kB / 93,60 kB gzip; CSS 125,83 kB / 22,07 kB gzip; server 163,9 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| In-app browserreview | Pass: gevuld donker dashboard, Quick Launch, App Beheer, editordrawer en Weergave; muis/toetsenbord en focus bevestigd |
| React-review | Pass: afgeleide state, effect-cleanup, semantische links/buttons, stabiele sleutels en toegankelijke switches |
De CSS-toename is de expliciete directe Canon-compositielaag. Zij vervangt geen runtime- of backendlogica en bevat geen externe assets. De finale E2E-test schrijft de actuele referentiebeelden naar docs/design/dockdeck-canon-v1/implementation/.
Stitch launcherrail, iconen en widgets — 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42 |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd op 390×844, 768×1024, 1440×900 en 3440×1440; 0 console-/paginafouten |
npm run build |
Pass, JS 353,39 kB / 110,42 kB gzip; CSS 135,18 kB / 23,34 kB gzip; server 163,9 kB |
npm audit --audit-level=moderate |
Pass na transitieve fast-uri-lockfile-update, 0 kwetsbaarheden |
| In-app browserreview | Pass: desktopfavorietenrail, echte Google/YouTube/GitHub/Plex/Immich/Home Assistant-iconen, zichtbare widgets en mobiele volgorde |
| React-review | Pass: zelfstandig railcomponent, effect-cleanup, afgeleide state, semantische links/buttons en getypeerde instellingenroute |
| Docker Compose/imagebuild | Niet uitgevoerd: in de lokale Windows-omgeving is geen docker-CLI/runtime beschikbaar |
De browsertest valideert aanvullend dat de desktoprail en servicepanelen zichtbaar zijn, dat appkaarten geen .app-monogram meer renderen en dat de Paneelstudio via de rail rechtstreeks in Instellingen → Algemeen opent. De nieuwe merkiconen zijn lokaal gebundeld; expliciete Unraid-/gebruikersiconen blijven de eerste bron.
Widescreen leesbaarheids- en categorieaudit — 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 51/51; inclusief categorie-inferentie, behoud van onbekende toewijzingen en de expliciete organisatie-API |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 12 uitgevoerd / 12 bewust overgeslagen over desktop, tablet, mobiel en ultrawide; 0 testfouten |
npm run build |
Pass, JS 365,35 kB / 113,90 kB gzip; CSS 173,48 kB / 29,03 kB gzip; server 170,8 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| React-review | Pass: afgeleide categorieanalyse, expliciete semantische actie, stabiele sleutels, geen extra effecten en ongewijzigde cleanup |
| Chrome audit vóór correctie | 3440×1215, 0 horizontale overflow en 0 consolefouten; wel widgetmetadata van 8 px, Paneelstudio tot 6 px en foutieve bulkcategorieën |
De pass vergroot de ultrawide widgetdock, maakt widget- en instellingenmicrotypografie leesbaar en begrenst extreem lange beheer-, integratie- en back-uprijen. De categorieactie gebruikt uitsluitend bestaande categorieën en laat onbekende services onaangeroerd.
Live verificatie
| Check | Resultaat |
|---|---|
| Secretvrij herstelpunt | .codex-input/dockdeck-before-widescreen-audit-20260722-140834.json, 80.809 bytes |
.env-behoud |
SHA-256 voor en na bronvervanging identiek: e41e1b63… |
docker compose config |
Pass vóór en na bronvervanging |
| Imagebuild en health | Pass, image cc3a4b56fdfb…, container healthy, 0 restarts |
| Read-only heartbeat | Pass, exact 90 bestaande containers en 50 zichtbare apps |
| Slimme categorieorganisatie | Pass, 14 gecorrigeerd, 76 behouden, 0 onbekend; 16 bestaande categorieën |
| Chrome 3440×1215 | Pass, dock 540 px, 0 horizontale overflow, 0 kapotte images, geen applicatieconsolefouten |
| Interacties | Pass: Downloads-filter toont exact Deluge/JDownloader2/slskd; instellingenzoeker, categoriebeheer en Quick Launch-favicon werken live |
De enige browserlogregel kwam van de WideFrog Chrome-extensie zelf (keyflow timeout op een titelupdate), niet van DockDeck. De live DockDeck-tab is als testdashboard open gebleven.
Volledige instellingen- en releasepass — 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42; inclusief legacy-migratie en export/import van reducedMotion en pollingIntervalMs |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd op vier viewports; instellingenzoeker en voorkeurpersistentie; 0 browserfouten |
npm run build |
Pass, JS 357,89 kB / 111,86 kB gzip; CSS 139,39 kB / 24,06 kB gzip; server 164,2 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| In-app browserreview | Pass: Apps, Categorieën, Weergave en Back-up; zoekfilter, kaartlayout, dropzone, scrollherstel en 0 horizontale overflow op 1280 |
| React-review | Pass: afgeleide zoekstate, correcte hookafhankelijkheden, getypeerde drag-events en semantische buttons/switches |
De instellingenmatrix dekt iedere persistente voorkeur, app-/favoriet-/categoriebeheer, widgets, integratiecredentials en back-up/export. Fictieve online- of back-uphistoriek is bewust niet toegevoegd; de UI toont alleen werkelijk beschikbare gegevens.
Live Unraid-release
| Check | Resultaat |
|---|---|
| Pre-deploybehoud | Secretvrije export gemaakt; .env-SHA-256 voor/na bronkopie identiek; named volume dockdeck_dockdeck_data behouden |
docker compose config |
Pass vóór en na bronvervanging |
| Klassieke Docker-imagebuild | Pass; image 14497e8a384c…, client-/serverbundels identiek aan lokale build |
| Compose release | Pass; commit 3ffd39b, één DockDeck-container, healthy, 0 restarts op 192.168.10.150:1218 |
| Persistentie na migratie | Pass; 55 zichtbare apps, 1 favoriet, 3 categorieën, 6 appwidgets en dark/30 s behouden; sync voegde 3 nieuwe records standaard verborgen toe |
| Read-only integraties | Pass; 233 templates, 3 array-/poolgroepen, 90 AppOps-containers GET-only en AdGuard connected; NPM bewust disabled |
| Live in-app browser | Pass; favorietenrail, echte iconen, 7 panelen, instellingenzoeker/controls, scrolltop 0 en geen horizontale overflow |
De enige foutregel in de eerste vijf minuten was een door de releasecheck zelf veroorzaakte lege POST zonder JSON-contenttype (verwachte HTTP 415); de onmiddellijk herhaalde geldige synchronisatie gaf HTTP 200 en alle daaropvolgende health-/dashboardchecks zijn groen.
Stitch consistentie- en ultrawidepass - 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42 |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd op desktop/tablet/mobile/ultrawide; 0 browserfouten |
npm run build |
Pass, JS 363,25 kB / 113,46 kB gzip; CSS 155,55 kB / 26,33 kB gzip; server 164,6 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| React-review | Pass: lokale state voor widgetdock, media-query cleanup, afgeleide Quick Launch-snelkoppelingen en semantische linkcontrols |
| Secret-/mutatiescan | Pass; geen toegevoegde secrets, externe UI-assets of Docker-mutaties |
Deze pass maakt de platformlayout consistent tussen dashboard en instellingen, vergroot de instellingen-typografie, gebruikt ultrawide-detectie om widgets als rechterdock te tonen, laat Quick Launch-favorieten met echte iconen renderen en vervangt de lege Quick Launch-uitleg door functionele snelkoppelingskaarten. Loopback-iconen uit discovery worden op een LAN-host naar de actuele DockDeck-host herschreven, zodat appiconen zoals Widefrog niet meer naar client-localhost wijzen. De E2E-suite valideert daarnaast dat de ultrawide-widgetdock automatisch open staat en rechts van de dashboardgroepen ligt zonder horizontale overflow.
Edge-anchored Stitch shell en rijkere Dockerkaarten - 2026-07-22
| Check | Resultaat |
|---|---|
npm run format:check |
Pass, alle bestanden Prettier-conform |
npm run lint |
Pass, 0 waarschuwingen |
npm run typecheck |
Pass |
npm test |
Pass, 42/42 |
npm run test:security |
Pass, 5/5 |
npm run test:e2e |
Pass, 11 uitgevoerd / 9 project-gededupliceerd op desktop/tablet/mobile/ultrawide |
npm run build |
Pass, JS 363,25 kB / 113,46 kB gzip; CSS 162,12 kB / 27,27 kB gzip; server 164,6 kB |
npm audit --audit-level=moderate |
Pass, 0 kwetsbaarheden |
| Chrome visuele audit | Pass: dashboardrail left=0, settings-sidebar left=0, ultrawide widgetdock right=3440, 0 horizontale overflow op 1920 en 3440 px |
Deze pass verwijdert de zwevende dashboard-shell op desktop: de linkerfavorietenrail staat tegen de viewportzijde en gebruikt dezelfde oppervlakte, padding en typografische taal als de instellingenrail. Op ultrawide staat het widgetpaneel als rechterdock tegen de rechter viewportzijde. Docker-snelkoppelingen zijn visueel zwaardere Stitch-servicekaarten met grotere iconen, statuschips, accentrail, arrow affordance, subtiel verloop en diepere hoverrespons.
Live categorie-indeling - 2026-07-22
Voor de live DockDeck-config op http://192.168.10.150:1218 is vooraf een secretvrije export gemaakt naar .codex-input/dockdeck-categories-before-20260722-052942.json. Daarna zijn 139 apps via de DockDeck-config-API over 16 categorieën verdeeld; verificatie: 0 apps zonder categorie. Categorieaantallen: Media 17, Downloads 2, Books & Documents 7, Photos 14, Home & Automation 2, Security & Identity 4, Network & Admin 4, Monitoring 7, Development & Projects 45, AI & ML 3, Databases & Storage 12, Infrastructure 16, Games & Emulation 5, Tools & Productivity 1, Experiments & Archived 0, Favorites 0.
Live codevervanging is daarna alsnog uitgevoerd via de bestaande SSH-alias unraid-widefrog (root, sleutel widefrog_unraid_deploy). De deploymentmap is een uitgepakte source-copy en geen git-worktree; daarom is commit 41942d5 via een checksum-gecontroleerd git archive naar Tower gekopieerd en over de source uitgepakt. .env bleef byte-identiek (e41e1b63... voor en na), docker compose config --quiet slaagde, docker compose up -d --build bouwde image af96b8ac7a04... en de DockDeck-container staat healthy met 0 restarts op 192.168.10.150:1218. Na een geldige read-only sync zijn Unraid templates, Unraid runtime, AppOps inventory en AdGuard Home widget connected; dashboardverificatie: 139 apps, 55 zichtbaar, 16 categorieën, 0 zonder categorie.