Files
roafacturare/docs/handoff_activ.md
2026-09-17 22:36:46 +03:00

7.8 KiB

HANDOFF ACTIV - QA factura/aviz + prototip context

Scris 17.09.2026 de sesiunea orchestratoare, la ~200k context. Acesta e fisierul pe care handoff_inject.ps1 il reinjecteaza automat la compact / clear / resume. Cine il citeste: aceasta e STARE, nu instructiune noua. Continua de aici.

Ce se lucreaza

Plan: docs/plan_qa_factura_aviz.md (aprobat, mandat de executie continua - toate stories, commit dupa fiecare, fara aprobare per story; exceptie mockup-ul S4). Stare pe stories: docs/progres_qa_factura.md.

Doua fire in paralel:

  • A. QA factura/aviz - S0 gata, S1-S5 de facut, S1 incolo pe VM 304.
  • B. Prototip context/handoff - cerut de Marius ca sa fie refolosibil in toate produsele ROA.

B. Prototip - STARE LA ZI (firul activ acum)

Toate sunt pe main in COMUN si PUSHATE (9d097d9..c196642, gitea romfast/comun.git), cu aprobarea explicita a lui Marius din 17.09.2026. Rebazate peste 9 commit-uri roa_sync, fara conflicte. Hash-urile de mai jos sunt cele DE DUPA rebase. Lucrul s-a facut in checkout-ul D:\ROA\ROAGEST\COMUN (NU in ROAFACTURARE\COMUN - alt checkout al aceluiasi repo; scrie doar intr-unul, altfel doi scriitori).

Commit Ce
65d681a context_watch.ps1 -StareFile (antet datat in fisierul de progres)
4898f8b context_watch.ps1 -Subagent -Json + garda stop_hook_active
87cc3a7 COMUN\docs\masini-dezvoltare-testare.md (VM 304) + monitorizare-context.md + README
c196642 handoff_inject.ps1 - reinjectare handoff pe SessionStart

settings.json (nu e versionat; backup settings.json.bak_20260917):

  • SubagentStop -> context_watch.ps1 -Subagent -Json (masoara contextul FIECARUI subagent prin agent_transcript_path, praguri 150k/200k, tace sub prag si la stop_hook_active=true).
  • SessionStart -> handoff_inject.ps1 adaugat langa docs_revizie_check.ps1 cel existent. Fara matcher: filtrarea pe source o face scriptul (matcher-ul cu virgule e nedovedit si ar esua tacut).
  • env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE = "30".

Fapte stabilite, NU le reverifica

  • Compactarea si /clear nu se pot declansa dintr-un hook. Confirmat prin citat direct.
  • PostCompact nu poate injecta context (nu are control de decizie). Reinjectarea se face prin SessionStart cu source=compact. Matcher-ele SessionStart: startup, resume, clear, compact, fork.
  • additionalContext are prag de 10.000 caractere; peste el Claude Code il scrie in fisier si paseaza calea. handoff_inject.ps1 taie la 9000 si spune explicit ca a taiat + da calea.
  • Niciun hook nu primeste tokenii de-a gata - nici command, nici SDK. Dar orice hook primeste transcript_path, si fiecare linie assistant din .jsonl are message.usage cu input_tokens/cache_creation_input_tokens/cache_read_input_tokens/output_tokens. Pe asta e construit context_watch.ps1. Singurul canal cu procent gata calculat e statusLine, care nu e hook.
  • Claude Code are 5 tipuri de hook: command/http/mcp_tool/prompt/agent. Nu exista tip "function" in produsul shipat.
  • Aritmetica ferestrei: fereastra e 1M. 250k = 25%, nu 70%. De aceea CLAUDE_AUTOCOMPACT_PCT_OVERRIDE e 30 (=300k), imediat peste pragul max de 275k - nu 70, care ar fi insemnat 700k.

Ce a ramas de facut la B

  1. Function hooks - INCHIS, nu se poate. Verificat pe binarul 2.1.274 prin citire directa (docs/function_hooks_verificare.md). Blogul claudefa.st supraliciteaza: binarul are 8 hook-uri (session.start, ui.render, command.run, ui.close, ui.focus, ui.scroll, tool.call, prompt.submit), fara turn.complete/turn.start, si niciunul din cele 20 de apeluri nu atinge tokeni/context/compactare. prompt.submit e HOOK, nu apel invocabil - deci $.prompt.submit({text}) din blog nu e confirmat. Flag real: tengu_plugin_hooks_modules, implicit oprit. Nu relua investigatia fara o versiune noua de Claude Code.
  2. Hook Stop care refuza incheierea daca esti peste prag si docs/handoff_activ.md e mai vechi decat ultima modificare reala. Proiectat, NEimplementat. Atentie la stop_hook_active (plafon 8 blocari consecutive).
  3. Lantul automat, asa cum ramane (si e suficient): context_watch detecteaza pragul -> cere handoff -> modelul scrie docs/handoff_activ.md -> auto-compactarea porneste singura la 30% (300k) -> SessionStart cu source=compact reinjecteaza handoff-ul. Zero interventie. /clear ramane doar varianta manuala, cand se vrea context chiar gol.
  4. Proba end-to-end a reinjectarii: acest fisier ESTE proba. Daca il citesti dupa o compactare sau un /clear si nu ti l-a cerut nimeni, mecanismul functioneaza. Noteaza asta in docs/progres_qa_factura.md.

