Skip to content

spec(field): retire the @deprecated CurrencyValueSchema (still exported at field.zod.ts:581) — ADR-0104 D1 says deleted; prerequisite of the multi-currency epic #8345 #27182

Closed

Description

@objectstack-fleet

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.

Ruling-ref: 6465431966

维护者速读

  • 改了什么: 删掉 field.zod.ts:581 仍导出的 CurrencyValueSchema 与 CurrencyValue 类型(L3062),tombstone 进 UNKNOWN_KEY_GUIDANCE。
  • 为什么改: ADR-0104 D1 裁定它「已删除」,18.2.0 里它还在;多币种开工前必须先清掉,否则 AI 作者会把它当成「记录币种」的形状。
  • 风险与回滚: 纯退役,零读者(ADR-0104 自述 never consumed);回滚 = 还原导出。
  • 先看: packages/spec/src/data/field.zod.ts:575–600。
  • 两分钟验证: git grep -n CurrencyValueSchema -- packages → 只剩 tombstone。
  • 需要您做的: 无。

Task

  • Delete the schema and the type; tombstone with the FROM → TO note (a currency value is a bare number).
  • The spec-property-retirement kit as applicable (liveness ledger line, baselines, pin test).
  • ADR-0104 currency paragraph: dated note that the deletion landed in PR #N.

Lane: spec · Size: XS · Review: default; spec seat. Clause-②: no (narrowing) · Metadata-protocol: narrowed (an export removed; no authorable key changes) · Skills-docs: none — REASON: no authoring surface.

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.

Activity

  1. objectstack-fleet commented on Oct 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 2 · 2026-10-28T11:11Z
    Session: session_01WGufzfhobWEgUUrjz4rrbh
    Account: os-support-ai
    Branch: claude/project-thread-g1qmlm (card thread session_01WGufziAkt9vZhLphG64TmD. The platform assigns the thread's branch and the thread can push only that one, so the branch is written as measured instead of claude/issue-27182-<slug>.)
    Worktree: objectstack-issue-27182
    Domain: domain:spec
    Seat: domain:spec#1
    File surface:

    • CurrencyValueSchema (packages/spec/src/data/field.zod.ts:581) and the CurrencyValue type (:3062) are deleted, along with their field.test.ts block, the Iso_ row in type-alias-convention.pin.test.ts and its census count.
    • A retired-defs/18.data__CurrencyValue.ts tombstone, following the ApiKeySchema and document-family precedent for an export with no carrier key. It carries an ADR-0087 D3 semantic entry 18.currency-value-schema-retired with the FROM { value, currency } TO bare number note.
    • A pin test data/currency-value-retirement.test.ts, registered in vitest.repo-tests.json.
    • Regenerated baselines and reference docs, which include the deliberate manifest and authorable-surface deletions.
    • The strictness-ledger row in docs/audits/2026-07-unknown-key-strictness-ledger.md is re-graded. The schema has no liveness ledger row because it was never walked.
    • A dated ADR-0104 currency note, which makes the PR Tier H.
    • A root .changeset.
      Container & model: M, mode:thread, model: TIER_DEFAULT, effort: high
      Clause-②: no (narrowing)
      Metadata-protocol: narrowed
      Responsibility: n/a. This card was filed under maintainer direction from ruling 6465431966.
      Thread-read: none
      Premise: held at origin/main fd73f2b3, measured by the dev. Neither name has a non-test reader in packages/, ui/ or skills/.
      Serial constraints cleared: yes, with one note. Seat 3's PR fix(spec)!: a fixed currency config needs its code — currencyConfig.defaultCurrency loses its CNY default #27218 (spec(field): fixed-mode currencyConfig with no defaultCurrency materialises 'CNY' — require the code, drop the default (narrowing; #27119 Q2 X, G3) #27157) narrows CurrencyConfigSchema in the same file, about 30 lines above, and touches liveness/field.json, conversions/registry.ts, migrations/registry.ts.template and the retired-key removal pin. Whichever PR lands second merges main and re-runs the generated files.
      Ruling-ref: 6465431966
  2. os-support-ai commented on Oct 28, 2026

    @os-support-ai
    Collaborator

    os-dev report — #27182 → draft PR #27233 (branch claude/project-thread-g1qmlm)

    {
      "issue": 27182,
      "status": "done",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/27233",
      "premise_still_valid": true,
      "summary": "Measured on main fd73f2b39: CurrencyValueSchema and CurrencyValue still exported with zero non-test readers. Deleted both. Route 3 (no carrier key): RETIRED_DEFS_BY_MAJOR[18] data/CurrencyValue + D3 semantic currency-value-schema-retired carrying the FROM {value, currency} -> bare number note. Manifest/authorable rows deleted deliberately; api-surface, export-origins, declaration-map, reference docs, strictness-ledger counts and skills reference indexes regenerated. Strictness-ledger field.zod.ts row re-graded; ADR-0104 dated note (Tier H). Iso_ census 798 -> 797. New tree-scoped pin data/currency-value-retirement.test.ts. Changeset: spec minor, Clause-②: no (narrowing), Metadata-protocol: narrowed, adr-0087: registered currency-value-schema-retired.",
      "tests": "spec --project local 22240 passed | 1 skipped | 1 todo; test:repo 82/82 files, 1331 tests; typecheck exit 0; check:generated 14/14 current.",
      "gates": "check:liveness, check:empty-state, check:exported-any, check:dual-source-exports exit 0; check:skill-examples exit 3 (prerequisite, NOT MEASURED); adr-0087 registration, changeset-no-major, spec-parsed-alias, cross-package-test-inputs, doc-authoring, role-word, skills-token-ratchet ok. dispatch-gates and the dogfood battery NOT run; CI pending.",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 29, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:spec seat 1 (#6017) · session session_01WGufzfhobWEgUUrjz4rrbh · 2026-10-29T01:56Z

    PR #27233 merged through the queue at b8f4acc2, Tier H, queued by os-zhuang's hand. b8f4acc2 is an ancestor of origin/main. On 22 of the 26 paths the PR touched, the merge tree matches the accepted head a4f0d909 byte for byte. On the other four (field.mdx, authorable-surface/data.json, field.zod.ts and vitest.repo-tests.json), the PR's net hunks from the merge-base 0cd578f7 are identical to b8f4acc2^1..b8f4acc2. The bytes differ only because other work landed on main in between.

    CurrencyValueSchema and the CurrencyValue type are retired from @objectstack/spec/data (ADR-0104 D1). The data/CurrencyValue def is registered in RETIRED_DEFS_BY_MAJOR[18], and the D3 entry currency-value-schema-retired carries the prescription. A currency field's value is the bare number.

    E2 is still open in the #27239 lane. ADR-0144 is not on main yet. When it lands, its field.zod.ts#CurrencyValueSchema / #CurrencyValue anchors must not survive, or check:adr-symbol-anchors goes red (note 6471998489 on #27239).

    The card closed through Fixes #27182, and this seat removes pm:dispatched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchdomain:specenhancementNew feature or requestpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions