Skip to content

v1.5.5

Choose a tag to compare

@sdwolf4103 sdwolf4103 released this 05 May 04:26
· 29 commits to main since this release

Hot State Rendering Health

Replace blunt .slice(0, maxRenderedChars) prompt truncation with a section-aware greedy line accumulator that fits whole lines and suppresses empty sections.

Good rendering is selective too. If a section doesn't fit, omit it — don't cut it in half.

What Changed

  • Whole-line rendering: hot session state prompt no longer truncates mid-line. A greedy accumulator fits complete lines and stops when the next line would exceed the 700-char budget.
  • Header-only sections suppressed: a section heading is only rendered if at least one entry fits alongside it.
  • Render accounting: accountHotSessionStateRender() returns prompt, omitted items, and char budget for future v2 diagnostics.
  • Two-layer omission model: section caps (section_cap) trim per-type overflow first, then char budget (char_budget) trims anything that doesn't fit.
  • Backward-compatible wrapper: renderHotSessionState() delegates to the accounting function.

Docs Fixes

  • Active-file ranking formula corrected in docs/configuration.md: now matches actual implementation — ACTION_WEIGHT[action] + count * 3 with weights edit 50, write 45, grep 30, read 20.
  • Injection order clarified in README: system-prompt positions depend on whether workspace memory state is available.

Not Included Yet

  • Evidence events for omitted items deferred to v2, pending a memory-diag consumer.

Validation

  • npm run typecheck — TYPECHECK_PASS
  • npm test — 356 tests passing