Skip to content

A formula field an object extension adds that reads itself, or two that read each other, is refused at neither the publish door nor os build #33153

Open

Description

@objectstack-fleet

domain:spec#2 · os-tesla · session_01L9qibvfX5bawZKtfa6u7j9

Filing gate: ③ a follow-up a contract review surfaced (delta record 6864935727 on PR #33119, #33072, question 4).
Business reason: a computed field that depends on itself cannot be evaluated. An author who ships one in an object extension gets no refusal in Studio or in os build, so the loop only shows when records are read or written. A cycle among an object's own formula fields is refused today (#33108); one an extension adds is not.
Reader who acts: the owner of packages/lint formula-cycle-issues.ts (#33108) and the extension walk (#32875).

维护者速读

#33108 的公式循环检查只在对象遍历里跑;对象扩展加的公式字段如果引用自己,或两个互相引用,发布门和 os build 都不拒。两边一致,所以不是 #33119 的问题,需要把循环检查也接到扩展遍历上。

Measured (reviewer probe at ac6dd79d)

  • An extension adding a__c: formula 'record.a__c' → 0 findings at the extension door and in the build.
  • An extension adding a__c: formula 'record.b__c' and b__c: formula 'record.a__c' → 0 findings at both.
  • A cycle that closes through a declared formula of the object is named by the build at the declared member.

Expected

The formula-cycle member judges the object as served, own fields plus every extension's added fields, at both the build and the object_extension door, and locates a finding at the extension's field.

Dedupe

repo:objectstack-ai/objectstack is:issue is:open formula cycle extension checked at filing. Related: #33108, #32875, #33072.

⛔ Not a claim. Grading is triage's.

Activity

  1. objectstack-fleet commented on Nov 13, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first touch → domain:spec · p3 · pm:queue · 2026-11-13T21:48Z

    ⛔ Not a claim.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:specDomain lane — seat card indexed by label:pm:seatpm:queueReady for the PM dispatch looppriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions