Afijn. Weer wat verder geëxperimenteerd met gpt-5.6-sol. Micro taken gaan dus best goed, dus ik dacht ik maak de uitdaging iets groter voor het beste model ooit dat OpenAI heeft gebouwd
Helaas faalt ook dit model hard in het structureel vinden en oplossen van een probleem. Net als de oudere modellen is het ping-pongen enorm en blijft het model zaken fixen die kapot waren, en kapot maken wat werkte.
Hieronder een
klein deel van de discussie
Dat formattern blijft kloten he?. Elke keer weer hetzelfde probleem maken. Dat was net nog goed, maar nu niet meer. Wat is dat toch? Dat ping pongen tussen problemen ipv dingen structureel op te lossen?Je hebt gelijk: dit pingpongt omdat de precisie nog steeds uit de actuele bronstate-string wordt gehaald wanneer display_precision ontbreekt. Dan verandert 45.70 de precisie naar 2 en een volgende state 46.1 weer naar 1. De tooltipfix heeft dat niet veroorzaakt; de volgende humidity-update legt dezelfde fundamentele fout opnieuw bloot.
Ik zoek nu in de actuele Home Assistant-bron waar de stabiele effectieve precisie wordt opgeslagen. Daarna gebruiken hoofdentity, afgeleide entities en tooltip uitsluitend die ene bron, zonder precisie uit actuele meetwaarden af te leiden.
Codex komt dus wel met een net antwoord. Het lijkt erop dat deze begrijpt waar het fout gaat, maar de oplossing slaat weer nergens op omdat Codex niet de kern aanpakt, maar er weer omheen gaat lopen zoeken…De actuele HA-bron bevestigt waarom dit gebeurt: zonder expliciete display_precision bepaalt HA de min/max-precisie uit het aantal decimalen in iedere nieuwe state-string. Dat is voor een dashboardwaarde dus niet stabiel wanneer een integratie afwisselend 45.70 en 46.1 levert.
FHS moet de effectieve precisie daarom één keer per bronentity vastleggen in de entity-runtime/configlaag en daarna overal hergebruiken. Niet opnieuw berekenen in iedere StateTool of tooltip. Ik controleer nu de bestaande entity-resolutie en setHass-volgorde om die waarde op de centrale plek vast te leggen.
Leuk, maar het werkte voorheen. Het is een recht-toe-rechtaan conversie. Dus dit los je niet in de renderer op..Je hebt gelijk dat dit niet “per render opgelost” moet worden. Dat was de verkeerde richting. Er is bestaande werkende formatteringslogica vervangen tijdens de StateTool-integratie en daarna zijn er patches omheen gezet.
Ik stop met nieuwe precisie-opslag verzinnen. Ik vergelijk nu de laatste aantoonbaar werkende formatter vóór deze wijzigingen met de huidige code en herstel die route.
Daarna krijgt alleen de tooltip dezelfde bestaande formatter aangereikt; geen nieuwe cache, geen nieuwe fallback en geen historywijzigingen.
Afijn. Volgende poging...Ik vergelijk nu exact de formatter vóór de regressie met de huidige code. Ik wijzig alleen de formatteringsroute die is vervangen; de history- en grafiekcode blijft onaangeroerd.
De regressie is concreet: commit bdba6bc/925d65a verving de bestaande HA-uitvoer als precisiebron door een nieuwe berekening op precisionEntity.state. Daardoor wisselt 46.10 naar één decimaal zodra de volgende ruwe state 46.1 is. Ik zet die vervanging terug naar de eerdere rechtlijnige route: HA formatteert de bronentity, FHS neemt exact het aantal decimalen uit die reeds geformatteerde waarde over.
Afijn. Volgende poging...Ik zet nu precies twee regressies terug: StateTool haalt de precisie weer uit formatEntityStateToParts(), en de tooltip leest eerst diezelfde geformatteerde bronwaarde en gebruikt dát aantal decimalen voor min/avg/max. Er komt geen cache, state-opslag of extra formatterlaag bij.
En nog een poging...De diff laat nu precies de bedoelde restauratie zien. De gewone entity gebruikt opnieuw de daadwerkelijk door HA geformatteerde value-part; de tooltip gebruikt de gewone entity-uitvoer als precisiebron, zodat een berekende avg nooit zelf het aantal decimalen bepaalt. Ik bouw dit nu.
Maar oplossen ho-maar. Codex is dus niet in staat om dit structureel op te lossen. De uitdaging is te groot voor dit AI model, ondanks alle uitleg en onderbouwingen die ik vraag om het model de juiste kant op te sturen. Zelfs met het terugzetten uit een eerdere Git commit lukt het Codex niet.
Nadat ik het zelf had opgelost (had het probleem zelf gecreeerd door 2 regels in één functie om te draaien) en aan Codex vroeg of ik nu gelijk had dat deze zich enkel op de kernfunctie had moeten concentreren, iets dat Codex niet deed ondanks alle hints en tips...
Je had gelijk: de werkende formatteringsroute was vervangen.
Bij een andere test moet Codex stukken software verplaatsen. En daarmee bedoel ik LETTERLIJK verplaatsen naar een andere module. Het moet functioneel verder identiek blijven. Feitelijk dus een copy/paste met wat aanpassingen in de includes. Meer niet.
Voor icon is toch ook alles goed overgenomen? Of daar ook dingen lopen bijbouwen die er niet waren?Daar heb ik wél onnodig iets bijgebouwd: een unieke DOM-id en selector per icon-tool. Dat was niet nodig. De bestaande werking was: alleen iconTools[0] start de injectie en injectSvgUrlIcons() verwerkt vervolgens alle openstaande URL-iconen. Ik zet exact dat gedrag in IconTool.updated() en verwijder de toegevoegde id/selector.
Fix het dan maar weerDe iconcode is nu functioneel identiek aan vóór de lifecycle-refactor: dezelfde globale selector, dezelfde ene aanroep via tool-index 0, geen nieuwe DOM-id en geen extra injectieruns. Alleen de locatie van de aanroep is verhuisd van main.js naar IconTool.updated(). Ik bouw opnieuw.
Maar dat was toch ook de initiële opdracht? Gewoon verhuizen? Waarom toch weer?Omdat ik bij het verplaatsen ten onrechte ook de uitvoering per tool wilde maken, terwijl de bestaande functie bewust één globale DOM-query doet. Dat was scope-uitbreiding zonder noodzaak. Ik had de bestaande aanroep exact moeten verplaatsen en verder niets moeten veranderen. Dat is nu teruggezet.
De build is geslaagd. De iconwerking en pointerregistratie zijn nu exact behouden; alleen de lifecycle-aanroepen zijn naar de betreffende tools verplaatst.
Ondanks dat gpt-5.6-sol echt een stuk beter is, blijft het aanmodderen met zo'n AI als deze meer bewegingsruimte krijgt. Ik hou het dus maar op die microtaken en het bouwen van losse functies. Architectuur, lagen en fundamentele oplossingen hoef ik niet te verwachten, blijkt.
Maar in microtaken en het aansturen van Git 'typt' Codex gewoon factoren sneller dan ik als mens kan. Dus zolang je Codex goed aangelijnd houdt, doet hij dat werk sneller dan ik het kan. En dat is wel fijn met deze hitte moet ik zeggen.
En ondertussen door gewijzigd beleid vanuit OpenAI heb ik inmiddels al 4 usage limit resets bijeengespaard. Blijkbaar willen ze heel graag dat je meer gebruikmaakt van de nieuwe modellen!
Volgens de statistieken rag ik er nu zo'n 1 miljard tokens per maand doorheen. Dat komt deels door al het rework natuurlijk. Verder heb ik geen idee of dat veel is. Het klinkt wel als veel