zames_pro 2.87.0 → 2.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.88.0] - 2026-10-27
11
+
12
+ ### Added
13
+
14
+ - **ui:** switch the theme while the agent is generating
15
+
10
16
  ## [2.87.0] - 2026-10-27
11
17
 
12
18
  ### Added
package/README.md CHANGED
@@ -625,6 +625,10 @@ locale lives in `ui.locale` in the config file.
625
625
  `/theme` opens a pick list with a LIVE preview: the arrow keys repaint the
626
626
  terminal as you move, Enter saves, Esc restores the previous palette.
627
627
  `/theme <id>` applies a palette directly, `/theme list` prints every id.
628
+ The switch also works WHILE the agent is generating: `/theme <id>` and
629
+ `/config set ui.theme <id>` neither interrupt the turn nor touch the chat (it is
630
+ a pure terminal repaint); the bare `/theme` pick list is queued instead, because
631
+ it opens a full-screen list.
628
632
  The same setting is reachable from the settings side:
629
633
  `/config set ui.theme <id>` or the `/config` menu («Terminal color theme»).
630
634
  The switch is instant, no restart. `zames` is the default; the bundled palettes
@@ -1367,6 +1371,10 @@ enum переключаются на месте; числа и строки от
1367
1371
  `/theme` открывает список тем с живым предпросмотром: стрелками перебираете —
1368
1372
  терминал сразу перекрашивается, Enter сохраняет, Esc возвращает прежнюю.
1369
1373
  `/theme <id>` применяет тему сразу, `/theme list` показывает все id.
1374
+ Переключение работает и ВО ВРЕМЯ работы агента: `/theme <id>` и
1375
+ `/config set ui.theme <id>` не прерывают генерацию и не трогают чат (это чистая
1376
+ перекраска терминала); голый `/theme` со списком ставится в очередь, т.к.
1377
+ открывает полноэкранный список.
1370
1378
  То же самое доступно и через настройки: `/config set ui.theme <id>` или меню
1371
1379
  `/config`, строка «Цветовая тема терминала». Переключение мгновенное, без
1372
1380
  перезапуска. Тема по умолчанию — `zames`; в комплекте порты известных схем
package/dist/commands.js CHANGED
@@ -947,6 +947,18 @@ export function missingCommandArgs(names, rest) {
947
947
  export function isLiveConfigCommand(text) {
948
948
  return /^\/config\s+(?!menu\b|ui\b)\S+/i.test(String(text ?? '').trim());
949
949
  }
950
+ /**
951
+ * `/theme <id>` is safe WHILE the agent works: it only repaints the terminal
952
+ * (the theme object and the Ink colour map are mutated in place) and never
953
+ * touches the browser, the chat or the in-flight generation. So it is
954
+ * intercepted like `/config set` instead of being queued until the task ends.
955
+ *
956
+ * `/theme` with NO argument opens the pick LIST in the TUI, which pauses the
957
+ * editor and would fight the running task — that form stays queued.
958
+ */
959
+ export function isLiveThemeCommand(text) {
960
+ return /^\/theme\s+\S+/i.test(String(text ?? '').trim());
961
+ }
950
962
  // Parse a `/queue` invocation. Returns the subcommand ('list' | 'clear') or
951
963
  // null when the text is not a /queue command at all. This runs WHILE the agent
952
964
  // is busy (intercepted in the input handler), because the main command loop is
package/dist/index.js CHANGED
@@ -1807,6 +1807,12 @@ async function main() {
1807
1807
  void handleConfigCommand(text);
1808
1808
  return;
1809
1809
  }
1810
+ // `/theme <id>` is safe mid-run too: a pure repaint. The bare `/theme`
1811
+ // opens the pick list (pauses the editor) and stays queued.
1812
+ if (mod.commands.isLiveThemeCommand(text)) {
1813
+ void handleThemeCommand(text);
1814
+ return;
1815
+ }
1810
1816
  // `/goal` is safe mid-run: it only sets a variable and writes a file.
1811
1817
  if (/^\/goal(\s|$)/i.test(text.trim())) {
1812
1818
  void handleGoal(text);
package/llms-full.txt CHANGED
@@ -610,6 +610,10 @@ locale lives in `ui.locale` in the config file.
610
610
  `/theme` opens a pick list with a LIVE preview: the arrow keys repaint the
611
611
  terminal as you move, Enter saves, Esc restores the previous palette.
612
612
  `/theme <id>` applies a palette directly, `/theme list` prints every id.
613
+ The switch also works WHILE the agent is generating: `/theme <id>` and
614
+ `/config set ui.theme <id>` neither interrupt the turn nor touch the chat (it is
615
+ a pure terminal repaint); the bare `/theme` pick list is queued instead, because
616
+ it opens a full-screen list.
613
617
  The same setting is reachable from the settings side:
614
618
  `/config set ui.theme <id>` or the `/config` menu («Terminal color theme»).
615
619
  The switch is instant, no restart. `zames` is the default; the bundled palettes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.87.0",
3
+ "version": "2.88.0",
4
4
  "description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen or GLM — no API key required. Reads and edits files, runs commands, commits to git, like Claude Code / Codex CLI.",
5
5
  "type": "module",
6
6
  "bin": {