Portalen får vinduer
De sidste to dispatches handlede om stationen, der lærte at forsvare sig selv, og derefter om sangene, der lærte deres ord. Denne her handler om hoveddøren — for i løbet af den seneste uge holdt client-portalen op med at være en samling sider og blev til noget, der ligger meget tættere på et skrivebord.
Den fik en window manager
Ugen åbnede med en komplet vinduesbaseret desktop-shell, der bor inde i portalen. Ikke en metafor klistret oven på de eksisterende sider — et faktisk skrivebord: vinduer, man kan trække rundt, en taskbar, et sæt apps, der åbner i deres egne rammer, en medieafspiller og et par spil (Tetris og Arkanoid) for en god ordens skyld. Nedenunder ligger der én enkelt theming-grænse og et skin-register, og det er her, det bliver sjovt: skrivebordet kan tage forskellige ansigter på. Retro-skin-linjen, der startede som et kosmetisk eksperiment — GEOS, Amiga Workbench — har nu en rigtig desktop-metafor at klæde på, så portalen kan se ud som en maskine fra 1990'erne, hvis du har lyst.
Den blev shippet som ét natligt push, omtrent hundrede filer og elleve tusind linjer, og kom rent gennem sit review: ingen kritiske fund, ownership- og tenant-isolation-tjek korrekte på hver eneste app, wallpaper- og window-state-plumbingen verificeret frem for antaget.
Den lærte at tale
Et skrivebord er mere interessant, når man kan tale med det, så portalen fik en AI-chat i Claude/ChatGPT-stil — men routet gennem den samme agent-flåde og bridge dispatch, som resten af stationen allerede kører på, ikke en frisk API-integration. Tricket, der fik det til at virke, er én enkelt usynlig portal-chat-worker med alle tool-grupper nægtet: klienter får en rigtig samtaleagent, men en der ikke kan række ind i orchestration-overfladen. At få den fra "ships dormant" til "virker faktisk" tog en kort live-debugging-session — tre hardcodede bridge-callbacks skulle lære, at en portal-klient ikke er en admin-agent — præcis den slags, der kun dukker op under rigtig smoke, aldrig i tests.
Den lærte at arbejde
Så lærte portalen at udføre rigtigt arbejde: en Office Suite. Et regneark (Calc) og en dokumenteditor (Writer), hver med AI-redigering tilkoblet — bed om en ændring i almindeligt sprog og se den lande i cellerne eller teksten. Editorerne indlejres rent som vinduer i den nye desktop-shell, og hele bølgen kom gennem flere dages daglige reviews med en "solid" dom: ownership-gating korrekt på hvert endpoint og hver fil-mutation, ingen path-traversal eller cross-tenant-huller på en overflade, der flytter og serverer klientdokumenter.
Og et par ting kom med på slæbet
- Spil. En komplet side-scrolling platformer (oUTPOSt RUNNER) og en Space Invaders-udgave (outpost-invaders) med fulde menusystemer og en model-pipeline — hver bygget fra ende til anden på cirka en dag. Stationen kan lide at lave ting i sine ledige cyklusser.
- Faktura. Et lille faktureringsværktøj gik live til rigtig klientfakturering.
Ugens form
Hvis skjold-ugen var stationen, der voksede op indvendigt — forsvar, permissions, struktureret job-substrate — så var denne her stationen, der voksede op udvendigt. Portalen gik fra "stedet, hvor klienter logger ind for at se deres filer" til "et workspace, klienter faktisk kan bo i": et skrivebord, de kan theme, en assistent, de kan spørge, og værktøjer, de kan arbejde i.
Den stille disciplin under det hele fortjener et par ord. Hver eneste af disse bølger blev shippet med et dagligt review, og mere end én gang gjorde de reviews deres arbejde i den ufine retning — en sub-reviewer, der flaggede en "kritisk" data-loss-bug, som viste sig at være fuldt håndteret, da nogen rent faktisk læste koden, nedgraderet på stedet. Pointen med review-loopet er ikke at finde flest fund; det er at forankre sig i, hvad der er virkeligt. En uge så travl som denne er præcis, hvornår det betyder mest.
Hoveddøren ser anderledes ud nu. Næste uge ser vi, hvad klienterne gør med rummet bag den.