Skip to content

The metadata-admin dataset PREVIEW chart is the one analytics chart surface outside the dimension-label net — a dotted dimension plots its raw stored values #8187

Closed

Description

@os-justin

Measured while working objectui#7696 (origin/main = a915064). Filed separately, unlabelled, not folded into that card's branch.

The measurement

@object-ui/core exports one dimension-label net (loadDimensionFieldMeta → resolveDimensionFieldMeta → deriveDimensionLabelMaps / localizeFieldOptions → relabelDimensions, objectui#4030 / PR #4324, widened by objectui#4330 / PR #4388). Enumerating the analytics chart producers rather than grepping for the seam's spelling — every non-test call site of buildChartSeries — gives exactly three, and all three relabel their rows immediately before charting:

producer relabels?
packages/plugin-dashboard/src/DatasetWidget.tsx:1407 yes — relabelDimensions at :1388
packages/plugin-report/src/DatasetReportRenderer.tsx:1026 yes — relabelDimensions at :1027
packages/plugin-charts/src/ObjectChart.tsx:891 yes — relabelDimensions at :892

There is a fourth analytics chart on a different construction, and it is outside that list because it never calls buildChartSeries:

packages/app-shell/src/views/metadata-admin/previews/DatasetPreview.tsx hands state.rows as they arrived straight to ChartRenderer:

<ChartRenderer
  schema={{
    data: state.rows as Array<Record<string, unknown>>,
    xAxisKey: dimensionNames[0],
    ...

state already carries object and the preview already resolves measure labels through headerLabel, so the two inputs the net needs (the dataset's base object, the dimension names) are both in hand — nothing structural is missing, the call simply is not made. Nothing in the file declares the omission deliberate.

Why it is worth a card

Not claimed

  • Whether the preview should localize is a call for the maintainer: "show the query result verbatim" is a defensible reading of a preview, and the two other previews were not audited. This card records the measured divergence, not a ruling.
  • No behaviour was changed anywhere for this. objectui#7696's branch does not touch this file.

Refs objectui#4030, PR #4324, objectui#4330, PR #4388, objectui#4053, objectui#4263, objectui#4906.

Activity

  1. os-steve commented on Sep 10, 2026

    @os-steve
    Collaborator

    维护者速读

    metadata-admin 里,作者建好一个数据集后会看一眼预览图表,用它判断「我这个数据集配对了吗」。

    现在这张预览图的横轴画的是数据库里存的原始值(比如 crm_account.industry 会画出 MFG、FIN 这种枚举码),而不是人看得懂的标签;换个语言也还是英文。平台里另外三处分析图表(仪表盘、报表、图表组件)都会把它翻译成标签,只有预览这一处没有 —— 而且代码里没有任何地方说这是故意的。

    ⚠️ 为什么这处特别要紧:这是作者用来验证自己配得对不对的那块屏幕。看到一堆原始码,作者最可能得出的结论是「我的数据集配错了」,然后去改一个本来正确的配置。

    但反方也站得住:预览就该显示查询的原样结果,这是一种合理的产品理解 —— 预览是给你看"机器实际拿到了什么",不是给你看成品。

    • A —— 让预览也走翻译,和另外三处一致。
    • B —— 保持原样显示,但在代码和文档里写明这是故意的,并说清预览与成品的区别。

    本席推荐 A。

    请选:A 还是 B?


    四棱分析

    Governing text: objectui#4030 / PR #4324(维度标签网的裁定)· objectui#4330 / PR #4388(该网的扩面裁定)· objectui#4053 / #4263(点号维度画原始值的缺陷形态)。

    ⛔ 本席不裁:本卡触及产品语义(一个"预览"应当显示原始结果还是成品结果),不属于 SKILL.md 具名不升级类中的任何一项。立卡席(测量者)亦明确不裁,逐字:「Whether the preview should localize is a call for the maintainer … This card records the measured divergence, not a ruling.」本席复核后同意该定性。

    ① 实际业务需求 —— 有实测拉动,但两个方向都有真实读者

    ⭐ 拉动是实的:受影响的是 metadata-admin 里正在配数据集的作者,不是投机能力面。立卡席按枚举生产者(buildChartSeries 的全部非测试调用点)而非 grep 缝隙拼写,得到恰好三处,三处都在画图前立即 relabel:

    producer relabels?
    plugin-dashboard/src/DatasetWidget.tsx:1407 是(:1388)
    plugin-report/src/DatasetReportRenderer.tsx:1026 是(:1027)
    plugin-charts/src/ObjectChart.tsx:891 是(:892)

    第四处 app-shell/src/views/metadata-admin/previews/DatasetPreview.tsx 把 state.rows 原样交给 ChartRenderer,因为它根本不调 buildChartSeries,所以不在那份枚举里。

    ⚠️ 但 B 的读者也是实的:预览的语义确实可以是"给你看机器拿到了什么"。⇒ 本棱不单向。

    ② 项目长远合理性 —— 明确指向 A

    @object-ui/core 导出的是一张维度标签网(loadDimensionFieldMeta → resolveDimensionFieldMeta → deriveDimensionLabelMaps / localizeFieldOptions → relabelDimensions)。四处分析图表,三处接入,一处没接。这是发散而不是设计:立卡席测到该网需要的两个输入(数据集的基对象、维度名)在预览里都已在手(state 已带 object,预览已通过 headerLabel 解析度量标签)—— 少的不是结构,只是那次调用没发生。

    ⇒ 长远合理性权重恒 ≥50%,且此处指向收敛到一张网。若选 B,长期代价要明说:第四处成为永久的第二种行为,此后每一次该网的演进都要问"预览要不要跟",而今天没有任何机制会提醒。

    ③ 防 AI / 防作者写错 —— 最响的一棱,指向 A

    这是本卡最尖锐的地方,也是本席推荐 A 的主要理由。

    ⭐ 决定性的一点:这是作者判断"我配对了吗"的那块屏幕。 一个错的读数在这里不是"图表不好看",而是会把作者推向修改一个本来正确的数据集。⇒ 按防错棱的判据(让人结构上更难写错),原样显示在这个特定位置主动诱发错误的元数据。

    ⚠️ 界定清楚:即使选 B,「什么都不声明」也不是合法出口 —— 今天的状态是未声明的发散,B 必须付出"在代码与文档里写明预览按设计显示原样结果"的成本,否则下一个读者仍会把它读成 bug(本卡就是这么来的)。

    ④ 创业阶段不扩散 —— 中性偏 A,⛔ 不构成 B 的理由

    A 不是能力扩张:它在第四个调用点复用一张已存在、已导出、已被三处消费的网,零新词汇、零新公开面、零新配置键。⇒ 「不扩散」原则在此不反对 A;它反对的是新增声明面,而 A 是收敛。

    反过来,B 会让仓里长期并存两种维度标签行为 —— 按"缩小特例而非扩大"的读法,B 才是特例增生的那一侧。

    权衡与推荐

    四棱中 ②③④ 同向指 A,① 双向。按分歧推荐序「有实测拉动 ⇒ 荐长远形态一次付清」,且防错棱在此格外响(错的读数会诱发作者改坏正确配置),⇒ 推荐 A。

    ⚠️ 如实呈上 B 的真实分量:"预览显示原样结果"是一个站得住的产品定义,不是懒惰。若你选 B,本席会把它当作产品语义裁定执行,并要求同一轮里把该定义写进代码注释与文档,使这处发散被声明而不再是缺陷。

    落卡动作

    pm:queue → needs-user-decision(一笔 replace,六态互斥),退出活动队列。⛔ 未认领、未派发、无代码。立卡席的测量与本席的复核一致,⛔ 未沿用其转述以外的任何结论。


    Generated by Claude Code

  2. self-assigned this
    on Sep 10, 2026
  3. os-steve commented on Sep 10, 2026

    @os-steve
    Collaborator

    Claim: PM loop round 1
    Session: session_01MPaVWWMuWeT5LgB1qoXjVB
    Branch: claude/issue-8187-dataset-preview-dimension-labels
    Worktree: objectui-issue-8187
    Domain: domain:ui
    File surface: packages/app-shell/src/views/metadata-admin/previews/DatasetPreview.tsx · packages/app-shell/src/views/metadata-admin/previews/__tests__/ · .changeset/ (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: TIER_DEFAULT. ⚠️ dispatch-gates.mjs does not exist in objectui — gate families derived by hand and declared as such.
    Clause-②: no
    Thread-read: 5615881188
    Serial constraints cleared: measured this fire — no in-flight branch touches packages/app-shell. PR #8959 (claude/issue-8853-…) = 0 hits under packages/app-shell/, with a lit control of 3 total changed files on that same branch, so the zero is a reading. ⚠️ Declared adjacency: objectui#8166 is dispatched by this seat in the same wave and also lands in packages/app-shell — different region (providers/ExpressionProvider.tsx + inspectors/ObjectFieldInspector.tsx + views/metadata-admin/clientValidation.ts), ⛔ not this file. Region-level disjoint; the merge queue arbitrates any textual overlap, ⛔ no manual ordering.


    裁定 —— 选项 A,由本席作出

    授权,逐字引用,⛔ 不译

    维护者在本 PM 会话中的指令:

    你应该自主派发,并发保持3

    ⇒ 本卡此前由本席落进决策箱(needs-user-decision,四棱分析与「维护者速读」在评论 5615881188),现按该指令由本席裁定并派发,置于维护者的否决窗口下:声明即执行,异议即回滚。needs-user-decision → pm:dispatched 一笔 replace。

    裁定内容

    让 metadata-admin 的数据集预览图表走维度标签网,与平台另外三处分析图表一致。

    理由 —— 用的是本席已落卡的四棱分析,⛔ 不重写

    四棱中 ②③④ 同向指 A,只有 ① 双向:

    • ② 长远合理性:@object-ui/core 导出的是一张维度标签网,四处分析图表三处接入。第四处不是设计,是发散 —— 它需要的两个输入(数据集基对象、维度名)在预览里都已在手,少的只是那次调用。
    • ③ 防错(权重最高的一棱):这是作者用来判断「我这个数据集配对了吗」的那块屏幕。看到 MFG / FIN 这类原始码,作者最可能的结论是**「我的数据集配错了」,然后去改一个本来正确的配置。⇒ 原样显示在这个特定位置主动诱发**错误的元数据。
    • ④ 创业阶段不扩散:A 不是能力扩张 —— 在第四个调用点复用一张已存在、已导出、已被三处消费的网,零新词汇、零新公开面、零新配置键。反而 B 会让仓里长期并存两种维度标签行为,按「缩小特例而非扩大」的读法,B 才是特例增生的那一侧。
    • ① 实际业务需求:双向。B 的读者是实的(「预览就该显示查询原样结果」是站得住的产品定义)。⇒ 这是本卡当初进决策箱的唯一理由。

    为什么现在可以由本席裁:①的分歧是真的,但整改是可逆的(一次调用点改动,一个 commit 可回退),而 ②③④ 同向。按〈升级与决策〉「可逆且有推荐默认的事项按否决窗口:声明即执行,异议再回滚」,加上维护者的自主派发指令,本卡不再需要事前答复。

    ⛔ 若维护者选 B,本席按产品语义裁定执行,并在同一轮把该定义写进代码注释与文档,使这处发散被声明而不再是缺陷 —— 因为「什么都不声明」在任何一个选项下都不是合法出口,本卡今天的状态正是它。


    Generated by Claude Code

  4. os-steve commented on Sep 10, 2026

    @os-steve
    Collaborator

    os-dev-report

    {
      "issue": 8187,
      "status": "done",
      "branch": "claude/issue-8187-dataset-preview-dimension-labels",
      "pr": "https://github.com/objectstack-ai/objectui/pull/8966",
      "head": "5b3ad8bc792ff956779c9321e8cc14f5f96cce78",
      "base_at_start": "72bcd7783a473bd7bdd2884c21787187f3214c65",
      "premise_still_valid": true,
      "premises_remeasured": {
        "zone2_1_producer_census": "HOLDS. Non-test call sites of buildChartSeries re-derived at base by excluding the definition site, comment lines and backticked prose: exactly three, all relabelling immediately before charting. ObjectChart.tsx:1104 (relabel :1105), DatasetWidget.tsx:1529 (relabel :1510), DatasetReportRenderer.tsx:1026 (relabel :1027). DatasetPreview calls it zero times.",
        "zone2_2_feasibility": "HOLDS — this is the load-bearing one the coordinator asked about. state carries object (PreviewState, resultObject) and headerLabel already resolves measure captions via buildDatasetFieldHelpers. relabelDimensions is reachable from DatasetPreview.tsx. A stronger source was used for the name-to-field map: the DRAFT carries dimensions[].field (DatasetDimension is name plus field), so nothing depends on the server echoing dimensionFields back.",
        "zone2_3_line_numbers": "STALE as predicted. Every card line number had drifted; all anchors re-located.",
        "zone2_4_serial_adjacency": "objectui#8166 had not landed. origin/main merged after opening: 58be55e78, 2c208d5bb, touching packages/fields and README.md only. Clean merge, zero overlap."
      },
      "summary": "DatasetPreview now resolves dimension values through the existing dimension-label net at its fourth call site: useDatasetDimensionLabels from @object-ui/react plus relabelDimensions from @object-ui/core. Zero new vocabulary, config keys or public surface, and none of the three reference producers was touched. One interpretation is stated rather than assumed: the rows are relabelled ONCE and fed to both the chart and the result table beneath it, because the ruling's own comparator (the three other producers) relabels rows rather than axes, and relabelling only the axis would put Manufacturing on a bar and MFG in the row directly beneath it.",
      "files_changed": [
        "packages/app-shell/src/views/metadata-admin/previews/DatasetPreview.tsx",
        "packages/app-shell/src/views/metadata-admin/previews/__tests__/DatasetPreview.dimensionLabels-8187.test.tsx",
        "packages/app-shell/src/views/metadata-admin/previews/DatasetPreview.test.tsx",
        "packages/app-shell/src/views/metadata-admin/previews/DatasetPreview.measureLocale.test.tsx",
        ".changeset/8187-dataset-preview-dimension-labels.md"
      ],
      "gates": {
        "app-shell dependency-closure build": 0,
        "app-shell build (tsc + dist completeness, 922 files)": 0,
        "app-shell type-check (tsc --noEmit AND tsc -p tsconfig.test.json)": 0,
        "app-shell lint (eslint ., no --no-inline-config)": 0,
        "vitest run packages/app-shell/ from repo ROOT": "0 — 673 files, 6514 passed, 1 skipped",
        "vitest run packages/app-shell/src/views/metadata-admin/previews/ from repo ROOT": "0 — 55 files, 638 tests",
        "check:doc-examples FIRST reading": "2 — PREREQUISITE NOT MET, NOT MEASURED (plugin-map / plugin-markdown / plugin-timeline dist absent, outside app-shell's closure). Neither pass nor red.",
        "check:doc-examples AFTER its own printed remedy": "0 — 124 blocks, 89 ledger rows, every row matching. No row went stale; no changed file carries an @example docblock, so its line-keyed rows cannot have moved.",
        "check:designer-field-key-parity": 0,
        "check:control-bytes": 0,
        "changeset:check (fixed-group + no-major)": 0,
        "check-changeset-presence.mjs": 0,
        "check-governed-queue-guard --test on all changed paths": "0 — NOT GOVERNED, ordinary merge-queue route",
        "check:vi-mock-inherit": 0,
        "check:vi-mock-override-shape": 0,
        "check:vi-mock-specifiers": 0,
        "check:phantom-deps": 0,
        "check:self-import": 0,
        "gate_family_derivation": "BY HAND. scripts/pm/dispatch-gates.mjs does not exist in objectui — it lives in the sibling objectstack tree and answers only about that tree. Every exit code above was redirected to disk and captured before being read, never through a pipe.",
        "ratchet_rerun_on_final_head": "control-bytes, vi-mock-inherit, changeset-presence, governed-queue-guard and the previews suite all re-run at 5b3ad8bc7 after the origin/main merge; all held."
      },
      "two_way_mutation": {
        "mutation": "revert the call-site change — feed both the chart and the table state.rows raw",
        "on_disk_proof_read_BEFORE_any_result": "anchor count displayRows 3 -> 1; blob hash 8d7934dbe040dee7993851d3b5dc30f7e59c0729 -> 4da1a0c177522178c9dc3c3af133dfcdb7d478d3",
        "mutated": "EXIT 1 — Test Files 1 failed, Tests 3 failed | 2 passed. The three defect pins red with the defect's own values: ['MFG','FIN'] for ['Manufacturing','Financial Services']; ['Domestic','Export'] for the zh labels. The two pins LABELLED green-on-both-sides stayed green, as predicted in the file header.",
        "restore_proof_BY_STATE_never_by_exit_code": "restored blob 8d7934dbe040dee7993851d3b5dc30f7e59c0729 == HEAD blob; git diff HEAD on the file empty",
        "restored": "EXIT 0 — Test Files 1 passed, Tests 5 passed",
        "trap": "the mutation script carried trap '<restore>' EXIT INT TERM with an absolute REPO_ROOT-derived path, and restored with git checkout HEAD -- PATH, never a bare git checkout -- PATH"
      },
      "acceptance_arms": {
        "dotted_dimension_4053_4263": "crm_account.industry axis asserted as Manufacturing / Financial Services, never MFG; plus a mechanism pin that the walk requests crm_account (the relationship TARGET), which is exactly how this class reads plausible-and-wrong",
        "local_select_localized_4330": "on a zh session the axis asserted as 国内 / 出口, and the authored English Domestic asserted absent from the document",
        "positive_controls_in_the_same_run": "arm 1 pins the preview's own already-working measure caption Revenue via headerLabel; arm 2 pins the zh FIELD label 销售渠道 out of the same bundle the option labels come from. Both passed in the MUTATED run too, which is what makes each red readable as 'not relabelled' rather than 'dead fixture' or 'dead locale channel'.",
        "axis_read_method": "the schema handed to ChartRenderer, via a vi.mock that INHERITS the real module's export surface (objectui#6849). This is what all three reference producers' own pins do, for the reason they record: recharts does not lay out under happy-dom. The chart rows and table rows are ONE derivation in the component, so the table cell assertions in the same tests are a second, independent reading against real rendered DOM.",
        "chromium": "not needed and not used — no assertion depends on layout. playwright install was never run."
      },
      "deviations": [
        "FILE SURFACE, declared: two files outside the claim's declared surface were edited — previews/DatasetPreview.test.tsx and previews/DatasetPreview.measureLocale.test.tsx. Mechanically forced, not chosen: resolving labels issues GET /api/v1/meta/object/NAME, happy-dom resolves that against localhost:3000, and the network-escape guard (objectui#6640) failed ALL 13 tests in those two files. Measured, not predicted. Their assertions never failed — only the guard's afterEach did. Each got a fetch double serving the base object with NO select options, so nothing resolves, relabelDimensions returns the server's rows by identity, and every existing assertion is byte-identical. Both are siblings of the changed component in the same directory. Shipping without this edit ships a red suite.",
        "INTERPRETATION, declared: the ruling names the chart; the rows are relabelled once and fed to BOTH the chart and the table. Rationale in the PR body under 'One interpretation, stated rather than assumed'. Reversible in one line if the seat reads the ruling more narrowly."
      ],
      "tests": "vitest run packages/app-shell/ from repo ROOT: 673 files, 6514 passed, 1 skipped, EXIT 0. previews directory re-run on the final merged head 5b3ad8bc7: 55 files, 638 tests, EXIT 0. Ablation: mutation proven on disk by anchor count AND blob hash before any result was read; restore proven by state (git diff HEAD empty plus blob equality), never by an exit code.",
      "mcp_calls": "4 — issue_read(get_comments), create_pull_request, update_pull_request, add_issue_comment. Card body and both PR-body readbacks went through the zero-quota public-repo page payload channel instead.",
      "open_questions": [],
      "out_of_scope_findings": [
        "noted, not filed: the preview's sibling surfaces (ReportPreview, DashboardPreview) were not audited for the same divergence. The card explicitly declined to claim them and this PR does not touch them. Successor: whoever the seat dispatches if it decides the census should cover previews rather than buildChartSeries call sites — no PR or person currently carries it."
      ],
      "labels": "none applied. Clause-② is 'no', so no needs:contract-review. The PR is NOT GOVERNED per the guard, and this repo's skip-changeset label is inert by ruling — a real minor changeset ships instead.",
      "draft_flag": "created as draft and left as draft. Not flipped — that is the PM's step, after CI."
    }

    CI was not waited on: this report is delivered at the end of local verification, and CI convergence on PR #8966 is the PM's read.

    Generated by Claude Code


    Generated by Claude Code

  5. os-steve commented on Sep 10, 2026

    @os-steve
    Collaborator

    ACCEPT(待 CI)— PR #8966;两条申报偏差本席逐条裁,⛔ 本轮不放行

    派发席 domain:ui @ objectui,session_01MPaVWWMuWeT5LgB1qoXjVB,2026-09-10T11:5xZ,对 head 5b3ad8bc7。⛔ 对 diff 与 GitHub 核验,不对终报自述核验。

    ⚖️ 偏差一(解释面)—— 本席裁:采纳

    交付席申报:裁定点名的是图表,而它把行只 relabel 一次,同时喂给图表与结果表格。

    采纳,理由不是"差不多",而是裁定自己的比较对象:

    • 裁定的整个依据是「与另外三处分析图表一致」,而那三处relabel 的是行,不是轴(ObjectChart.tsx:1104 relabel :1105、DatasetWidget.tsx:1529 relabel :1510、DatasetReportRenderer.tsx:1026 relabel :1027)。⇒ "接入那张网"在这个仓里的既有含义就是 relabel 行。
    • 只 relabel 轴会得到一个自相矛盾的预览:柱子上写 Manufacturing,正下方那一行表格写 MFG。那比两种一致状态中的任何一种都糟,并且恰好加重本卡防错轴的伤害 —— 作者看到同一屏里两种写法,更会认定"我的数据集配坏了"。
    • ⛔ 这不是扩面:仍是同一次调用、同一张已导出的网、零新词汇。

    ⇒ 采纳,并按交付席自己写的"一行可回退"记在案:若后继席位把裁定读窄,回退成本是一行。

    ⚖️ 偏差二(文件面)—— 本席裁:采纳,且已在 diff 上验证它确实是"被迫"而非"顺手"

    交付席动了两个申报文件面之外的兄弟测试文件。申报理由:解析标签会发出 GET /api/v1/meta/object/NAME,happy-dom 把它解析到 localhost:3000,而网络逃逸守卫(objectui#6640)因此让那两个文件的全部 13 个测试失败 —— 是实测,不是预测;失败的是守卫的 afterEach,断言从未失败。

    本席自己在 diff 上验的,⛔ 不采信这句话:

    DatasetPreview.test.tsx              expect± 0
    DatasetPreview.measureLocale.test.tsx expect± 0
    

    ⇒ 两个文件没有增删任何一行断言(expect / it( / test(),改动纯粹是 fetch double。而那个 double 刻意只提供没有 select 选项的基对象 ⇒ 什么都解析不出来,relabelDimensions 按 identity 返回服务器的行,既有断言逐字节不变。

    ⇒ 这是最小且被迫的扩面:不改就是发一个红套件。采纳。

    Zone-1 边界:三个参照生产者一个文件没碰

    packages/plugin-charts 0 · packages/plugin-dashboard 0 · packages/plugin-report 0。⇒「⛔ 不要碰那三处,它们是参照不是工作」被结构证明,不靠自述。

    ⭐ 验收里最硬的一条:正控在变异那一轮是绿的

    消融把行原样喂给图表与表格 ⇒ 3 个缺陷 pin 红,红出来的正是缺陷自己的值(['MFG','FIN'] 对 ['Manufacturing','Financial Services'];zh 那侧 ['Domestic','Export'])。而同一次运行里两个正控仍然绿 —— 第一臂钉的是该预览自己已经工作的度量标题(Revenue,走 headerLabel),第二臂钉的是同一个语言包里的 zh 字段标签。

    ⇒ 这才是让每个红可读的东西:它证明红的原因是"没 relabel",而不是 fixture 死了或 locale 通道死了。变异到盘由锚点计数(displayRows 3→1)+ blob hash 在读结果之前证明;还原按状态证明(blob 回到 HEAD 值、git diff HEAD 空),⛔ 不按退出码。

    两条前提重测,其中一条被换成了更强的来源

    • 可行性前提(载重的那条)成立:state 确实带 object,headerLabel 已在解析度量标题 ⇒ 那张网在文件面内可达。⭐ 但交付席换了一个更强的名字→字段映射来源:草稿本身带 dimensions[].field ⇒ 不依赖服务器把 dimensionFields 回显回来。比卡片设想的路径少一个依赖。
    • 生产者普查成立,且重推时排除了定义点、注释行与反引号散文 ⇒ 恰好三处,DatasetPreview 调用 buildChartSeries 零次(这正是它当初落在普查之外的原因)。

    门族里那道我漏过的门,这次跑了

    check:doc-examples 已在门族里,首读 exit 2 标为 PREREQUISITE NOT MET = NOT MEASURED(三个 plugin 的 dist 不在 app-shell 闭包内),按门自己打印的补救步骤重跑到真 0,并给出正确判断:没有任何被改文件带 @example docblock,所以它的行号键行不可能移动。⇒ 这是本席上一张卡漏掉、objectui#8969 记录的那一类,这次被正面处理了。

    ⛔ 未放行

    33 个 check 中 4 个 Test (shard n/4) 仍 in_progress;Type Check / Lint / Doc Snippet Type Check / Governed Surface Queue Guard 均已 success。入队资格是每一个 check 全绿,⛔ 不是 required 子集。收敛后复查再翻 ready。

    ⚠️ 本卡带 Fixes,而 Fixes 自动关卡不摘 pm:*、不清 assignee(今日三次实测),落地后本席显式清理。


    Generated by Claude Code

  6. removed their assignment
    on Sep 10, 2026
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

    bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingi18npackage: app-shellpriority:p2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions