fix: pos config secret values corrupted by stray newline in captured input
cfg_read_secret is invoked via $() inside _cfg_edit_one, so the echo that advanced the cursor after hidden input landed on the capture pipe instead of the terminal — every secret value stored with pos config on a real TTY got a leading newline (e.g. AI_GEMINI_API_KEY="\n<key>"), which neither cfg_value nor the ai/telegram load_config parsers could read back: the menu showed '(not set)' and pos ai gemini kept demanding a key. Fix: send that newline to stderr (>&2). Defense in depth: cfg_write and write_config_key now strip CR and truncate multi-line pastes, and the readers (cfg_value, ai + telegram load_config) strip CR. Reproduced and verified on a pseudo-TTY; piped-stdin tests never caught it because non-TTY input skips the stty/echo path.
This commit is contained in:
@@ -560,9 +560,9 @@ Use conventional prefixes: `feat:`, `fix:`, `docs:`, `refactor:`, `chore:`
|
||||
| `features/autostart.sh` | 14 | Boot-time feature (moved from `bin/`, flag-gated service) |
|
||||
<!-- GEN:START filetable -->
|
||||
| `bin/pos` | 277 | CLI dispatcher with smart arg matching + logging + category help |
|
||||
| `bin/pos-ai-gemini` | 197 | Chat with Google Gemini (ask, chat, models) |
|
||||
| `bin/pos-ai-gemini` | 198 | Chat with Google Gemini (ask, chat, models) |
|
||||
| `bin/pos-communication-telegram-listener` | 526 | Telegram bot listener: map /command → bash, run them on chat messages |
|
||||
| `bin/pos-communication-telegram-sender` | 220 | Send Telegram messages/files/links/stickers via Bot API (send, test) |
|
||||
| `bin/pos-communication-telegram-sender` | 221 | Send Telegram messages/files/links/stickers via Bot API (send, test) |
|
||||
| `bin/pos-config` | 80 | Interactive editor for the tools' runtime config (reads # POS_CONFIG: registry) |
|
||||
| `bin/pos-docker-compose` | 366 | Docker Compose service manager (ls/up/down/restart/logs/update/config) |
|
||||
| `bin/pos-docker-health` | 110 | One-glance container health dashboard (exits 1 if unhealthy) |
|
||||
|
||||
Reference in New Issue
Block a user