Session-close gate

Session-close gate este contractul prin care Wednesday încheie o sesiune fără să lase în urmă stare divergentă, context pierdut sau schimbări neverificate. Gate-ul rulează înaintea oricărei afirmații de tip „session safe”, „good state” sau „gata de închis”.

Protocolul canonic este sursa de adevăr. Adaptoarele runtime și skill-ul session-close doar îl invocă; nu păstrează copii independente ale pașilor.

Când se activează

  • la închiderea unei sesiuni de lucru;
  • la finalul unei faze;
  • la un handoff între runtime-uri, caz în care starea intermediară rămâne explicită.

O pauză scurtă nu declanșează automat întregul protocol. Operatorul îl poate cere explicit prin „close session”.

Protocolul în 12 pași

1. Actualizează starea runtime

Wednesday scrie faza, momentul ultimei actualizări și rezumatul ultimei sesiuni semnificative. Elementele deschise nu se mai păstrează într-o listă locală de tip pending; ele merg în backlogul canonic din Apple Reminders.

Pentru pașii 1–3, mecanismul standard este snapshot-ul atomic: întâi verificare cu wednesday-session-snapshot.py --check, apoi aplicarea aceleiași actualizări asupra tuturor suprafețelor de stare.

2. Completează jurnalul de runtime

Se adaugă o intrare cu fază, dată, rezumat, runtime și starea schimbărilor nepublicate. Corecțiile operatorului din timpul sesiunii sunt păstrate textual în câmpul realignments, inclusiv atunci când lista este goală.

3. Arhivează și reîmprospătează scratchpad-ul

Focusul anterior este arhivat înainte de suprascriere. Noul focus conține doar contextul curent, în unul sau două paragrafe, plus următorii pași dacă există. Scratchpad-ul rămâne memorie de lucru, nu jurnal istoric.

4. Reconciliază backlogul în Apple Reminders

Apple Reminders este backlogul canonic pentru acțiunile operatorului. Dacă sesiunea a creat sau a schimbat un astfel de pas, Wednesday îl trimite prin fluxul de sincronizare; vechile fișiere locale de backlog rămân doar istoric.

5. Actualizează registrele de containere, când este cazul

Dacă s-a schimbat starea Docker sau a unei mașini-gazdă, registrele operaționale relevante sunt actualizate în aceeași schimbare. Dacă infrastructura de containere nu s-a schimbat, pasul este declarat neaplicabil.

6. Închide sau scrie handoff-ul

Un task terminat lasă handoff-ul gol. Un task întrerupt lasă un handoff complet: ce este gata, ce urmează și contextul necesar pentru reluare. Următorul runtime nu trebuie să reconstruiască situația din conversații vechi.

7. Capturează deciziile ca fapte temporale

Deciziile operatorului, retragerile de servicii, alegerile de arhitectură și noile lecții sunt înregistrate prin facts.py. Fluxul standard identifică entitatea, relația, valoarea și sursa; o entitate nouă este creată numai deliberat. Extractorul nocturn este backfill, nu înlocuitor pentru capturarea de la închiderea sesiunii.

8. Rulează hook-urile de voce

Wednesday verifică vocabularul nou și propriul ton față de doctrina de voce. False positive-urile sunt adjudecate, nu ascunse, iar un răspuns care încalcă lista de respingere este corectat înainte de închidere.

9. Capturează sesiunea în Honcho

Memoria conversațională cross-runtime este obligatorie. În runtime-urile cu hook nativ, capturarea se face automat; în Codex, Wednesday rulează manual honcho-session-capture.py pentru transcriptul curent. Pasul este safe-fail și idempotent, dar nu poate fi omis în tăcere.

10. Verifică paritatea ghidurilor

Dacă sesiunea a adăugat sau a schimbat skills, MCP-uri, pluginuri, doctrine ori peers, Wednesday rulează guides-refresh.py în mod dry-run. Ghidurile lipsă se generează numai prin gateway-ul model-agnostic și rămân draft până la revizuire.

11. Rulează cele două gate-uri de verificare

Mai întâi se recitesc suprafețele actualizate și se rulează wednesday-state-gate.sh. O stare prea veche sau faze divergente blochează închiderea până la remediere.

Apoi wednesday-quality-eval.py --session-close verifică munca sesiunii. Rezultatele sunt candidați care trebuie adjudecați:

  • [VERIFY] — lipsește dovada directă pentru o afirmație de tip „gata”;
  • [PERSIST] — infrastructura creată nu este încă durabilă;
  • [INDEX] — un index indică spre o resursă inexistentă;
  • [OWN LOOP] — o verificare a fost lăsată operatorului, deși putea fi mecanizată.

Gate-ul de calitate este advisory, dar fiecare semnal este investigat și rezolvat sau retras explicit înaintea afirmației de siguranță.

12. Rulează sweep-ul de actualizări

session-close-updates.sh verifică actualizările runtime-urilor, ale uneltelor de sistem și ale serviciilor gestionate, apoi raportează diferențele de versiune. Dacă o actualizare înlocuiește binarul unui serviciu activ, serviciul este repornit prin mecanismul său canonic și verificat din nou.

Regula de oprire

Orice nepotrivire reală oprește afirmația „session safe”. Wednesday repară problema, rerulează verificarea relevantă și abia apoi raportează rezultatul. Exit code-ul unui script nu înlocuiește verificarea efectului produs.

Ce trebuie să facă operatorul

În mod normal, nimic manual. Wednesday execută protocolul când sesiunea se închide. Operatorul poate cere oricând „run state gate”, „handoff” sau „close session” pentru a forța suprafața potrivită și poate solicita dovezile verificărilor înainte de a accepta concluzia.