You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Every hotclm notification reaches a zh-CN reader in English — the notify nodes use inline title/message, the one-language path, instead of a localized template #172
Filing gate: ① user-visible defect, reproduced on @objectstack 18.2.0 (the 18.2 upgrade pass, hotclm PR #155).
Symptom. Every notification hotclm's own flows send is English, whatever the reader's language: "Due in 7 days: 更新保险凭证 | This contract obligation is due on 2026-11-03. Record progress, or mark it done once it is performed", "Contract approved: … has cleared every approval rung", "Instalment 4 overdue: …", "In legal review over 30 days: …" (12 topics observed in sys_notification on a zh-CN demo).
Where. Every hotclm notify node writes inline title / message: src/flows/_daily-sweep.ts (the six daily sweeps), contract-approval.flow.ts (approved / rejected), expiration-sweep.flow.ts, renewal-notice.flow.ts and signature-record.flow.ts. The 18.2 spec says what that path is (io-node-config.zod.ts, title): "One text for every recipient (not localizable — use template for per-locale content)". The localizable path is template + templateData, resolved per recipient after fan-out from the recipient's sys_user.locale, else the deployment default (service-messaging/src/recipient-locale.ts, ruling #13881), against templates an app declares in defineStack({ emailTemplates }) as (name, locale) members.
So this is app-side. The platform already ships per-recipient localization (the platform's own approval notifications are keyed text, plugin-approvals/src/approval-notification-text.ts); hotclm does not use it.
Expected. Each hotclm notification has an en and a zh-CN template member, and a zh-CN reader receives 「7 天后到期:更新保险凭证」 and so on.
Measure first. Whether the inbox channel renders the template path for the in-app bell as well as email (the recipient-locale module names sys_notification_template on the topic path for the inbox). If the inbox cannot render a declared template, that half is a platform gap and goes to objectstack, cross-linked here.
Related, not this card. The platform's approval notifications also read English on the demo. They are keyed per recipient, so that is the deployment default locale (hotclm#142: demo:zh leaves the workspace locale at English) and accounts with no locale, not a platform defect.
Business reason. Reminders (overdue payments, obligations due, review SLA) are the app's whole proactive surface; a Chinese legal or finance team reads them all in English.
Reader. hotclm execution seat (PM seat #36). Touches every flow with a notify node; serialize after #156 (flows refusals).
Duplicate search. hotclm issues, all states, "notification English / notify template / locale": 0 hits; #142 related (workspace locale), open.
Activity