diff --git a/crates/cli/src/lib.rs b/crates/cli/src/lib.rs index 09452784..ba2fbbba 100644 --- a/crates/cli/src/lib.rs +++ b/crates/cli/src/lib.rs @@ -994,7 +994,18 @@ fn auth_status_all_providers(store: &ConfigStore, secrets: &Secrets) -> Vec Option { /// Core: task execution, tool-use rules, output format, toolbox reference, /// "When NOT to use" guidance, sub-agent sentinel protocol. /// -/// Rendered from `prompts/constitution.yaml` via `render_constitution.py`. -/// The YAML is the source of truth; the markdown is the compiled artifact. -/// Run `python3 render_constitution.py > constitution.md` to regenerate. +/// `prompts/constitution.yaml` + `render_constitution.py` exist as the +/// intended generation pipeline, but the renderer is NOT yet reconciled +/// with this committed markdown (#3015): it emits a much shorter document, +/// bakes the default model id over the `{model_id}` placeholder, and +/// duplicates the Authority Recap that `compose` appends at runtime. Do +/// NOT regenerate this file from the renderer until that gap is closed — +/// edit the markdown directly and mirror structural changes into the YAML. pub const BASE_PROMPT: &str = include_str!("prompts/constitution.md"); // ── Embedder prompt overrides ── diff --git a/crates/tui/src/tui/history.rs b/crates/tui/src/tui/history.rs index b192a39c..b99f1d99 100644 --- a/crates/tui/src/tui/history.rs +++ b/crates/tui/src/tui/history.rs @@ -4185,7 +4185,26 @@ mod tests { .flat_map(|line| line.spans.iter().map(|span| span.content.as_ref())) .collect::(); assert!(text.contains("Full reasoning in Ctrl+O")); - assert!(text.contains("reasoning")); + // Pin the actual header shape ("… reasoning done") — a bare + // `contains("reasoning")` is already satisfied by the Ctrl+O + // affordance line above and would never fail on its own. + let header = lines + .first() + .map(|line| { + line.spans + .iter() + .map(|span| span.content.as_ref()) + .collect::() + }) + .unwrap_or_default(); + assert!( + header.starts_with(REASONING_OPENER), + "header opens with the dotted opener: {header:?}" + ); + assert!( + header.contains("reasoning done"), + "header carries the reasoning title and done status: {header:?}" + ); } #[test]