From 65d681a09703e9f53dc5cc064a4c91ebfefda2d3 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Thu, 17 Sep 2026 22:00:36 +0300 Subject: [PATCH] context_watch: parametru -StareFile pentru fisierul de progres Scrie/inlocuieste un singur antet pe primul rand al fisierului de stare (data, ora, tokeni, nivel), fara sa atinga restul continutului. Garanteaza ca fisierul de progres exista si e datat chiar daca sesiunea se opreste inainte sa apuce modelul sa scrie handoff-ul. Fara -StareFile comportamentul ramane neschimbat. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_015ZwtBDjGbAWvy7TmcNVxDC --- utile/context_watch.ps1 | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/utile/context_watch.ps1 b/utile/context_watch.ps1 index ca75f82..de93c8b 100644 --- a/utile/context_watch.ps1 +++ b/utile/context_watch.ps1 @@ -6,6 +6,9 @@ # Iese cu 2 si scrie pe stderr cand contextul depaseste pragul (asa ajunge mesajul la agent). # -OSinguraData: emite o singura data per prag per sesiune (marcaj in %TEMP%). Necesar pe PostToolUse, # altfel mesajul s-ar repeta la fiecare apel de tool si ar deveni zgomot ignorat. +# -StareFile : la pragul de avertisment/max, garanteaza ca fisierul exista si are un antet +# datat pe primul rand (""), +# inlocuit la fiecare rulare, nu acumulat. Restul continutului (scris de model) ramane neatins. [CmdletBinding()] param( [string]$TranscriptPath, @@ -13,9 +16,25 @@ param( [int]$PragMax = 275000, [switch]$Intotdeauna, [switch]$Stdout, # UserPromptSubmit: mesajul se scrie pe stdout si se iese cu 0 - [switch]$OSinguraData # PostToolUse: o singura alerta per prag atins, nu la fiecare tool + [switch]$OSinguraData, # PostToolUse: o singura alerta per prag atins, nu la fiecare tool + [string]$StareFile # optional: fisier de stare cu antet datat, actualizat la prag atins ) +function Scrie-AntetStare([string]$cale, [int]$tokeni, [string]$nivel) { + $antet = "" + if (Test-Path $cale) { + $continut = Get-Content -Path $cale -Encoding UTF8 + if ($continut.Count -gt 0 -and $continut[0] -match '^