Conflicte in docs/ rezolvate cu versiunea locala (condensata, cu corectia CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=30), plus repunerea trimiterilor catre documentele de referinta aduse de merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ZwtBDjGbAWvy7TmcNVxDC
10 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.
GAURA DE MECANISM, neacoperita - de rezolvat la reluare
Documentele din docs/ (inclusiv ACEST fisier) sunt netracked in git si nu se comit pe main.
Deci nu au niciun transport automat: pe VM 304 au ajuns prin copiere manuala, si orice modificare
ulterioara pe o masina NU ajunge pe cealalta. Cele doua copii diverg tacut.
Mecanismul de reinjectare functioneaza perfect in cadrul unei masini, si deloc intre masini.
Solutia propusa, NEAPLICATA (cere decizia lui Marius): commit-ul documentelor de lucru pe un
branch dedicat in ROAFACTURARE (nu pe main - regula ramane), ca transportul sa fie git, nu
copierea manuala. Alternativ, un singur fisier de stare comis pe branch, iar restul raman locale.
Stare la 17.09.2026, dupa curatenie: pe AMBELE masini exista exact plan_qa_factura_aviz.md,
progres_qa_factura.md, handoff_activ.md, qa_factura_harta.md, qa_factura_unelte.md,
qa_factura_hooks_ref.md, s0_context_hook.md, hooks_functii_context.md,
function_hooks_verificare.md, vm304_acces.md
(+ PORNIRE.md doar pe VM). Sincronizate manual. Orice divergenta de aici incolo e tacuta.
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 prinagent_transcript_path, praguri 150k/200k, tace sub prag si lastop_hook_active=true).SessionStart->handoff_inject.ps1adaugat langadocs_revizie_check.ps1cel existent. Fara matcher: filtrarea pesourceo 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
/clearnu se pot declansa dintr-un hook. Confirmat prin citat direct. PostCompactnu poate injecta context (nu are control de decizie). Reinjectarea se face prinSessionStartcusource=compact. Matcher-ele SessionStart:startup,resume,clear,compact,fork.additionalContextare prag de 10.000 caractere; peste el Claude Code il scrie in fisier si paseaza calea.handoff_inject.ps1taie 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 primestetranscript_path, si fiecare linieassistantdin.jsonlaremessage.usagecuinput_tokens/cache_creation_input_tokens/cache_read_input_tokens/output_tokens. Pe asta e construitcontext_watch.ps1. Singurul canal cu procent gata calculat estatusLine, 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_OVERRIDEe 30 (=300k), imediat peste pragul max de 275k - nu 70, care ar fi insemnat 700k.
Ce a ramas de facut la B
- 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), faraturn.complete/turn.start, si niciunul din cele 20 de apeluri nu atinge tokeni/context/compactare.prompt.submite 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. - Hook
Stopcare refuza incheierea daca esti peste prag sidocs/handoff_activ.mde mai vechi decat ultima modificare reala. Proiectat, NEimplementat. Atentie lastop_hook_active(plafon 8 blocari consecutive). - Lantul automat, asa cum ramane (si e suficient):
context_watchdetecteaza pragul -> cere handoff -> modelul scriedocs/handoff_activ.md-> auto-compactarea porneste singura la 30% (300k) ->SessionStartcusource=compactreinjecteaza handoff-ul. Zero interventie./clearramane doar varianta manuala, cand se vrea context chiar gol. - Proba end-to-end a reinjectarii: acest fisier ESTE proba. Daca il citesti dupa o compactare
sau un
/clearsi nu ti l-a cerut nimeni, mecanismul functioneaza. Noteaza asta indocs/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=2pe cele doua combo-uri (ofacturare.vc2:17524,17560) + garda incombosql_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 dinALL_SOURCEpe MARIUSM_AUTO. Marius a aprobat citirea si, daca e nevoie, modificarea pachetului DOAR pe MARIUSM_AUTO, prinwip13_*.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
-ProjectRootexplicit.
VM 304 - CAPCANA DE MEDIU, cea mai importanta constatare
Tot ce se lanseaza prin qm guest exec ruleaza ca SYSTEM in sesiunea 0 (services);
desktopul lui Marius e sesiunea 1 (console, user romfast). Verificat cu query session.
Consecinte platite:
- GUI invizibil: procesele ruleaza real, dar nu apar pe ecranul lui Marius. Deci probele UI vizibile din S1 NU se pot rula prin guest exec - trebuie lansate din sesiunea interactiva de pe VM (adica din sesiunea Claude Code pe care o deschide Marius acolo).
- Fara credentiale:
svnlansat asa a stat agatat 14 minute asteptand autentificare. Procesele au fost omorate (PID 9136/1048/1820).roa_syncil ruleaza Marius, din sesiunea lui, DUPAsvn cleanup(svn a fost intrerupt la mijloc, working copy-ul poate fi blocat). roa_sync.ps1s-a mutat inCOMUN\scripts\; cel dinUTIL\foxbin2prg\e doar stub.exited: 0dinqm guest exec-statusinseamna inca ruleaza, e boolean, nu cod de iesire. Ce merge prin guest exec: copiat fisiere (EncodedCommand in bucati de ~1500 octeti), citit, verificat, inventar de mediu.
Mediu confirmat pe VM: D:\roa\ROAFACTURARE, D:\roa\ROAGEST, vfp9.exe, vfp_ui_harness.ps1,
test_init_env_auto_roafacturare.prg, vfp_symbols.ps1 - toate exista.
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 - anulat, vezi capcana de mediu de mai sus. Fara livrabil separat.
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-deploysifh-verify. Livrabilul lor edocs/function_hooks_verificare.md;vm304_deploy.mdnu exista (anulat), nu relansa orbeste - relansarea produce doi scriitori. - Cele 4 commit-uri sunt pe
mainsi pushate pe gitea. SVN neatins - merge-ul spre SVN ramane la Marius. Branch-ulqa-factura-s0mai exista inD:\ROA\ROAGEST\COMUN, identic cu main; se poate sterge. - Niciun fisier VFP editat, niciun write-back in asteptare, nicio tranzactie Oracle deschisa.
- 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.