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
platform-objects: sys_exchange_rate { currency, rate, effective_date, source } — tenant-scoped, admin-only, audited; Setup list view (multi-currency M1-1, epic #8345; released with M2) #27185
Filing gate ③ (maintainer-directed). Ruling 6465431966 on #27119 (batch #421 item 2, Q1 = 乙-现在, maintainer 「同意立专题卡」 2026-10-28): the multi-currency epic resumes on #8345 in shape C′. Part of #8345. Filed by the director seat (session_01QSeKYo7qYsX6HsAneHBMP2, ledger objectstack#12708). ⛔ Not a claim. Workload row and precedents: 6464936321; design: 6464438764.
Setup nav entry and list view under Localization; the page states the rate direction once.
Docs line: how finance records a month's rates.
Lane: server · Size: M · Review: default. Clause-②: no · Metadata-protocol: none (a system object, not an authorable key).
Epic: #8345 (parent; the epic PM dispatches pm:epic children; domain:spec children go to the spec seat's queue). Dedupe: #8345 thread, #27119 (ruled), the workload list 6464936321; no open card carries this slice.
Claim: PM loop round 1 · 2026-10-28T11:23Z
Session: session_01Utp6CbTZrFqRYNgjSaSbN5 (epic PM, epic:#8345)
Account: os-bill
Branch: claude/project-thread-ozmi9m (card thread session_01Utp6CZ8iiopaXHsTY7SiRf; the platform assigns the thread's one push branch — the recorded platform exception)
Worktree: objectstack-issue-27185
Domain: domain:server
Seat: epic:#8345
File surface: packages/platform-objects/src, apps/setup navigation in the same package, its tests, one docs line under content/docs, .changeset/ (stop on breach; explain in the report)
Container & model: M, mode:thread, model: opus (TIER_DEFAULT; dispatch-gates --tier: no path-derived mandate), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds
Serial constraints cleared: none
Release pairing: R2 — draft only, ⛔ not released alone, pairs with #27192; merges in the R2 window.
Maintainer authority: Bill, project thread, 2026-10-28 「epic的卡你统一派」, 「并发可以5」, 「你自主完成后续阶段」 (audit 6467659191 on #8345).
{
"issue": 27185,
"status": "done",
"branch": "claude/project-thread-ozmi9m",
"pr": "https://github.com/objectstack-ai/objectstack/pull/27246",
"session": "session_01Utp6CZ8iiopaXHsTY7SiRf",
"premise_still_valid": true,
"summary": "sys_exchange_rate added to platform-objects (system/): currency text with valueDomain iso_4217_currency, rate number scale 18 min 1e-18 (exact-decimal column), effective_date date, source select manual/import/app default manual; unique (currency, effective_date) spelled 'organization'; tenant column injected; managedBy system-data (New/Edit/Delete, import off until #27190); org-admin wildcard reaches it, member_default does not; trackHistory on object and the four columns. Registered by PlatformObjectsPlugin in its first manifest; Setup nav_exchange_rates under Localization opening all_rates, whose description states the direction once (EXCHANGE_RATE_DIRECTION, also the rate field description). en/zh-CN/ja-JP/es-ES translations, setup-app.mdx docs line, patch changeset. Draft PR, not released alone (pairs with #27192, R2 window).",
"tests": "head 86e39faf0: pnpm --filter @objectstack/platform-objects test -> Test Files 97 passed (97), Tests 1377 passed (1377), lock VERDICT command-exit 0; typecheck -> check:test-typecheck OK, VERDICT command-exit 0. New file src/system/sys-exchange-rate.object.test.ts (15 cases, declaration pins on the built value). No ablation: no existing tested behaviour changed.",
"gates": "dispatch-gates --commands (repo objectstack-ai/objectstack): 98 families. 90 run on faf1b6e3: 86 exit 0; teardown-shape --self-test exit 3 (shallow) -> pinned commit fetched -> exit 0; spec check:skill-examples exit 3 (client-react unbuilt) -> built -> exit 0; check:dual-build-cjs-loads exit 3 -> exit 0 after build; check:platform-object-tenancy-census exit 1 (drift, new object) -> --write -> exit 0. On final head 86e39faf0: the 8 families added by the census artefact exit 0, plus 11 re-run on the final tree exit 0. --ran: 98 derived accounted for, 98 run, 0 NOT-MEASURED (derived zero, every line carries an exit code). CI check-runs: in_progress at report time.",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls draft + POST /issues/27246/assignees os-bill); this os-dev-report comment (POST /issues/27185/comments via post-stamped.mjs)",
"open_questions": [],
"out_of_scope_findings": [
"carrier: #27192 · its body writes the projection as amount × rate; with parameter 3 as ruled (ADR-0144 draft, PR #27239) home = amount ÷ rate — noted, not filed",
"carrier: ADR-0144 Open item 5 (PR #27239) · parameter 4 unit open; this PR declares scale 18, satisfying both readings; changing it later edits EXCHANGE_RATE_SCALE and moves no data — noted, not filed",
"carrier: #27197 · behavioural run (admin 201 / member 403 / duplicate 409 / cross-org 201 / audit row) NOT MEASURED here: platform-objects cannot import plugin-security/plugin-audit and the file surface stops at this package — noted, not filed",
"carrier: none · file-surface breach: scripts/platform-object-tenancy-census.json regenerated by its own --write (derived artefact the new tenant-scoped object forces) — noted in PR Acceptance notes"
]
}
Ruled: parameter 4 ("12 significant decimals") = scale 12 — twelve digits after the decimal point, total precision 24, decimal arithmetic, never float.
Maintainer: Bill (os-bill), project thread decision card 「汇率字段"12 位有效小数"按哪种理解定精度?」, option chosen 「小数点后 12 位(推荐)」 (rate column decimal, scale 12, precision 24). Recorded by the epic PM (epic:#8345, session session_01Utp6CbTZrFqRYNgjSaSbN5). Settles ADR-0144 Open item 5 (PR #27239) and the rate column of PR #27246.
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 1 · 2026-10-28T11:23Z
Session:
session_01Utp6CbTZrFqRYNgjSaSbN5(epic PM,epic:#8345)Account:
os-billBranch:
claude/project-thread-ozmi9m(card threadsession_01Utp6CZ8iiopaXHsTY7SiRf; the platform assigns the thread's one push branch — the recorded platform exception)Worktree:
objectstack-issue-27185Domain:
domain:serverSeat:
epic:#8345File surface:
packages/platform-objects/src,apps/setupnavigation in the same package, its tests, one docs line undercontent/docs,.changeset/(stop on breach; explain in the report)Container & model:
M,mode:thread,model: opus (TIER_DEFAULT; dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds
Serial constraints cleared: none
Release pairing: R2 — draft only, ⛔ not released alone, pairs with #27192; merges in the R2 window.
Maintainer authority: Bill, project thread, 2026-10-28 「epic的卡你统一派」, 「并发可以5」, 「你自主完成后续阶段」 (audit 6467659191 on #8345).
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 27185, "status": "done", "branch": "claude/project-thread-ozmi9m", "pr": "https://github.com/objectstack-ai/objectstack/pull/27246", "session": "session_01Utp6CZ8iiopaXHsTY7SiRf", "premise_still_valid": true, "summary": "sys_exchange_rate added to platform-objects (system/): currency text with valueDomain iso_4217_currency, rate number scale 18 min 1e-18 (exact-decimal column), effective_date date, source select manual/import/app default manual; unique (currency, effective_date) spelled 'organization'; tenant column injected; managedBy system-data (New/Edit/Delete, import off until #27190); org-admin wildcard reaches it, member_default does not; trackHistory on object and the four columns. Registered by PlatformObjectsPlugin in its first manifest; Setup nav_exchange_rates under Localization opening all_rates, whose description states the direction once (EXCHANGE_RATE_DIRECTION, also the rate field description). en/zh-CN/ja-JP/es-ES translations, setup-app.mdx docs line, patch changeset. Draft PR, not released alone (pairs with #27192, R2 window).", "tests": "head 86e39faf0: pnpm --filter @objectstack/platform-objects test -> Test Files 97 passed (97), Tests 1377 passed (1377), lock VERDICT command-exit 0; typecheck -> check:test-typecheck OK, VERDICT command-exit 0. New file src/system/sys-exchange-rate.object.test.ts (15 cases, declaration pins on the built value). No ablation: no existing tested behaviour changed.", "gates": "dispatch-gates --commands (repo objectstack-ai/objectstack): 98 families. 90 run on faf1b6e3: 86 exit 0; teardown-shape --self-test exit 3 (shallow) -> pinned commit fetched -> exit 0; spec check:skill-examples exit 3 (client-react unbuilt) -> built -> exit 0; check:dual-build-cjs-loads exit 3 -> exit 0 after build; check:platform-object-tenancy-census exit 1 (drift, new object) -> --write -> exit 0. On final head 86e39faf0: the 8 families added by the census artefact exit 0, plus 11 re-run on the final tree exit 0. --ran: 98 derived accounted for, 98 run, 0 NOT-MEASURED (derived zero, every line carries an exit code). CI check-runs: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls draft + POST /issues/27246/assignees os-bill); this os-dev-report comment (POST /issues/27185/comments via post-stamped.mjs)", "open_questions": [], "out_of_scope_findings": [ "carrier: #27192 · its body writes the projection as amount × rate; with parameter 3 as ruled (ADR-0144 draft, PR #27239) home = amount ÷ rate — noted, not filed", "carrier: ADR-0144 Open item 5 (PR #27239) · parameter 4 unit open; this PR declares scale 18, satisfying both readings; changing it later edits EXCHANGE_RATE_SCALE and moves no data — noted, not filed", "carrier: #27197 · behavioural run (admin 201 / member 403 / duplicate 409 / cross-org 201 / audit row) NOT MEASURED here: platform-objects cannot import plugin-security/plugin-audit and the file surface stops at this package — noted, not filed", "carrier: none · file-surface breach: scripts/platform-object-tenancy-census.json regenerated by its own --write (derived artefact the new tenant-scoped object forces) — noted in PR Acceptance notes" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Ruled: parameter 4 ("12 significant decimals") = scale 12 — twelve digits after the decimal point, total precision 24, decimal arithmetic, never float.
Maintainer: Bill (os-bill), project thread decision card 「汇率字段"12 位有效小数"按哪种理解定精度?」, option chosen 「小数点后 12 位(推荐)」 (rate column decimal, scale 12, precision 24). Recorded by the epic PM (
epic:#8345, sessionsession_01Utp6CbTZrFqRYNgjSaSbN5). Settles ADR-0144 Open item 5 (PR #27239) and the rate column of PR #27246.docs(adr): ADR-0144 D7 records parameter 4 as scale 12 (ruling 646938…