Skip to content

The history doc comment says what the history framing says - #193

Merged
tobert merged 2 commits into
mainfrom
history-doc
Sep 10, 2026
Merged

The history doc comment says what the history framing says#193
tobert merged 2 commits into
mainfrom
history-doc

Conversation

@tobert

@tobert tobert commented Sep 10, 2026

Copy link
Copy Markdown
Owner

#192 changed the session-history framing from re-verification to trust and acquisition, and left the doc comment above consult_user_prompt describing the behavior it replaced: "History prepends the prior (question, answer) pairs and steers the model to re-confirm any span a prior answer cited."

A standalone explore over the prompt-composition path found it, reported it as the one thing that looked stale in the area, and named how to confirm — the framing text and session_history_asks_for_more_evidence_not_a_re_read both pin the opposite.

Internal comment only: no published text, no behavior change, no test change. The two claims the old comment made that are still true — the exploration runs fresh every turn rather than replaying a stored report, and the files win over a prior answer where they disagree — stay.

🤖 Generated with Claude Code

#192 changed the session-history framing from re-verification to trust and
acquisition, and left the doc comment above `consult_user_prompt` describing
the behavior it replaced — "steers the model to re-confirm any span a prior
answer cited". A standalone `explore` over the composition path found it.

Internal comment only; no published text and no behavior change. The two claims
the old comment made that are still true — exploration runs fresh every turn,
and the files win over a prior answer — stay.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-by: kaibo cast `crusoe` (Deepseek-V4-Flash, standalone explore)
@tobert

tobert commented Sep 10, 2026

Copy link
Copy Markdown
Owner Author

Reviewed by kaibo, cast deepseek (explorer and synth both deepseek-flash, via the DeepSeek Platform key), pointed at this branch with src/consult/prompts.rs attached and the change described in prose rather than as a diff.

It agreed the rewritten sentence is now accurate, then turned the question back on the whole block — which is the rule here for prose — and found three more claims in it that were wrong, all predating the stale sentence this PR came from:

  1. The bare-question condition named two of its three terms. The guard is history.is_empty() && context.is_none() && attached.is_empty(); an attach-only call is legal and is not the bare question. The doc above empty_history_yields_the_bare_question carried the same omission, and that test passes all three empty.
  2. The input inventory omitted attached — the parameter that renders the largest block of the prompt.
  3. "the whole of the context-seed" overclaimed. The context bytes ride only through this function, but the trust posture is installed twice: here and in the consult preamble's fourth paragraph. The history test's own doc depends on that duplication ("four paragraphs earlier in the same request"), and the reviewer counted the paragraphs to confirm it.

All three verified against source before acting; the second commit fixes them, plus a hedge ("rarely needs re-deriving") that was weaker than what the prompt actually says.

Its wider pass for other old-posture text found none — thirteen posture-carrying sites across prompts.rs, engine.rs, session.rs, server/mod.rs, cli.rs, AGENTS.md, CHANGELOG.md and docs/config.md all read the current way. Two observations it raised need no change: a scripted test fixture re-reads a span its own delegated sweep reported, which the preamble explicitly endorses, and the negative assertion at prompts.rs:1851 now guards a string that appears nowhere else in the tree, so the positive assertion beside it is the one carrying the property.

It was straight about its own limit: git is refused in the sandbox, so it could not read the diff and took the description of the old wording from the supplied context rather than verifying it.

A `deepseek` cast review of the first commit turned the question back on the
whole doc block, which is the rule for prose here — judge the block, not the
diff. Three more claims in it were wrong, all pre-dating the stale sentence:

- The bare-question condition named two of its three terms. The guard is
  `history.is_empty() && context.is_none() && attached.is_empty()`; an
  attach-only call is legal and is not the bare question. The test doc above
  `empty_history_yields_the_bare_question` carried the same omission, and that
  test passes all three empty.
- The input inventory omitted `attached`, which renders the largest block of
  the prompt.
- "the whole of the context-seed" overclaimed: the context bytes ride only
  through here, but the trust posture is installed twice — here and in the
  consult preamble's fourth paragraph, which is what the history test's own doc
  relies on.

Also dropped a hedge: the comment said a grounded cite "rarely needs
re-deriving" where the prompt says to trust it instead of re-deriving it.

The review's wider pass found no other old-posture text in the tree. Two
observations it raised need no change: a scripted test fixture re-reads a span
its own delegated sweep reported, which the preamble endorses, and the negative
assertion at prompts.rs:1851 guards a string that now appears nowhere else, so
the positive assertion beside it is the one doing the work.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-by: kaibo cast `deepseek` (deepseek-flash, both roles)
@tobert
tobert merged commit 1b6e74f into main Sep 10, 2026
1 check passed
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