mirror of
https://github.com/Hmbown/DeepSeek-TUI.git
synced 2026-09-03 06:50:13 +08:00
The one-paragraph TUI tour in README.md and all nine translations taught two
false preconditions and the wrong verb for undo.
Tab: the README said "when the composer is idle". The gate is EMPTINESS, not
idleness — crates/tui/src/tui/ui.rs:6978 does `if !app.input.is_empty() {
continue; }` immediately before `app.cycle_mode()`, and the comment at
ui.rs:6974-6977 explicitly denies the idle/running distinction ("Tab is
completion when the composer has content and a mode switch only when it is
empty ... so Tab never changes roles based on whether a turn happens to be
running"). A user with typed text and no turn running got completion, not a
mode switch.
Shift+Tab: the README applied the same "idle" qualifier. Shift+Tab has no
composer precondition at all — ui.rs:6363-6367 gates only on the modal stack,
per the comment at ui.rs:6358-6359 ("Shift+Tab is a shell-level permission
control. Keep it live in the composer.").
/restore: "undoes a turn" conflated two commands and described neither. Bare
`/restore` lists snapshots and reverts nothing
(crates/tui/src/commands/groups/skills/restore.rs:33-42 returns
`format_listing(&snapshots)` and returns early); `/restore <N>` reverts
workspace files only ("conversation history is unchanged", restore.rs:104-108).
The verb that undoes a turn is `/undo`
(crates/tui/src/commands/groups/debug/undo.rs:9-16). The product's own help
string already had this right — crates/tui/locales/en.json:287.
Also in this commit, because the translation stamp couples them:
- docs/KEYBINDINGS.md:18 inherited the same wrong "idle" qualifier on the
Shift+Tab row; KEYBINDINGS.md:17 was already correct for Tab.
- README.id.md was stamped in sync but was missing the docs/AUTHORIZATION_ORDER
and docs/HOOKS "Learn more" bullets that README.md:87-92 and the other eight
translations carry, and its language switcher omitted Русский and Українська.
Provenance: 171f0b2a2 touched README.md plus the eight files in the checker's
TRANSLATIONS list and skipped README.id.md; 92128e669 then refreshed the stamp
wholesale, so the marker certified a sync that did not exist.
- scripts/check-readme-translations.py checked only eight of the nine shipped
translations. README.id.md was absent from both TRANSLATIONS and the
LANGUAGE_LINKS exemption set, which is exactly how the gap above survived CI.
Adding it makes the gate report "9 translations in sync".
- README.ru.md:24 listed [Українська](README.uk.md) twice.
The gate was already red before this commit: cc20f407f added the Discord link
and badge to README.md and to every translation body but never re-stamped, so
all eight checked files reported stale. All nine are now re-stamped to
sha256:a7f294018f28.
Verified: `python3 scripts/check-readme-translations.py` exit=0 ("9
translations in sync"), `bash scripts/check-readme-locales.sh` exit=0 (PASS).