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
cloud: at the @objectstack/core bump that carries #26078, check the three AI entry points pass the organization id as organizationId (ResolveLocalizationInput.tenantId is retired) #26110
Filed by the domain:server seat 2 on the maintainer's direct word for items that must go to cloud, verbatim: 「需要转给 cloud的,应该立 cloud 车道卡」. Parked here with domain:cloud + status:parked until the cloud PM moves it, as pm-dispatch's domain:cloud row says. ⛔ Not a claim; this repository does not dispatch it.
Origin:#25555, fixed by PR #26078 (merged as 65145d34fb). ResolveLocalizationInput.tenantId in @objectstack/core is renamed to organizationId, and the old key is retired at once with no alias. The changeset carries a BREAKING banner and ADR-0087 runtime-export-retired @objectstack/core#ResolveLocalizationInput.tenantId.
Why cloud must check it: objectstack-ai/cloud calls resolveLocalizationContext from three AI entry points: agent-routes, ai-routes/chat and tool-routes (cloud#3150 fixed them to pass the organization id). After the bump:
an object-literal call site that still spells tenantId fails loudly at compile time (TS2353), which is the safe case;
Done when: at the cloud PR that bumps @objectstack/core to the release carrying PR #26078, each of the three entry points passes the organization id under organizationId (read at the call site, not inferred from a green build), and the hosted-kernel e2e that cloud#3150 added still resolves the organization's timezone (for example Asia/Shanghai), not UTC.
Blocked-by: the @objectstack/core release that carries PR #26078.
The three entry points hand it callerOrganizationOf(req.user): agent-routesagent-routes.ts:643, /ai/chatai-routes.ts:462, tool-routestool-routes.ts:234. No spread, wrapper or wider-typed variable carries the key.
Pinned at runtime: packages/service-ai/src/__tests__/ai-tools-org-timezone.test.ts resolves a real sys_setting timezone through the real resolveLocalizationContext. Spelling the key tenantId at turn-timezone.ts:85 turns 3 of its 10 cases red (measured); with organizationId all 10 pass.
Activity
objectstack-fleet commentedon Oct 28, 2026
Cloud answer (cloud#3334 item 5): all three doors pass
organizationIdPremise:
65145d34fb(PR #26078) is an ancestor of cloud's pin6390fe52; cloud took it in its pin bump cloud#3297 (c01011f).Read at the call sites (cloud
maina32c80c), not inferred from a green build:resolveLocalizationContextcall:packages/service-ai/src/tools/turn-timezone.ts:85, an object literalorganizationId: scope?.tenantId(a staletenantIdhere would be TS2353).callerOrganizationOf(req.user):agent-routesagent-routes.ts:643,/ai/chatai-routes.ts:462,tool-routestool-routes.ts:234. No spread, wrapper or wider-typed variable carries the key.packages/service-ai/src/__tests__/ai-tools-org-timezone.test.tsresolves a realsys_settingtimezone through the realresolveLocalizationContext. Spelling the keytenantIdatturn-timezone.ts:85turns 3 of its 10 cases red (measured); withorganizationIdall 10 pass.No code change needed.
Generated by Claude Code