Feat/cesar harness improvements#272
Merged
Merged
Conversation
Read-only tools (Read/Grep/Glob/WebFetch/WebSearch/RetrieveResult/ ListPlans, plus read-only Bash) mutate nothing, so a superseded turn lease is not a reason to reject them — doing so hard-failed harmless reads whenever the turn advanced between the model's batch and execution (sibling calls in one response can transition the lease). Mutation-class tools still fence strictly. - turn-runtime.kern: new isReadOnlyToolCall, lockstep with the read_only TurnEffectClass used by runTurnToolOnce - session.kern: buildOnToolCall skips the lease fence for read-only - 6 new unit tests (38 total in cesar-turn-runtime) Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
runInterruptActiveRun called clearSteering() unconditionally, deleting any message the user had typed while Cesar was working. Now it harvests those mid-turn messages via drainLeftoverSteering(), redirect-wraps them against the just-interrupted turn (buildInterruptedTurnRedirect), and pushes them into inputQueue so the existing idle drain delivers them as the next turn — Claude Code parity. Pure idle Esc (nothing interrupted) queues the raw text as-is. Composer drafts still survive. - app-interrupt.kern: harvest-before-clear; setInputQueue dep - app.kern: wire setInputQueue into the interrupt call Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
- Remove natural-language 'review with <engine>' dispatch from chat - Keep slash commands (/review, /forge, etc.) as the only orchestration entry - Simplify intent.kern by 85 lines, update tests - Regenerate all generated TS mirrors Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
- Pluralize the tool count correctly in both recap renderers - Update app-scroll recap assertions to the compact one-line summary (combined '~1 edited · ✓ tests · 3 tools' line, 'undo: /undo <id>', no per-tool breakdown) — completes 9ce3272 which shipped the renderers without these test updates - Review findings from agon review (zai 0.85 grammar, codex 0.99 assertion coverage) verified and applied ⚔️ Forged by [Agon](https://github.com/KERNlang/agon) Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
Tag every tool_timeline record with an effect class (read/write/bash-read/ bash-write) at write time, classified with the same predicates the permission system uses (isWriteToolName/isBashToolName/isReadOnlyCommand). replayCesarHarnessLogs now surfaces per-turn mutationCount/readOnlyCount and a mutatingTools list, and renders an 'effects: N mutating · M read-only' line plus a 'writes:' line listing only mutating tools — answering the audit question 'what did Cesar actually change?' without re-deriving it. Legacy records without an effect stamp count as neither class. Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
Review fixes for 8061cf0 (agon review, codex 3 verified blockers): - Unwrap JSON-encoded Bash inputs before isReadOnlyCommand — the native stream path supplies '{"command":"git status"}' which was stamped bash-write wholesale; command-less/unparseable input fails closed - Unknown-effect tools (Agent, MCP, SaveMemory, …) now return undefined instead of masquerading as 'read'; explicit read-only tool list added - Mutation/read-only counts now derive from SUCCESSFUL tool_result events, not running-state tool_call attempts; failed mutation attempts surfaced as their own count in the replay rendering - Replay 'tools=' line counts distinct calls, not call+result rows - Tests: temp dirs cleaned up, unused appendFileSync import dropped, effect-split coverage extended to JSON inputs / unknown tools / failed writes ⚔️ Forged by [Agon](https://github.com/KERNlang/agon) Co-Authored-By: agon (KERN) <292465531+KERN-Agon@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.