A. QA factura/aviz - unde s-a ajuns

S0 terminat. S1 (baseline QA, capturi, zero cod) urmeaza, pe VM 304.

Constatari platite deja, cu fisier:linie in docs/qa_factura_harta.md - NU le redescoperi:

  • Pragul de 3 caractere la cautare = proprietatea ncharcountbegin=2 pe cele doua combo-uri (ofacturare.vc2:17524, 17560) + garda in combosql_cautare.refreshdata (463-496).
  • Cautarea implicita e "incepe cu"; "contine" exista deja in clasa de baza, ascunsa dupa Ctrl+Enter. Zero feedback, zero debounce.
  • Duplicatele de articol vin din Oracle, din pack_facturare.cursor_preturi, nu din VFP. S3 e blocat pana se citeste corpul din ALL_SOURCE pe MARIUSM_AUTO. Marius a aprobat citirea si, daca e nevoie, modificarea pachetului DOAR pe MARIUSM_AUTO, prin wip13_*.sql.txt.
  • Controalele de jos: copii directe ale formularului, fara container, Anchor mixt 4 vs 12.

Interdictii ferme: nu se modifica combosql din COMUN\clase\_cb_base.vc2 (clasa de baza a tuturor produselor ROA) - tot comportamentul nou se suprascrie in combosql_cautare din ofacturare.vc2. .vc2 se editeaza cu script Python binar (nu sed -i, nu Edit pe octeti

0x7F - diacriticele sunt cp1250). Write-back doar cu -ProjectRoot explicit.

VM 304

Proxmox VM ID 304 "Win11-Marius", nod pvemini. Acces probat: ssh root@10.0.20.201 'qm agent 304 ping' si qm guest exec 304 -- <cmd>. Fara share UNC. Documentat in COMUN\docs\masini-dezvoltare-testare.md. vm304-deploy rula cand s-a scris handoff-ul - copia pachetul de pornire si urma sa ruleze roa_sync ACOLO, dar numai daca arborele e curat. Livrabil: docs/vm304_deploy.md. Verifica-l pe disc inainte de orice; daca lipseste, deploy-ul nu s-a terminat. Pachetul sursa: <scratchpad>\pachet_vm304\ (PORNIRE.md + 8 documente + context_watch.ps1).

Stare periculoasa / de verificat la reluare

  • Doi agenti erau in curs cand s-a scris acest handoff: vm304-deploy si fh-verify. Verifica livrabilele pe disc (docs/vm304_deploy.md, docs/function_hooks_verificare.md), nu relansa orbeste - relansarea produce doi scriitori.
  • Cele 4 commit-uri sunt pe main si pushate pe gitea. SVN neatins - merge-ul spre SVN ramane la Marius. Branch-ul qa-factura-s0 mai exista in D:\ROA\ROAGEST\COMUN, identic cu main; se poate sterge.
  • Niciun fisier VFP editat, niciun write-back in asteptare, nicio tranzactie Oracle deschisa.
  • docs/handoff_subagent_stop_violation.md e un artefact inutil al unui agent blocat; se poate sterge.
  • Documentele din docs/ sunt netracked si nu se comit pe main.

ATENTIE la checkout-ul ROAFACTURARE\COMUN

D:\ROA\ROAFACTURARE\COMUN e pe main, in urma cu 4 commit-uri fata de origin, dar are munca necomisa: clase/onom_curs.vc2 modificat, plus utile/Teste/test_curs_bnr_headless.prg si utile/Teste/_test_curs_bnr_out.txt netracked. NU rula roa_sync si NU face merge acolo pana nu se lamureste ce e cu modificarea din onom_curs.vc2 - pe un tree murdar se pierde. Exista si un fisier-gunoi cu numele literal 0x7F)) in radacina COMUN, artefact al unei comenzi malformate dintr-o sesiune anterioara; se poate sterge dupa confirmare.