- Replace metrics-based TPS with slot n_decoded tracking during generation
- Add generation tracking state (generateSlotId, generateCapturedDecoded, generateStartAt)
- Poll interval reduced from 2s to 500ms to catch shorter prefill/generation events
- AVG now uses session average from message events (cumulative tokens/duration)
- Remove unused fetchMetrics, formatRate, formatTtft functions
- TPS: slot-based (shows for all generation including files)
- AVG: session average (cumulative across messages)
- Fix PP calculation: use per-slot n_prompt_tokens during prefill state
instead of global llamacpp:prompt_tokens_total from /metrics
- Add isPrefilling flag and prefill tracking state (slotId, capturedTokens, startAt)
- Add dedicated formatters: formatPps, formatTps, formatAvg, pad4
- Replace formatRate suffixes with raw number formatters
- Display: PP | TPS | AVG with fixed-width 4-char padding
- Slot polling every 2s with model query parameter
- Debug logging to /tmp/oc-ls-stats-debug.log
- Add .npmignore, TUIPLUGIN.md, test-debug-log.jsonl
- Update AGENTS.md with slot state phases, PP calculation docs