Product
Changelog
Wat er wanneer is gebouwd, gemeten en veranderd. Nieuwste eerst.
0.4.0, 16 oktober 2026 (nacht): beheer zonder .env, meldingen, auditlog, versie en release in een keer
- Tenants en tokens zonder
.enven zonder herstart:<DIAG_DATA_DIR>/tenants.jsonmet alleen sha256-hashes, beheerd via de pagina/admin(eigen rol en cookie,DIAG_ADMIN_TOKEN) ofpython -m server.admin(tenant add|list,token add|revoke,webhook set); een token wordt een keer getoond; intrekken werkt meteen, ook voor een lopende browsersessie (docs/BEHEER.md2 en 3).DIAG_TOKENSenDIAG_RUNNER_TOKENSblijven ernaast gelden. /devicestoont de agentversie (uit deUser-Agentvan runner 0.3.x) en de badges online, stil, offline en nooit gezien (DIAG_OFFLINE_MINUTES, standaard 15); meldingenstrook op/met apparaten offline, mislukte zaken en kennisfeedbronnen die langer dan 48 uur falen; webhook per tenant (Teams of Slack) voor offline en weer online, met strikte URL-regels en zonder doorverwijzingen (docs/BEHEER.md4 en 5).- Auditlog per tenant (
audit.jsonl) en beheerlog (admin.jsonl), append-only, nooit een token; pagina's/auditen/admin/auditmet filters (docs/BEHEER.md6). VERSIONin de projectmap (kopieserver/VERSIONvoor het release-archief);/healthzen de voettekst tonen de versie;deploy/release.ps1doet tests,agent\build.ps1,deploy\build_site.py, de kopie vanVERSIONenmake_release.ps1in een keer (docs/BEHEER.md7).- Nieuwe modules
server/tenants.py,server/admin.py,server/alerts.pyenserver/audit.py, sjablonenadmin.html,admin_login.htmlenaudit.html; teststests/test_admin.pyentests/test_alerts_audit.py; de suite telt 567 tests. - Zesde ronde van de zaak, in uitvoering op het moment van schrijven:
knowledge_refsin de conclusie (gecontroleerd tegen de bekende problemen van de zaak) en verstorende acties die niet als diagnostiek gelden; meting en handleiding volgen indocs/TROUBLESHOOT.md. - Nog niet op de pilotserver:
https://diagnose.rektpump.com/healthzgeeft geen versie en/adminen/auditgeven 404 (gecontroleerd in de nacht van 16 op 17 oktober); de server draait de versie van 16 oktober overdag. Uitrollen is aan Fanus (deploy/release.ps1, daarna de scp- en ssh-regels uitdocs/DEPLOY_SERVER.md3.0). - Documentatie:
docs/BEHEER.mdnieuw;docs/INSTALL_KLANT.mdherschreven als onboarding van een klant van tenant tot offboarding, met checklist;README.mdkreeg de paragraaf "Pakket" met alle onderdelen, versies en vindplaatsen; dit bestand kreeg een regel per dag van 10 tot 16 oktober.
- Tenants en tokens zonder
0.3.2, 16 oktober 2026 (nacht): Diagnose Agent als MSI en de website opnieuw ontworpen
- Nieuw:
agent/met het WiX-pakket "Diagnose Agent" (Package.wxs, NederlandsePackage.nl-NL.wxl,DiagnoseAgent.wixproj),build.ps1(bouwtdist/DiagnoseAgent-<versie>.msimet.sha256en.json, kopieert naarsite/downloads/) enverify.ps1(controle zonder administrator: administratieve installatie, bytevergelijking, tabellen via COM). Per machine, x64,UpgradeCodevast, MajorUpgrade, eigenschappenSERVER,TOKEN(verborgen),POLLSECONDS,NOAUTOUPDATE,UPDATETHUMBPRINT; custom actions deferred zonder impersonatie metHideTarget, rollback bij een mislukte eerste installatie, geen uninstall tijdens een upgrade (docs/AGENT_MSI.md). runner/install-runner-task.ps1: nieuwe opties-RunnerSource(alias van-RunnerPath),-Quiet,-KeepExistingTokenen-LogPath;-LogPathvolgt geen reparse point; gedrag zonder die opties ongewijzigd.- Review van het pakket later die nacht:
CA_RollbackAgentdraait niet meer tijdens een upgrade (een mislukte upgrade liet anders de teruggezette vorige versie zonder taak en token achter);NOAUTOUPDATE=0telt als weggelaten;tests/test_agent_msi.py(11 tests) enagent/verify.ps1(63 controles) bewaken beide condities; het MSI is opnieuw gebouwd (sha2566d1df58d..., nieuwe ProductCode). Stubsuite: de-RunnerSource-controles draaien nu echt (de alias werd niet herkend), 197 controles. deploy/make_release.ps1: de mappenagentendistgaan mee in de release (zonderagent/objenagent/bin); de sha256 van het MSI wordt geprint.- Toolchain op de ontwikkel-pc, zonder administrator: .NET SDK 8.0.426 in
.tools/dotnet, WiX 5.0.2 als dotnet-tool. WiX 7.0.0 is bewust niet gebruikt: die eist het accepteren van de Open Source Maintenance Fee-EULA. - Nog te doen: de eenmalige installatie als administrator (
docs/AGENT_MSI.mdparagraaf 11) en het signeren van het pakket. - Website ai.rektpump.com opnieuw ontworpen (
deploy/build_site.pyplusdeploy/site_assets/): een visueel systeem met tokens, licht en donker met schakelaar, hero met een CSS-nabootsing van de goedkeuringskaart, de flow in zes stappen, nieuwe pagina'sagent.html,troubleshooting.html,kennisfeed.html,beveiliging.htmlenchangelog.html(uit dit bestand),tools/diagnose-agent.htmlmet de download en sha256 uitsite/downloads, og-afbeelding als PNG gerenderd met Edge; 22 pagina's, geen externe scripts, geen inline styles; mobiel op 375 px zonder overloop, contrast gecontroleerd.
- Nieuw:
0.3.2, 16 oktober 2026 (dag): productlaag, runner 0.3.0 tot 0.3.2, troubleshooting in vijf rondes, kennisfeed
- Productlaag in de viewer: apparaatpagina
/devices/<apparaat>met "Nieuwe diagnose" (verzamelopdracht voor de runner, zonder RMM),/devicesmet runnerstatus,/casesmet alle zaken van de tenant, tellers op de startpagina, "Leesstappen automatisch uitvoeren" per zaak en de platte ticketnotitie/ts/<zaak>/notitie.txt(docs/PRODUCT.md,docs/TROUBLESHOOT.md12). - Diagnose-runner 0.3.0: verzamelopdrachten (
kind=collect, downloadtcollect.ps1met sha256-controle en laat de collector met het eigen runnertoken uploaden), auto-update vanaf de server, hintsmodeenran_asvoor de apparaatpagina;collect.ps10.3.1 kent-JobId(docs/RUNNER.md13). - Runner 0.3.1 na de adversarial review: nooit een lagere versie,
-UpdateThumbprintmet vastgepinde Authenticode-vingerafdruk, beide hashes in het log,-SelfTesten terugdraaien naar.bakbij een configuratiefout vlak na een update,RestartCount99, velden die met een streepje beginnen als-Parameter:"waarde",[0-9]in de job-id-controle;collect.ps10.3.2 (docs/RUNNER.md14). - Runner 0.3.2: geplande taak met
MultipleInstances IgnoreNew(PowerShell 5.1 weigertStopExisting) en een eigen herstart elke 24 uur met exitcode 3; de server serveert/diagnose-runner.ps1en/install-runner-task.ps1met sha256. - Reparaties aan de server na de review van de productlaag: koppeling van upload aan opdracht atomair onder de wachtrijlock, een resultaat per opdracht, eigen limiter voor uploads los van
/login, tokens uitDIAG_TOKENS,DIAG_RUNNER_TOKENSenTRMM_API_KEYgeredigeerd uit elke uitvoer en notitie,meta.uploaded_by(docs/TROUBLESHOOT.md12). - Troubleshooting, eerste en tweede ronde: vragenpoort (hooguit
DIAG_TS_MAX_QUESTIONS3 per zaak, nooit twee achter elkaar,waarom_geen_leesactieverplicht), intakeveld bij de start, klachtgerichte instructies (begin bij de klacht, leeswijzer per soort klacht, geen instructie in een vraag), conclusie-duwtje vanaf stap 8, herhaalpoort op genormaliseerde parameters, vrije logboeknaam ineventlog_recent; gemeten als baseline, nieuw en nieuw2 (docs/TROUBLESHOOT.md13). - Derde ronde: conclusieregel ("onbekend voor <klacht>" met context apart), tegenspraak in de samenvatting, inhoudspoort op vragen (geen instructie, test of toestemmingsvraag), hooguit een vraag na "weet ik niet",
schedule_rebootalleen als test van de klacht, leesfamilies en de actieconsole_user_connections; gemeten als nieuw3 en uitgerold naar de pilot (docs/TROUBLESHOOT_DESIGN.md12). - Vierde ronde: herkansing bij een afgekapt antwoord (
DIAG_TS_MAX_OUTPUT_TOKENS8000, tweede poging met het dubbele), vraag-duplicaatpoort en datumpoort op kernelgebeurtenissen; gemeten als nieuw4, 438 tests (docs/TROUBLESHOOT_DESIGN.md13). - Vijfde ronde: de kennisfeed in de zaak (hooguit vijf bekende problemen bij de start gekoppeld, blok in de context en kaart op de zaakpagina), overlapcoefficient in de duplicaatpoort, onderwerppoort na "weet ik niet", prestatiepoort bij traag, klachtvensterpoort; gemeten als nieuw5 op een verse bundel, 504 tests drie keer groen (
docs/TROUBLESHOOT_DESIGN.md14,docs/KENNISFEED.md8). - Kennisfeed: Windows release health, Microsoft 365 Apps, NCSC-NL en CISA KEV in
knowledge/, deterministisch gematcht op KB's, versie, software en klacht; blok<bekende_problemen>in de prompt van de diagnose, kaart op de runpagina,/knowledge/status; eerste vulling 405 items uit 4 bronnen, dagelijks bijgewerkt op de server metknowledge-update.timer(docs/KENNISFEED.md). - Lokaal model onderzocht en gemeten als alternatief voor de API:
analyze.py --provider openai-compatible,bench_local.py,deploy/llama-server.ps1(docs/LOKAAL_MODEL.md,docs/BENCHMARK_LOKAAL.md). - End-to-end-test van de hele keten op deze pc (
runs/product_e2e): verzamelopdracht, upload met het runnertoken, diagnose $0,0142 in 41,5 s, zaak van tien stappen $0,0514, notitie; de runner draaide daarbij als gewone gebruiker, dus de geplande taak als SYSTEM is nog niet bewezen.
- Productlaag in de viewer: apparaatpagina
15 oktober 2026: troubleshooting met toezicht, red-team en beveiligingsreview, marktonderzoek
- Zaken: de AI stelt per beurt een stap voor uit een vaste catalogus van PowerShell-acties, de technicus keurt goed of wijst af met reden, de uitvoer gaat terug; executors manual, local en tactical; een zaak is begrensd in stappen en geld en staat als transcript op schijf (
docs/TROUBLESHOOT.md,docs/TROUBLESHOOT_DESIGN.md). - Vier lagen in het veiligheidsmodel: alleen de catalogus, validatie door de server, menselijke goedkeuring gebonden aan stapnummer en hash, uitvoer is data (nonce-tags,
neutralize). - Red-team-sessies op de zaak en de ingest, met reparaties: Tactical
agent_idgebonden aan de tenant,auto_okper actie, kostenplafond met bekende prijs, limieten per run, tenant en dag, deny-list als vangnet, Unicode-aanhalingstekens geweigerd (runs/redteam-20261015*,runs/reviewfix-20261015T212638Z,docs/TROUBLESHOOT_DESIGN.md11). - End-to-end-test met het echte model op deze pc (
runs/ts_e2e): printerzaak van acht stappen, $0,041, de voorgestelde herstart van de Spooler bewust afgewezen. - One-shot-analyses sturen
store=falsenaar OpenAI, zodat prompt en antwoord niet als opvraagbaar object bij de leverancier blijven staan;nginx.conf.examplekreegclient_max_body_size 1mvoor/ts/. - Marktonderzoek naar RMM-tooling en AI-servicedeskproducten (
docs/MARKTONDERZOEK.md);docs/TACTICAL_RMM.mdbijgewerkt.
- Zaken: de AI stelt per beurt een stap voor uit een vaste catalogus van PowerShell-acties, de technicus keurt goed of wijst af met reden, de uitvoer gaat terug; executors manual, local en tactical; een zaak is begrensd in stappen en geld en staat als transcript op schijf (
13 oktober 2026: server live op diagnose.rektpump.com
- Ingest-server en viewer uitgerold op de eigen VPS met
deploy/install.sh(systemd, nginx, Let's Encrypt, firewall), volgens de checklist indocs/MAANDAG.md; uitrolmapruns/deploy-20261013. - Eerste pilotdag volgens
docs/MAANDAG.md: sleutelrotatie, toestemming, tenanttoken, de wrapper in de scriptbibliotheek en de eerste echte run via de RMM.
- Ingest-server en viewer uitgerold op de eigen VPS met
11 oktober 2026: website, serverkeuze en Tactical RMM
- Eerste versie van ai.rektpump.com: 16 pagina's uit een generator (
deploy/build_site.py), Nederlands, licht en donker, zonder externe scripts; uitrol metdeploy/install_site.sh. - Besluit om de server zelf te hosten op de eigen VPS (
37.97.173.172) in plaats van een tunnel vanaf de eigen pc;deploy/install.shendeploy/make_release.ps1voor een byte-exacte release. - Tactical RMM gekozen als eigen RMM voor de pilot: runbook
docs/TACTICAL_RMM.mden de API-koppelingdeploy/tactical/run_diagnose.pymettests/test_run_diagnose.py.
- Eerste versie van ai.rektpump.com: 16 pagina's uit een generator (
10 oktober 2026: de keten en de metingen (collector 0.3.0)
- Collector
collect.ps1, condensatiecondense.pyen analyseanalyze.py: een klacht, een tijdstip en vijf dagen logboeken worden een rapport met oorzaken en bewijs per event; redactie van gebruikersnamen, hostnaam, domein, e-mail en publieke IP's. - RMM-wrapper
collect-rmm.ps10.3.0 voor de scriptbibliotheek van een RMM: eist https, controleert de sha256 van de collector, voert hem in het geheugen uit en uploadt met een tenanttoken. - Ingest-server met viewer en feedbackformulier (
server/app.py): tenant-isolatie, server-side sessies, CSRF, rate limiting, strikte CSP; de eerste 34 tests. - Modelvergelijking op een echte bundel: gpt-5-mini one-shot vindt de kernbewijzen voor 1,6 cent in 43 s; gpt-5 met tools vindt twee extra sporen voor 35 cent.
- RMM-landschap: 34 RMM's, Microsoft-routes en ticketsystemen vergeleken op scriptuitvoering, run-context, parameters, output en API (
docs/RMM_LANDSCHAP.md).
- Collector
Bron: CHANGELOG.md in de projectmap; elke regel is herleidbaar naar de documentatie of een runmap.
Meedoen met de pilot
Een pilot is vijf tickets met eerlijke feedback per run, gratis voor de eerste deelnemers. U heeft een Windows-werkplek nodig waarop u de agent als administrator mag installeren, of een RMM die een PowerShell-script als SYSTEM kan draaien.