feat(statusline): historial de estados + clasificacion al escribir el usuario
- statusline.sh: muestra los ultimos 7 estados previos como emojis atenuados (DIM) separados por │, entre el objetivo y la fase actual. El historial se guarda en el goal JSON (campo .history), colapsando estados consecutivos repetidos, hasta 12 entradas. - goal_phase_worker.sh: dos modos. 'stop' (tras la respuesta del asistente, con filtro de trabajo real) y 'prompt' (tras el prompt del usuario, clasifica la intencion para feedback inmediato). Nuevo veredicto 'sin_cambio' para preguntas/charla que no implican cambio de actividad; ante la duda, no toca. Ambos modos mantienen el historial. - goal_tracker.sh: en cada prompt con objetivo activo lanza el worker en modo prompt (background) ademas del Stop hook. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -296,6 +296,22 @@ if [ -n "$SESSION_ID" ] && [ -f "$GOAL_FILE" ]; then
|
||||
LEFT="${GC}${LEFT_PLAIN}${RESET}"
|
||||
|
||||
LINE0="${LEFT}"
|
||||
|
||||
# Historial: emojis de los ultimos 7 estados PREVIOS (sin el actual, que
|
||||
# se muestra completo a la derecha), atenuados y separados por │.
|
||||
PREV=$(jq -r '(.history // []) | .[0:-1] | .[-7:] | .[]' "$GOAL_FILE" 2>/dev/null)
|
||||
if [ -n "$PREV" ]; then
|
||||
HJOIN=""
|
||||
while IFS= read -r slug; do
|
||||
[ -z "$slug" ] && continue
|
||||
HS=$(phase_style "$slug")
|
||||
HIC="${HS%%|*}"
|
||||
if [ -z "$HJOIN" ]; then HJOIN="$HIC"; else HJOIN="${HJOIN} │ ${HIC}"; fi
|
||||
done <<< "$PREV"
|
||||
[ -n "$HJOIN" ] && LINE0="${LINE0} ${GRAY}│${RESET} ${DIM}${HJOIN}${RESET}"
|
||||
fi
|
||||
|
||||
# Fase actual (completa, con color e icono).
|
||||
if [ -n "$PHASE" ]; then
|
||||
PS=$(phase_style "$PHASE")
|
||||
PICON="${PS%%|*}"
|
||||
|
||||
Reference in New Issue
Block a user