dsh-agy-link 0.4.28 → 0.4.29

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
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.29 (2026-09-15)
4
+
5
+ ### English
6
+
7
+ - **Hotfix: client blank page / `cannot get property "locale" without inject` (issue #24).**
8
+ - 0.4.28 removed `locale` from the client `export inject` list while still reading `ctx.locale`. Cordis treats every inject entry as a hard dependency and throws on undeclared service access, so the web client failed to load.
9
+ - Restored `inject = ['slots', 'locale']`, use `ctx.locale` directly, and mark `@deepseek-ai/dsh-client-locale` as a required peer (shipped with `dsh-web-app`).
10
+
11
+ ### 中文 (Chinese)
12
+
13
+ - **热修:0.4.28 客户端白屏 / `cannot get property "locale" without inject`(#24)。**
14
+ - 0.4.28 把 `locale` 从 client `inject` 里拿掉却仍访问 `ctx.locale`;Cordis 对未声明服务的属性访问会直接抛错。
15
+ - 恢复 `inject = ['slots', 'locale']`,直接使用 `ctx.locale`,并将 `@deepseek-ai/dsh-client-locale` 标回必选 peer。
16
+
3
17
  ## 0.4.28 (2026-09-15)
4
18
 
5
19
  ### English
package/dist/client.js CHANGED
@@ -841,7 +841,7 @@ window.__ModuleLoader__.load({
841
841
  return node;
842
842
  };
843
843
  const name = "dsh-agy-link-client";
844
- const inject = ["slots"];
844
+ const inject = ["slots", "locale"];
845
845
  const base = win.location?.origin ?? "";
846
846
  let statusCache = null;
847
847
  async function getStatus() {
@@ -1551,7 +1551,7 @@ body.dark,
1551
1551
  };
1552
1552
  function apply(ctx) {
1553
1553
  const locale = ctx.locale;
1554
- if (locale) ctx.effect(() => {
1554
+ ctx.effect(() => {
1555
1555
  const disposePtBR = locale.addLanguage({
1556
1556
  id: "pt-BR",
1557
1557
  label: "Português (Brasil)",
@@ -1575,11 +1575,10 @@ body.dark,
1575
1575
  disposePtBR();
1576
1576
  };
1577
1577
  }, "agy-link: locale dictionaries");
1578
- const tFallback = ((key) => zh[key]);
1579
1578
  const useAgyTranslation = () => {
1580
1579
  const [, rerender] = useState(0);
1581
- useEffect(() => locale?.subscribe(() => rerender((revision) => revision + 1)) ?? (() => {}), []);
1582
- return locale?.bind("agy-link") ?? tFallback;
1580
+ useEffect(() => locale.subscribe(() => rerender((revision) => revision + 1)), []);
1581
+ return locale.bind(NS);
1583
1582
  };
1584
1583
  const AgySettingsSection = (props) => {
1585
1584
  const t = useAgyTranslation();
@@ -2453,7 +2452,7 @@ body.dark,
2453
2452
  name: "conversation.session.header.actions",
2454
2453
  id: "agy-link-status",
2455
2454
  order: 10,
2456
- label: () => locale ? locale.bind(NS)("section.label") : zh["section.label"],
2455
+ label: () => locale.bind(NS)("section.label"),
2457
2456
  locale: NS
2458
2457
  }, AgySessionStatus);
2459
2458
  });
@@ -2462,7 +2461,7 @@ body.dark,
2462
2461
  name: "settings.section",
2463
2462
  id: "agy-link",
2464
2463
  order: 20,
2465
- label: () => locale ? locale.bind(NS)("section.label") : zh["section.label"],
2464
+ label: () => locale.bind(NS)("section.label"),
2466
2465
  locale: NS
2467
2466
  }, AgySettingsSection);
2468
2467
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-agy-link",
3
- "version": "0.4.28",
3
+ "version": "0.4.29",
4
4
  "description": "Google Antigravity (agy CLI) models for DeepSeek Harness — stream Gemini/Claude/GPT-OSS subscriptions into DSH with thinking, tool activity, token usage and in-GUI Google OAuth login.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,7 +42,7 @@
42
42
  "optional": true
43
43
  },
44
44
  "@deepseek-ai/dsh-client-locale": {
45
- "optional": true
45
+ "optional": false
46
46
  },
47
47
  "@deepseek-ai/dsh-commands": {
48
48
  "optional": true