zames_pro 2.82.135 → 2.82.136

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.82.136] - 2026-10-24
11
+
12
+ ### Fixed
13
+
14
+ - **spinner:** a live language switch reaches the non-TTY spinner
15
+
10
16
  ## [2.82.135] - 2026-10-24
11
17
 
12
18
  ### Changed
package/dist/index.js CHANGED
@@ -1903,6 +1903,9 @@ async function main() {
1903
1903
  // DeepSeek-side message printed later would still come out in the OLD
1904
1904
  // language until a restart.
1905
1905
  browser.setLocale(value);
1906
+ // A NON-TTY run has no editor: its only UI is the spinner, which must
1907
+ // follow the switch too (it is created per command from the locale).
1908
+ mod.createSpinner(value).setLocale?.(value);
1906
1909
  if (editor) {
1907
1910
  editor.setLocale(value);
1908
1911
  editor.setCommands(buildSlashCommands());
package/dist/spinner.js CHANGED
@@ -63,7 +63,11 @@ export function createSpinner(locale = 'ru') {
63
63
  };
64
64
  // Hint in the status line: while the agent works the terminal is live,
65
65
  // so you can type the next message. Without it this is not obvious.
66
- const HINT = theme.dim(' · ' + translate(locale)('spinner.hint'));
66
+ // RE-DERIVED on a locale switch: `/config lang` changes the language live,
67
+ // and a constant built once at construction kept the OLD language (and even
68
+ // the old locale's separator) until a restart.
69
+ let localeNow = locale;
70
+ let HINT = theme.dim(' · ' + translate(localeNow)('spinner.hint'));
67
71
  // Run the animated status line: a brown base text plus a growing/shrinking
68
72
  // "running" dot sequence. Shared by the thinking spinner and the send-pause
69
73
  // indicator, so the pause is animated too (before, it was a static line and
@@ -128,6 +132,13 @@ export function createSpinner(locale = 'ru') {
128
132
  spinner.text = theme.prompt('✎ ') + pending + HINT;
129
133
  };
130
134
  return {
135
+ // `/config lang` switches the language live; the legacy LineEditor and the
136
+ // TUI adapter both expose setLocale, and index.ts calls it on EVERY editor.
137
+ // Without it the non-TTY spinner kept its old-language hint until restart.
138
+ setLocale: (l) => {
139
+ localeNow = l;
140
+ HINT = theme.dim(' · ' + translate(localeNow)('spinner.hint'));
141
+ },
131
142
  get onTasksQuery() {
132
143
  return onTasksQuery;
133
144
  },
@@ -148,7 +159,7 @@ export function createSpinner(locale = 'ru') {
148
159
  sendPause: (seconds) => {
149
160
  if (pending)
150
161
  return;
151
- const label = translate(locale)('spinner.pause', { n: seconds });
162
+ const label = translate(localeNow)('spinner.pause', { n: seconds });
152
163
  // Update only the base text while the dot animation is already running,
153
164
  // so the countdown refreshes without resetting the dots.
154
165
  if (animating && dotTimer && spinner) {
@@ -179,7 +190,7 @@ export function createSpinner(locale = 'ru') {
179
190
  // long time): the operator must see that work is in progress.
180
191
  if (pending)
181
192
  return;
182
- startAnimated(translate(locale)('spinner.running_tool', { name }));
193
+ startAnimated(translate(localeNow)('spinner.running_tool', { name }));
183
194
  },
184
195
  toolResult: (result) => {
185
196
  stop();
@@ -194,7 +205,7 @@ export function createSpinner(locale = 'ru') {
194
205
  const rendered = renderMarkdown(msg);
195
206
  // Model answer marker: helps visually separate it from the user's input
196
207
  // (which is highlighted by the prompt with a golden arrow).
197
- console.log(NL + theme.assistant(translate(locale)('editor.answer')) + NL);
208
+ console.log(NL + theme.assistant(translate(localeNow)('editor.answer')) + NL);
198
209
  console.log(rendered);
199
210
  console.log(theme.dim(divider()) + NL);
200
211
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.82.135",
3
+ "version": "2.82.136",
4
4
  "description": "Terminal coding agent that drives a real browser to chat with DeepSeek, Qwen and other web LLMs — 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": {