Skip to content

An object extension's format and json_schema validation rules skip the regex and JSON-schema checks the object's own rules get #33217

Open

Description

@objectstack-fleet

domain:spec#2 · os-tesla · session_01L9qibvfX5bawZKtfa6u7j9

Filing gate: ③ a follow-up the #33154 implementer reported out of scope and its contract review confirmed by reading (record 6870963898 ③ on PR #33205).
Business reason: after #33154 an extension's expression-bearing validation rules are judged like the object's own, but a format rule's regex and a json_schema rule's schema carried by an extension are still not checked at os build or the publish door. An invalid pattern or schema is accepted in Studio and fails only when an end user saves a record.
Reader who acts: the owner of the regex and JSON-schema validation-rule checks in packages/lint.

维护者速读

对象扩展里 format(正则)和 json_schema 类型的校验规则,在发布门和 os build 都不检查正则或 schema 是否合法;对象自身的同类规则会检查。写错要到最终用户保存记录时才暴露。

Expected

The regex and JSON-schema checks reach the validations an extension carries, with the same rule ids and locators the object's own rules get.

Dedupe

repo:objectstack-ai/objectstack is:issue is:open extension format json_schema validation checked at filing. Related: #33154.

⛔ Not a claim. Grading is triage's.

Activity

  1. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first touch → domain:spec · p2 · pm:queue · 2026-11-14T04:51Z

    ⛔ Not a claim.

  2. added
    domain:specDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  3. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#2 · sunhaolin · session_017xRBcSbLCxEmyHf9upz3pz

    Blocked-by: #33205

    Serial behind #33154's PR #33205 (draft at 9d07ffa069, contract review claimed 6878678135). That PR adds the extension walk this card extends: it changes packages/lint/src/validate-expressions.ts and authoring-rules.ts, and this card's fix reads the extension's rules through that walk. Fold-or-serial: serial, not folded. #33205 is past implementation and in review, so folding would move its reviewed head. #33216 and #33217 can then share one PR, as triage suggested (6871985110, 6871996425). Back to pm:queue when #33205 merges. ⛔ Not a claim.

  4. added
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  5. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#2 · sunhaolin · session_017xRBcSbLCxEmyHf9upz3pz

    Unblocked · 2026-11-14T15:59Z

    The Blocked-by: #33205 target merged at 2026-11-14T15:57Z (27d042f4e5). Re-derived: no other open blocker. Back to pm:queue, unclaimed. This seat is winding down on the maintainer's 「当前任务处理完,合并后下班」 and does not take it. Order for the next spec seat: #33216 and #33217 together in one PR (the same extension walk, as triage suggested), and #33246 on its own. All three touch packages/lint/src/validate-expressions.ts, so run them serially or resolve the conflict at landing. ⛔ Not a claim.

  6. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 14, 2026
  7. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    Claim: PM loop round 1 · 2026-11-14T16:44Z
    Session: session_01FEkQ5mswnWm181XgYcCUag (seat); card thread session_01FEkQ5ny58hH1bcw97uPpgu is the dev
    Account: os-project-manager
    Branch: claude/project-thread-0m40gx (the card thread's designated branch; family dispatch of #33216 + #33217 on one PR, member; chain head #33216)
    Worktree: objectstack-issue-33216
    Domain: domain:spec
    Seat: domain:spec#1
    File surface: packages/lint/src/validate-expressions.ts (hop-index / served-fold region only; ⛔ not buildNullableFieldIndex or the extensionWrite strip, which are #33246's), packages/lint/src/validate-rule-schema-formats.ts, validate-rule-compilability.ts, authoring-rules.ts only if a rule's scope must widen, their tests; packages/runtime/src/domains/meta-object-extension-item.test.ts; root .changeset/ (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: default tier (narrowing built at the judgment tier; contract review at CONTRACT_REVIEW_TIER before enqueue, MANDATORY path: narrowing face), effort: high
    Clause-②: no (narrowing)
    Metadata-protocol: narrowed
    Responsibility: packages/lint (objectstack): the extension walk #33205 added does not route an extension's rules and added lookups through the hop and regex/JSON-schema checks | the object's own rules already take those checks, the path to extend | any author publishing an object extension; end users then fail every save
    Thread-read: 6880225651
    Premise: holds at origin/main 87330e89: refuseUndeclaredHopField / storedMetadataBodyReferencesFor (validate-expressions.ts ~:2402, ~:2463) iterate the declared objects; PR #33205 merged 2026-11-14T15:57Z, unblocking both cards. Fold gates ①–⑤ answered in the order: /mnt/project-files/pm-orders/spec/order-33216.md (project share); #33246 runs serially after this PR, #33153 and #33101 excluded.
    Serial constraints cleared: PR #33321 (server area A2) edits packages/lint/src/authoring-rules.ts, and PR #33300 (area A5) edits meta-object-extension-item.test.ts; this card touches the first only if a rule's scope must widen, and adds door pins to the second, so it merges main once after whichever lands first. No open PR touches validate-expressions.ts, validate-rule-schema-formats.ts or validate-rule-compilability.ts.

  8. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  9. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    File surface amended for this member: see the chain head #33216 (two semantic ledger entries, @objectstack/spec in the changeset). The 18.object-extension-validation-rule-artifacts-judged.ts entry is this card's commit.

  10. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#1 · os-project-manager · session_01FEkQ5mswnWm181XgYcCUag

    File surface amended (claim 6880893838 on #33217) · 2026-11-14T17:06Z

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

Metadata

Metadata

Labels

domain:specDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions