Skip to content

feat(cesar): recap reflects real outcome, not tool noise — + fork-men…#215

Merged
cukas merged 2 commits into
mainfrom
feat/api-cesar-feel
Jun 16, 2026
Merged

feat(cesar): recap reflects real outcome, not tool noise — + fork-men…#215
cukas merged 2 commits into
mainfrom
feat/api-cesar-feel

Conversation

@cukas

@cukas cukas commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

…u fix

Recap redesign — the end-of-turn summary stopped over-signalling failure:

  • Headline ✓/⚠ derives from the TURN outcome (did the engine respond), never from intermediate tool exit codes, so a shipped turn no longer reads as ⚠.
  • Per-command ✓/✘ list dropped. Only UNRECOVERED CONSEQUENTIAL failures get a red ✗ line, via a typed classifyConsequence (commit/push/build/test/… vs plumbing, fail-open on unknowns, segment-aware so cd && git commit is a commit). Recovered/plumbing failures fold into a dim "N non-fatal" count that by construction can never hide a real problem.
  • The benign "paused mid-task — auto-continuing" nudge is marked transient at its source and excluded from the recap (still shown live as it happens).
  • /compact now shows "⤵ context compacted · session continues".
  • changes:/verified: success rows kept in parity across the live and scrollback renderers; the layout row estimator tracks the new rows.

Fork-menu fix — the "pick one" picker fired on the wrong list:

  • New, unit-tested extractAdjacentForkOptions: a picker fires only when the numbered/lettered options are a contiguous block directly above the closing question. A numbered DESCRIPTION followed by prose and an open question is no longer mis-rendered as a picker; option labels truncate on word boundaries.

Hardening (agon review panel):

  • OutputEvent cesar-recap variant and warning.transient are now typed (no as any); verification reflects the LAST attempt per label (an early failed build/test that a retry fixed reads ✓); the emit gate no longer treats a lone plumbing command (git status) as a finding.
  • _noBriefNudged: module Set → WeakMap keyed by the session object (no cross-session leak); dispatchToolCall duration map → per-key FIFO so concurrent same-name tools can't corrupt each other's durations; KERN_VERSION fallback 3.5.7 → 4.0.0.

+30 unit tests; full suite green.

⚔️ Forged by Agon

…u fix

Recap redesign — the end-of-turn summary stopped over-signalling failure:
- Headline ✓/⚠ derives from the TURN outcome (did the engine respond), never
  from intermediate tool exit codes, so a shipped turn no longer reads as ⚠.
- Per-command ✓/✘ list dropped. Only UNRECOVERED CONSEQUENTIAL failures get a
  red ✗ line, via a typed classifyConsequence (commit/push/build/test/… vs
  plumbing, fail-open on unknowns, segment-aware so `cd && git commit` is a
  commit). Recovered/plumbing failures fold into a dim "N non-fatal" count that
  by construction can never hide a real problem.
- The benign "paused mid-task — auto-continuing" nudge is marked transient at
  its source and excluded from the recap (still shown live as it happens).
- /compact now shows "⤵ context compacted · session continues".
- changes:/verified: success rows kept in parity across the live and scrollback
  renderers; the layout row estimator tracks the new rows.

Fork-menu fix — the "pick one" picker fired on the wrong list:
- New, unit-tested extractAdjacentForkOptions: a picker fires only when the
  numbered/lettered options are a contiguous block directly above the closing
  question. A numbered DESCRIPTION followed by prose and an open question is no
  longer mis-rendered as a picker; option labels truncate on word boundaries.

Hardening (agon review panel):
- OutputEvent cesar-recap variant and warning.transient are now typed (no
  `as any`); verification reflects the LAST attempt per label (an early failed
  build/test that a retry fixed reads ✓); the emit gate no longer treats a lone
  plumbing command (git status) as a finding.
- _noBriefNudged: module Set → WeakMap keyed by the session object (no
  cross-session leak); dispatchToolCall duration map → per-key FIFO so
  concurrent same-name tools can't corrupt each other's durations; KERN_VERSION
  fallback 3.5.7 → 4.0.0.

+30 unit tests; full suite green.

⚔️ Forged by [Agon](https://github.com/KERNlang/agon)

Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
# Conflicts:
#	packages/cli/src/generated/cesar/brain.ts
@cukas cukas merged commit de94559 into main Jun 16, 2026
2 of 3 checks passed
@cukas cukas deleted the feat/api-cesar-feel branch June 16, 2026 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants