@burdenoff/fe-libs 2026.905.3 → 2026.905.4

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.
@@ -3,9 +3,23 @@ import { ReactNode } from 'react';
3
3
  * Assistant copy, namespaced by product.
4
4
  *
5
5
  * The assistant UI is shared but its translations are not: every product seeds
6
- * its own keys, and HealthyBowl already has hundreds of `healthybowl.assistant.*`
7
- * keys live in production. So a shared component cannot hardcode a key prefix
8
- * it must ask for a RELATIVE key and let the product decide the namespace.
6
+ * its own keys under its own namespace. So a shared component cannot hardcode a
7
+ * key prefix it must ask for a RELATIVE key and let the product decide the
8
+ * namespace.
9
+ *
10
+ * ★★ HealthyBowl's 96 `healthybowl.assistant.*` keys carry 571 published
11
+ * translations across en/zh/hi/es/ar/ta as of 2026-09-05. Before that date the
12
+ * KEYS existed but every one was `status: DEPRECATED`, and the i18n service's
13
+ * `exportTranslations` — which is what the app actually fetches — silently omits
14
+ * deprecated keys. So the assistant rendered English in every locale while the
15
+ * keys looked present, translations reported `successCount` on write, and the
16
+ * rows were genuinely `PUBLISHED`. Publishing a translation is NOT enough; the
17
+ * key must also be ACTIVE.
18
+ *
19
+ * ★ If a product's copy is unexpectedly English, check
20
+ * `translationKeyByKey(productId, key) { status }` BEFORE assuming the keys were
21
+ * never seeded. The export alone cannot distinguish "absent" from "deprecated",
22
+ * and that ambiguity produced two wrong diagnoses here.
9
23
  *
10
24
  * ★★ The shape below is chosen to be byte-compatible with what HealthyBowl
11
25
  * already ships. `assistantTranslationKey('healthybowl', 'header.title')` is
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpD;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,2CAa5B;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAEzD;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAAM,CAAC;AAIZ;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,IAAI,WAAW,CA4B5C"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,2CAa5B;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAEzD;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAAM,CAAC;AAIZ;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,IAAI,WAAW,CA4B5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.905.3",
3
+ "version": "2026.905.4",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {