Maintenance #394
stängdMaintenance #135: Produktionshårdning och slutregression
Maintenance #381: Samling: Återverifiera godkända katalog- och köpflöden efter pilotavgränsning
Rätta pilotföreningens klippkortsartiklar för deltagarfritt verifieringsflöde
100%
Beskrivning
Pilotföreningens kortförsäljningsartikel kräver i dag namn och födelseår, och den befintliga inlösenartikeln är avsedd för deltagarflödet. Anpassa endast syntetisk pilotdata så att ärende #379 kan verifiera det redan aktiverade deltagarfria klippkortsflödet utan att förstöra den deltagarkonfigurerade artikeln. Ta skrivskyddad före- och efterinventering samt databasbackup före ändring. Omfattar inte aktivering av participant checkout, mixed checkout, kortdelning, restbetalning eller behandling av verkliga personuppgifter.
Acceptanskriterier
Kortförsäljningsartikeln A-000002 är aktiv, har ett aktivt erbjudande om 10 klipp och kräver inte deltagaruppgifter. Den befintliga artikeln Träning med namn och födelseår lämnas oförändrad. En separat syntetisk aktiv inlösenartikel utan obligatoriska personfält använder Tiokort träning och ett klipp per nyttjande. Kontant- och Swishköp av kort, utfärdat saldo 10, ett deltagarfritt nyttjande, kvitto och rapport verifieras på mobil och desktop. Backup samt skrivskyddad före- och efterinventering verifieras; inga andra affärsrader eller flaggor ändras.
Testresultat
PASS 2026-09-28: Produktionsbackup och isolerad restore verifierades före de avgränsade datareparationerna. A-000002 säljer 10 klipp utan personfält; A-000003 löser in exakt 1 klipp utan personfält; deltagarartikeln och samtliga flaggor är oförändrade. Kontantköp K-00000015 och Swishköp S-00000016 utfärdade vardera saldo 10. Separat nyttjande #6 drog exakt ett klipp (kort #1: 9 till 8; övriga testkort kvar på 10). Kvitton och saldon PASS. Release edee7c9 visar nyttjandet separat i försäljningsrapporten på desktop och mobil samt i CSV med Betalsätt=Klippkort, Täckt värde=10,00 och brutto/netto=0,00; rapporttotalerna är oförändrade.
CA Uppdaterad av Codex API för 4 dagar sedan
- Relaterar till Maintenance #379: Aktivera och verifiera köp och nyttjande av klippkort tillagd
CA Uppdaterad av Codex API för 4 dagar sedan
- Relaterar till Maintenance #382: Inventera testföreningens artikel-, produkt- och klippkortskonfiguration tillagd
CA Uppdaterad av Codex API för 4 dagar sedan
- Testresultat uppdaterad (skillnader)
CA Uppdaterad av Codex API för 4 dagar sedan
Implementationen använder aktiv release 4542b5b och aktiv card-pilot-konfiguration, kräver matchande färsk databasbackup och isolerad restore, kontrollerar autentiserad HTTPS och tar ett gemensamt aktiveringslås. Datatransaktionen verifierar exakt nuvarande pilotbas, tar endast bort name/birth_year från A-000002 och skapar via ordinarie artikelservice en syntetisk aktiv inlösenartikel utan personfält för Tiokort träning, ett klipp per nyttjande. A-000001 Träning och alla feature flags lämnas oförändrade. Driftdetektering och idempotens täcks av nytt integrationstest. Ingen produktionsdata har ändrats.
CA Uppdaterad av Codex API för 4 dagar sedan
Commit 308eccb4fde555edfbb3bd024f870c7cd3c2ea24 skapad på main med endast de fem granskade underhålls- och testfilerna. Lokala kontroller före commit: Python 5/5, befintliga kortpilotprov 7/7, katalogrevision 4/4, Python-kompilering och tre PHP-syntaxkontroller PASS. Push och full fjärr-CI återstår.
CA Uppdaterad av Codex API för 4 dagar sedan
Push av 308eccb lyckades men fjärr-CI stoppade releasebygget eftersom integrationscontainern endast monterar backend som /app och testet försökte läsa klassen från rotens scripts-katalog. Grundsviten 99 tester/840 assertions passerade före stoppet. Lokal korrigering klar: klassen flyttad till Composer-autoloadade backend/app/Maintenance, produktionsverktyget refererar samma fil i supportpaketets bevarade katalogstruktur och testet använder App-namnrymden. Python 5/5, pilot 7/7, audit 4/4, kompilering och PHP-syntax PASS. Ny commit/push och fjärr-CI återstår.
CA Uppdaterad av Codex API för 4 dagar sedan
- Testresultat uppdaterad (skillnader)
CA Uppdaterad av Codex API för 4 dagar sedan
Grön CI efter korrigeringarna f51029a, cde6159 och 588b727. Privat supportpaket skapat på Remembrance: /home/bj/.local/share/foreningskiosk-card-pilot-articles-394-588b727.tar.gz, SHA-256 f993e4e5d2028829fc7d86a2313ce69d6a0976927da3134512f214a132a051b4, arkivläge 0600 och källkatalog 0700. Paketet innehåller endast revisionslåst konfigurationsverktyg, delad underhållsklass, tester, skrivskyddad audit och restore-verifierare. Ingen produktionsdata eller flagga ändrad.
CA Uppdaterad av Codex API för 4 dagar sedan
Förkontrollen på Webserver nådde appkontot men misslyckades eftersom det privata operatörspaketets katalog inte var traverserbar för foreningskiosk. Korrigering framtagen: endast de två verifierade PHP-filerna iscensätts kortvarigt root-ägda under /run med 0755-kataloger och 0644-filer, körs som appkontot och rensas automatiskt. Release, databas och paketbehörigheter lämnas oförändrade. Regressionstest tillagt; 6 Python-tester och py_compile passerar.
CA Uppdaterad av Codex API för 4 dagar sedan
Push verifierad: main på Remembrance pekar på ecee1a6ff6976b3f40e282599cb6e643ccfbb011 och server-CI PASS. Minimalt korrigeringspaket skapat privat på Remembrance: foreningskiosk-card-pilot-articles-394-fix-ecee1a6.tar.gz, SHA-256 e51d86bc28b021e371263b8edcecfefe27d2df5fb4441d6e45a5660c3af52700, mode 0600.
CA Uppdaterad av Codex API för 4 dagar sedan
Slutligt komplett självverifierande supportpaket skapat: foreningskiosk-card-pilot-articles-394-ecee1a6.tar.gz, SHA-256 8cea5466920c080b663e4712605a6e4f1dc010fc6c179282b9d905be641dc480, mode 0600. Interna SHA-kontroller, 6 artikelkonfigurationstester och 4 auditprov PASS. Detta fullständiga paket ersätter det tidigare minimala fixpaketet.
CA Uppdaterad av Codex API för 4 dagar sedan
Webserver-förkontroll PASS för ecee1a6: yttre och interna SHA-256, 6 artikelkonfigurationstester, 4 auditprov och PHP-syntaxkontroller godkända. Produktionskontrollen rapporterade exakt state expected-before och bekräftade att ingen databasrad eller flagga ändrades.
CA Uppdaterad av Codex API för 4 dagar sedan
Färsk produktionsbackup och isolerat nätverkslöst återställningsprov PASS på Remembrance. Snapshot 91d8226a825a937373c871e1de5e80c3e71ad2bb40bc0065872de6e29a36e605 matchade i backup- och återställningsbevis; dump_sha256 5c99129e34dbab6ef507037ec2539094f16de6b1416cd1a272102e48794883e0. Källdatabasen lämnades oförändrad.
CA Uppdaterad av Codex API för 4 dagar sedan
Backup- och återställningsbevis överförda till Webserver med bj:bj 0600 och verifierade av produktionsverktyget. Slutlig skrivskyddad kontroll PASS för snapshot 91d8226a825a. Alla förvillkor för den avgränsade dataändringen är därmed uppfyllda; --apply inväntar uttryckligt godkännande.
CA Uppdaterad av Codex API för 4 dagar sedan
Godkänd produktionsändring genomförd på Webserver. HTTP-kontroller PASS; syntetisk deltagarfri klippkortsartikel skapades transaktionellt som article_id=6 och efterkontrollen rapporterade state applied. Befintlig deltagarkonfigurerad Träning-artikel, funktionsflaggor, autentiseringsuppgifter, tjänster och timers lämnades oförändrade. Ändringen skyddades av återställd snapshot 91d8226a825a.
CA Uppdaterad av Codex API för 4 dagar sedan
Skrivskyddad efterinventering PASS. A-000002 är aktiv, utan obligatoriska personfält, köpbar med kontant och Swish samt erbjuder exakt 10 klipp. Ny article_id 6/A-000003 är aktiv, utan personfält och berättigad till separat kortflöde med ett klipp. A-000001 behåller name+birth_year och sin regel. Samtliga pilotflaggor är oförändrade.
CA Uppdaterad av Codex API för 4 dagar sedan
Manuell produktionsverifiering avbruten före köp: A-000002 visas i katalog och varukorg men GET /kiosk/1/cash/review omdirigerar med 'Artikeln kräver personuppgifter' trots att efteraudit visar required_fields=[]. Inget köp skapades. Auditens cash_available-bedömning räcker inte; checkout-integrationen ska reproduceras och korrigeras inom samma acceptansutfall.
CA Uppdaterad av Codex API för 4 dagar sedan
Felet reproducerades även via Swish review; inget köp skapades och testvagnen innehåller endast article_id 4. Regressionstest tillagt för CardPilotArticleConfiguration -> CashPurchases::review med buyer details avstängt. Skrivskyddad produktionsdiagnos tillagd för exakt aktiv testuser-vagn och samma serviceanrop, med ovillkorlig transaktionsrollback och utan personvärden. 7 Pythonprov, py_compile och PHP-syntax PASS. Lokal PHPUnit kunde inte starta eftersom lokal PHP saknar mbstring; isolerad MariaDB-körning inväntar CI.
CA Uppdaterad av Codex API för 4 dagar sedan
Diagnostikcommit 36c70b854538e5c62e1bae9a397b7f313bf67edb pushad till main. Serverns push-hook rapporterade CI PASSED och skapade release-artefakt. Committen lägger till en integrationstest som bevisar att den applicerade kortförsäljningsartikeln kan granskas utan köparuppgifter samt ett skrivskyddat produktionsdiagnostikskript för att jämföra aktiv varukorg, råa kravfält, RequiredPurchaseFields och CashPurchases::review. Nästa steg är att köra den skrivskyddade diagnostiken på Webserver; ingen produktionsdata ändras.
CA Uppdaterad av Codex API för 4 dagar sedan
Skrivskyddad produktionsdiagnos mot aktiv testvarukorg identifierade exakt orsak: draft 27 innehåller A-000002, men article_required_fields har åter name och birth_year. RequiredPurchaseFields returnerar därför båda fälten och CashPurchases::review blockerar korrekt när buyer_details=false. Ingen data ändrades. En avgränsad återhämtningsväg är implementerad lokalt: den känner endast igen detta exakta delvis återställda tillstånd, tar transaktionellt bort försäljningsartikelns kravfält, återanvänder befintlig syntetisk inlösenartikel och vägrar övrig drift. Lokalt PASS: 7 Pythonprov, py_compile, diffcheck och PHP-syntax; MariaDB-integration ska verifieras av server-CI efter godkänd commit/push.
CA Uppdaterad av Codex API för 4 dagar sedan
Korrigeringscommit e2baa60 skapad lokalt på main. Den känner igen endast det diagnostiserade läget sale-fields-restored, tar transaktionellt bort name och birth_year från A-000002, återanvänder befintlig syntetisk inlösenartikel och vägrar annan drift. Separat deploymentbevis används för reparationen. PASS lokalt: 7 Pythonprov, py_compile, diffcheck och PHP-syntax. Server-CI återstår efter godkänd push.
CA Uppdaterad av Codex API för 4 dagar sedan
Commit e2baa60fd07dd78313e5a3dc92b85f3d83ad824c pushad till main; server-CI PASSED. Revisionslåst reparationspaket placerat på Remembrance som /home/bj/.local/share/foreningskiosk-card-pilot-fields-repair-394-e2baa60.tar.gz, SHA-256 fec948a8cf1527d64b0504c3a63d4dd382720a7473245da8232e5f07b7f9b0de. Nästa steg: färsk krypterad databasbackup och isolerad återställningsverifiering före separat godkänd produktionsändring.
CA Uppdaterad av Codex API för 4 dagar sedan
Färsk produktionsbackup och isolerad återställningsverifiering PASS på Remembrance. Snapshot 7554a6ecebcea51da1c158f3ff36bc05dfc26582c9edd4e7c68a2f67d6f7d12b, dump SHA-256 b0dce54c8e3827fe5719534bea97be3cb820cf5985a0b1009f05216b70b925aa. Källdatabasen var oförändrad. Backupbevisets SHA-256 d5f587cd45d34f79d4d1027d583237ad483ef4e1d46727f4901f3f8e08d5cb18; återställningsbevisets SHA-256 25d8f55328870077e743b7ed6e8beac0ac370890416ec308d62b255e0e1d3b7b. Webserver-preflight återstår.
CA Uppdaterad av Codex API för 4 dagar sedan
Den skrivskyddade kataloginventeringen efter stoppad preflight visade att både A-000002 och syntetiska A-000003 åter fått name och birth_year. Erbjudandet är funktionellt oförändrat (10 klipp, aktivt, rätt korttyp) men revision=3; inlösenregeln är funktionellt oförändrad (1 klipp, aktiv, rätt korttyp) men revision=2. Detta stämmer med administrativ omsparning. Preflight stoppade korrekt och ingen data ändrades. Lokal korrigering utökad för att hantera försäljning, inlösen eller båda; den bevarar revisionsnummer och övriga värden, vägrar annan drift. PASS: 7 Pythonprov, py_compile, diffcheck och PHP-syntax. Ny commit och server-CI krävs.
CA Uppdaterad av Codex API för 4 dagar sedan
Korrigeringscommit 5372394 skapad lokalt på main efter den fullständiga produktionsinventeringen. Den reparerar selektivt återställda personkravfält på försäljningsartikeln, inlösenartikeln eller båda, accepterar legitima högre relationsrevisioner utan att nollställa dem och vägrar övrig drift. PASS lokalt: 7 Pythonprov, py_compile, diffcheck och PHP-syntax. Server-CI återstår efter godkänd push.
CA Uppdaterad av Codex API för 4 dagar sedan
Commit 5372394cb5e014bc161ef1cfccca0be6d0430843 pushad till main; server-CI PASSED inklusive MariaDB-fallen för revisionsläge 3/2 och återställda fält på båda artiklarna. Ersättande paket på Remembrance: /home/bj/.local/share/foreningskiosk-card-pilot-fields-repair-394-5372394.tar.gz, SHA-256 0feecb26c8bd62949efa41950cb4713ac682189f6837548b8a98f4172eb66e00. Tidigare e2baa60-paket får inte användas för apply.
CA Uppdaterad av Codex API för 4 dagar sedan
Webserver-preflight PASS för paket 5372394: interna SHA-256, 7 Pythonprov och PHP-syntax godkända. Exakt produktionsläge identifierat som article-fields-restored; inga databasrader eller flaggor ändrades. Färsk verifierad backup 7554a6ecebce är kopplad. Separat uttryckligt godkännande inväntas före --apply.
CA Uppdaterad av Codex API för 4 dagar sedan
Godkänd produktionsändring genomförd med paket 5372394. HTTP-kontroller: autentiserad /up 200, anonym /up 401, /kiosk/1 200 och /test-login 200. Transaktionellt resultat=repaired, article_id=6; efterkontroll state=applied. Deltagarkonfigurerade Träning-artikeln, samtliga feature flags, credentials, services och timers var oförändrade. Manuell och skrivskyddad checkoutverifiering återstår.
CA Uppdaterad av Codex API för 4 dagar sedan
Produktionsverifiering 2026-09-27: kontantköp av A-000002 skapade köp K-00000015 och kort #3 med 10 klipp. Swishköp skapade köp S-00000016 och kort #4 med 10 klipp. Deltagarfritt nyttjande av A-000003 registrerades som #6 mot kort #1; kvittot visade 8 klipp kvar och en oberoende kontroll under Mina klippkort bekräftade kort #1 = 8 samt kort #2-#4 = 10. Varukorgen tömdes efter genomförandet och inga personuppgifter efterfrågades. Kvitton och saldon PASS på desktop. Återstår enligt acceptanskriteriet: verifiera att de nya kontant-, Swish- och klippkortsposterna visas korrekt i försäljningsrapporten på mobil och desktop innan ärendet stängs.
CA Uppdaterad av Codex API för 3 dagar sedan
- Testresultat uppdaterad (skillnader)
Slutverifiering kompletterad efter #405: den separata klippkortsposten visas korrekt på desktop och mobil, finns i CSV och påverkar inte betalningstotalerna. Därmed är kvarvarande rapportkriterium uppfyllt. Ärendet flyttas till Verification för oberoende godkännande; det stängs inte av utföraren.