fix(cli): не отдавать stdin обёртки командам обслуживания

docker compose exec -T подключает stdin и съедал его у скрипта, поданного на
stdin (ssh … bash -s): обёртка обрывала такой скрипт после первой команды.
Найдено живой проверкой build/cli-live-check.sh (create-user выполнялся, дальше
скрипт молча заканчивался). Командам обслуживания stdin не нужен: </dev/null.

Плюс e2e web/e2e/query-retry.spec.ts: живая проверка повтора при 429 — запрос
участников дважды получает 429 с retry_after_ms и проходит с третьей попытки,
раздел «Участники» заполняется без кнопки «Повторить».
This commit is contained in:
2026-09-26 18:40:46 +03:00
parent b9d458e133
commit 8cf6bedf58
2 changed files with 123 additions and 2 deletions
+5 -2
View File
@@ -228,10 +228,13 @@ cmd_verify_backup() {
# app_cli выполняет подкоманду обслуживания внутри контейнера приложения
# (AGENT.md 10.7): команды, которым нужна БД, живут в Go-бинарнике, а shell-обёртка
# доставляет их с хоста.
# доставляет их с хоста. `</dev/null` обязателен: `docker compose exec -T`
# подключает stdin и без этого съедает его у вызывающего скрипта — а обёртку
# часто зовут из скрипта, поданного на stdin (`ssh … bash -s`), и он обрывался
# после первой же команды.
app_cli() {
require_stack
${COMPOSE} exec -T app glchat "$@"
${COMPOSE} exec -T app glchat "$@" </dev/null
}
# cmd_reindex пересобирает индекс полнотекстового поиска (AGENT.md 10.7).