Merge branch 'main' into feat/docs-sandbox-web

This commit is contained in:
Hunter Bown
2026-08-19 23:26:03 -07:00
committed by GitHub
7 changed files with 28 additions and 13 deletions
+4
View File
@@ -322,6 +322,10 @@ abort under load.
the dictionary spine, retiring their inline bilingual literals in favor of
locale dictionaries with token-aware code spans (#5504, closes #5337, which
they also filed).
- Lstarsky0 (@Lstarsky0) — `docs/constitution` and `docs/runtime-api` follow
the same dictionary spine: 28 inline `isZh` branches become typed English
and Chinese dictionaries held to key and token parity, while the other
sixteen locales keep the English fallback (#5517, a further phase of #5337).
- @thejayjetson — the header status-indicator report that pinned the
regression to a specific setting, with every value, theme, and
`fancy_animations` combination already ruled out (#5512).
+4
View File
@@ -322,6 +322,10 @@ abort under load.
the dictionary spine, retiring their inline bilingual literals in favor of
locale dictionaries with token-aware code spans (#5504, closes #5337, which
they also filed).
- Lstarsky0 (@Lstarsky0) — `docs/constitution` and `docs/runtime-api` follow
the same dictionary spine: 28 inline `isZh` branches become typed English
and Chinese dictionaries held to key and token parity, while the other
sixteen locales keep the English fallback (#5517, a further phase of #5337).
- @thejayjetson — the header status-indicator report that pinned the
regression to a specific setting, with every value, theme, and
`fancy_animations` combination already ruled out (#5512).
+2 -2
View File
@@ -737,8 +737,8 @@ mod tests {
fn raw_stream_ceiling_clears_every_downstream_bound() {
// The clip must be unreachable by the model-visible surfaces: the 30 KB
// result truncation, the 1,200-char job tail, the 1 KiB completion tail.
assert!(RAW_STREAM_MAX_BYTES > 30_000 * 100);
assert!(super::RAW_STREAM_SETTLED_TAIL_BYTES > 30_000);
const { assert!(RAW_STREAM_MAX_BYTES > 30_000 * 100) };
const { assert!(super::RAW_STREAM_SETTLED_TAIL_BYTES > 30_000) };
}
#[test]
+1 -1
View File
@@ -3908,7 +3908,7 @@ fn completed_assistant_answer_projection_excludes_reasoning_tools_and_status() {
// no reasoning, tool calls/results, runtime status, or scaffolding.
use crate::tui::ui_text::history_cell_to_clipboard_text;
let cells = vec![
let cells = [
HistoryCell::User {
content: "please summarize".to_string(),
},
+1 -1
View File
@@ -280,7 +280,7 @@ mod tests {
#[test]
fn every_option_is_visible_at_80_columns() {
let rows = lines(&app(), 72, 17);
let text = rows.iter().map(|line| row_text(line)).collect::<Vec<_>>();
let text = rows.iter().map(row_text).collect::<Vec<_>>();
for (_, tag, native, _) in LANGUAGE_OPTIONS {
let shown = text.iter().any(|row| row.contains(native));
@@ -66,11 +66,11 @@ fn stall_timeout() -> Option<Duration> {
pub fn progress(label: &str) {
let elapsed = epoch().elapsed().as_millis().min(u128::from(u64::MAX)) as u64;
last_progress_millis().store(elapsed, Ordering::Relaxed);
if let Ok(mut slot) = last_label().try_lock() {
if slot.as_str() != label {
slot.clear();
slot.push_str(label);
}
if let Ok(mut slot) = last_label().try_lock()
&& slot.as_str() != label
{
slot.clear();
slot.push_str(label);
}
}
+11 -4
View File
@@ -128,11 +128,18 @@ describe("shared getting-started path", () => {
expect(first.body.en).toContain("without any API key");
expect(first.body.en).toContain("Plan mode");
expect(first.body.en).toMatch(/Model replies need a provider/);
// The keyless-launch claim is documented behavior, not invented copy.
// The keyless-launch claim must stay backed by documented runtime
// behavior. Assert the meaning docs/GUIDE.md owes this step -- a first
// launch that asks only for the decisions still needed, and a provider
// step that keeps an explicit offline route -- rather than one frozen
// sentence, which is what broke when the first-run flow was rewritten.
// Heading-level hashes only: shell comments inside the fenced install
// snippets start with a single "#" and must not end the section slice.
const guide = repoText("docs/GUIDE.md");
expect(guide).toContain(
"On first launch, Codewhale opens with a recommended working agreement",
);
const firstLaunch = guide.split(/^#{2,} .*First Launch.*$/m)[1]?.split(/^#{2,} /m)[0] ?? "";
expect(firstLaunch, "docs/GUIDE.md must keep a First Launch section").not.toBe("");
expect(firstLaunch).toMatch(/asks only for decisions/i);
expect(firstLaunch).toMatch(/offline route/i);
});
it("uses only documented commands", () => {