Skip to content

fix: reject a template-echo summary; close an open turn on an idle notification - #40

Merged
aaroncoville merged 2 commits into
theme/sixth-historyfrom
fix/echo-and-idle-turn
Oct 5, 2026
Merged

aaroncoville merged 2 commits into
theme/sixth-historyfrom
fix/echo-and-idle-turn

Conversation

@aaroncoville

Copy link
Copy Markdown
Owner

Two small hardening fixes.

  • Condense: an answer that only echoes the prompt's format template was read as a valid frame, which would replace history with placeholder text. A condensed body or hoist fact equal to a placeholder is now rejected. Summaries that merely mention a placeholder still parse. Prompt text is unchanged.
  • Worker wake: a notification classified as idle ("waiting for your input") now closes the open turn, as Stop does, so interrupted turns and engines that never send Stop are not shielded for the full ceiling. A permission prompt leaves the turn open.

Both test-first with mutation checks; touched suites pass.

Aaron Coville added 2 commits October 5, 2026 16:45
The condense prompt shows the frame with two placeholders in it,
"<free-form condensed summary>" and "<new durable fact, one per line>". A
model that answered with that template alone produced a valid frame. The
placeholder then replaced the condensed history and was pinned as a
durable fact. The file got smaller, so nothing downstream objected, and
the backup was the only way back.

A frame whose summary is the summary placeholder, or whose hoist list
includes the fact placeholder, is now rejected like any other unusable
answer. A summary that merely mentions the placeholder is still accepted.
The prompt reads the placeholders from the same constants, so its text is
unchanged.
…nput

An open turn keeps a worker off the stall re-nudge until Stop arrives,
bounded by a twenty-minute ceiling for a Stop that never comes. An
interrupted turn sends no Stop, and some engines never send one. For
those, the turn stayed open for the whole ceiling, and a worker that was
in fact idle and stalled on its mail waited out the full twenty minutes.

The CLI's idle notification ("waiting for your input") says the same
thing Stop does, so it now closes the turn too. A permission prompt is a
turn waiting on the human, not a finished one, so it leaves the turn
open, and the HITL hold covers the prompt itself.
@aaroncoville
aaroncoville merged commit a810bec into theme/sixth-history Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

🚫 This PR is missing its before/after evidence

Every pull request here has to show its work. Screenshots or a short screen recording, before the change and after it.

  • Before — no image or video under that heading
  • After — no image or video under that heading

How to fix it: edit the description, keep the ### Before and ### After headings from the template, and drag an image or video under each. GitHub uploads it inline. This check re-runs the moment you save.

A bug fix with no visible surface still needs it: show the failing behaviour, then the same steps passing. A terminal recording is fine.

Genuinely nothing to show — a CI tweak, a typo, a dependency bump? A maintainer can apply the no-visual-change label. Please don't ask unless it truly has no observable effect.

📖 CONTRIBUTING.md → Evidence is mandatory

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.

1 participant