Repository navigation
fix(tui): drop the engine's status reply to a fleet roster refresh - #7152
Merged
Hmbown merged 1 commit intoOct 31, 2026
Merged
Conversation
Every fleet change sends Op::SetFleetRoster, and the engine answered each one with "Fleet roster refreshed for subsequent turns". Each of those changes already writes its own receipt: the /fleet add|remove note in the transcript, the toasts from the route editors, the "Team ... profile saved" status. The engine's line arrived after it and took over the footer, and in a Chinese UI it left an English sentence there. 04de8eb fixed the same kind of ack replacing a host receipt for SetCompaction. Store the roster without sending a status. Nothing else reads that message. Signed-off-by: Lstarsky0 <59827030+Lstarsky0@users.noreply.github.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Hmbown
pushed a commit
that referenced
this pull request
Oct 31, 2026
…urfaces Changelog lines for #7147, #7146, #7156, #7157, #7158, #7152 and #7150, and credit for the contributors across CHANGELOG `### Contributors`, docs/CONTRIBUTORS.md and UNRELEASED_CONTRIBUTORS (adds @luochen211, whose #7150 and #7149 landed). #7149 is a dead-code chore and has no changelog line. Verified: `python3 scripts/check-contributor-credit.py` reports every contributor in the window credited on all three surfaces; `scripts/preflight.sh --check` passes; `sh scripts/sync-changelog.sh` regenerated crates/tui/CHANGELOG.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1 of 3 tasks
Hmbown
pushed a commit
that referenced
this pull request
Oct 31, 2026
`/config stream_chunk_timeout_secs <n>` answers in the transcript with the new value and whether it was saved, then sends Op::SetStreamChunkTimeout. The engine answered the op with "Stream chunk timeout set to <n>s", which repeated that note in the footer and stayed there; at 80 columns it also pushed the Shift+Tab hint off the row. It is the same kind of ack that #7152 removed for SetFleetRoster and 04de8eb for SetCompaction. Store the timeout without sending a status. Nothing reads that message, and a runtime thread's config reload, the other sender, already skips status events that arrive before a turn starts. Signed-off-by: Lstarsky0 <59827030+Lstarsky0@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.
What and why
Every fleet change ends in
Op::SetFleetRoster, and the engine answered each one with a status: "Fleet roster refreshed for subsequent turns". The change itself already has a receipt (the/fleet add|removenote in the transcript, the route editors' toasts, the "Team … profile saved" status), so the engine's line only arrives after it and takes over the footer, where in English it also pushes the Shift+Tab hint off the row. After/fleet add openai mock, before:It was still there 7 seconds later, and with
LANG=zh_CN.UTF-8it is the one English sentence on the screen:After:
The engine now stores the roster without sending a status. Nothing reads that message, and the TUI is the only sender of the op. 04de8eb fixed the same kind of ack replacing a host receipt for
SetCompaction.Issue
No-Issue: the engine's ack to a fleet roster refresh replaces the fleet receipts in the footer; I searched and found no issue for it
How I tested it
mainat 6dd9af5 in a pseudo-terminal at 100x30 with an empty HOME and a local mock OpenAI-compatible server, typed/fleet add openai mock, and read the screen 0.3 s and 7 s later, in English and withLANG=zh_CN.UTF-8; the rows above come from those runs.cargo nextest run -p codewhale-tui -p codewhale-tui-kit --lib: 13661 of 13663 passed, with the 1606 tests whose names matchfleet,rosterorengineamong them. The 2 failures (status_report_localizes_the_complete_japanese_surface,test_update_model_compaction_budget) also fail onmainat 6dd9af5 without this change.cargo fmt --all -- --check,cargo clippy -p codewhale-tui -p codewhale-tui-kitwith CI's flags (also on 1.99),cargo check -p codewhale-tui -p codewhale-tui-kit --all-targetsandcargo +1.89.0 check -p codewhale-tui -p codewhale-tui-kit: clean.Checklist
maincargo fmt --allpasses, and tests cover new or changed behavior —cargo fmtpasses; no new test, per AGENTS.md, so the runs above stand in for onedocs/features.toml(cargo test -p codewhale-tui --test feature_registrychecks it) — n/a