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
Studio pending changes: publishing a new object that has one authored field lists five system fields (created_at, created_by, owner_id, updated_at, updated_by) and the object's own label / name / nameField / sharingModel as "additions" #25890
Filing gate ① a user-visible defect with a named landing site. Batch-of: 2026-10-25 browser pass on @objectstack/* 18.1.0 (23 cards: hotcrm 10, objectui 10, objectstack 3). Filed by the maintainer's account (os-steve) from the HotCRM pass driven in session session_01AwpXhq2nFKU6J7GmbCEmZu; ⛔ not a claim. Grade and routing are objectui triage's.
What is seen (@objectstack/console 18.1.0)
Studio → new writable package → 新建对象 「报修工单」 (repair_ticket, OWD private) → 存为草稿 → 发布. The 待发布的变更 dialog expands the one object to:
The author typed a display name and an identifier. The list tells them they are publishing six fields and four "other changes". u16-publish-dialog.png; the collapsed form is fine: u15-changes.png.
reach: the public UI, measured once; every first publish of a new object shows it.
Expected
For a new object, the diff names what the author wrote (the object, its label, the authored fields) and folds the platform's system fields into one line (「含 5 个系统字段」); the object's own label / name / nameField / sharingModel are the object, not "other changes". objectstack-ai/objectui#13125 (closed) removed __search from the same list; this is the rest of that family.
Dedupe
MCP search_issues objectui "Studio publish changes list lists system fields created_at owner_id as additions for a new object" → 1 hit, objectstack-ai/objectui#13125 (closed, the __search row and API names), which did not cover system fields or the object attributes. Report: REPORT.md §7 S6.
⛔ Not a claim, ⛔ not a dispatch. finding comes off.
Pending changes lists what the author changed. Platform-provisioned system fields and derived keys belong in a collapsed 'generated' group, not in the author's diff.
Transferred 2026-10-26T02:52Z from objectstack-ai/objectui#13524, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the ui/ workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.
Paths. The body names no file paths; the UI code it describes lives under ui/ here (the Console is ui/apps/console, the libraries ui/packages/*).
References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#13125.
Claim: PM loop round 1
Session: session_017iXjUm1rujwDk7f3KT1Pkk (seat); implementing card thread session_01P4aqt32BH9VTnLdDgkBUMx
Account: os-steve
Branch: claude/project-thread-icjdxh (platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record. Wording amended by the seat: an issue-shaped placeholder here was read by the Closing-Target Claim Guard as a second claimed branch)
Worktree: the card thread's own container
Domain: domain:ui
Seat: domain:ui#1
File surface: ui/packages/app-shell/src/preview/DraftChangesPanel.tsx (the computeChangeDetail filter and the entry render) + its tests + i18n bundle keys for the new line (stop on breach; explain in the report). ⛔ ui/.github/** and the root .github/workflows/ci.yml are out of bounds (maintainer's word, ui-merge epic in flight). Changeset in the root .changeset/.
Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: n/a: renderer defect in ui/, the producing code is the cited ui file; no platform path covers it; reached through the public Console
Thread-read: 6407152075
Premise: holds (read-only premise check at origin/main59d9181, 2026-10-26T06:36Z; spot-checked by the seat)
Serial constraints cleared: none: no open PR touches ui/packages/app-shell/src/preview/** (open-PR file scan 2026-10-26T06:33Z; the only ui/app-shell PR #25903 is in metadata-admin/inspectors/); no in-flight domain:ui claim
Dispatch order handed to the card thread by the project coordinator (three partitions: ruling / mechanism hypotheses / suggested route); the dev does not claim, and starts only once this claim names its branch.
{
"issue": 25890,
"status": "done",
"branch": "claude/project-thread-icjdxh",
"pr": "https://github.com/objectstack-ai/objectstack/pull/25984",
"session": "session_01P4aqt32BH9VTnLdDgkBUMx",
"premise_still_valid": true,
"summary": "Measured: the /meta reads serve a new object with the injected audit columns and owner_id (system: true, not hidden) and a registry-derived nameField, and a NEW item has no published body to cancel them. computeChangeDetail now moves added/removed fields whose every definition has system: true, and a nameField equal to the spec provisionPrimary derivation, into a new generated list. The drill-in renders that list as one collapsed 'Generated by the platform (N)' line. A NEW item's keys are headed 'Includes:' instead of 'Also changed:'. The objectui#13125 hidden-system drop is unchanged. A changed system field and an author-chosen nameField stay author rows. Card repro: '+ 名称 name', 'Includes: label name sharingModel', 'Generated by the platform (6)'.",
"tests": "head f96a8519, from ui/: pnpm exec vitest run --maxWorkers=2 packages/i18n/ packages/app-shell/src/preview/ -> Test Files 120 passed (120), Tests 1585 passed | 13 skipped (lock VERDICT command-exit 0). New DraftChangesPanel.generatedGroup-25890.test.tsx: 9 tests. Ablation via scripts/ablation-replace.mjs on the fold predicate (anchor 1->0, blob 6c92a1c5->805a4a90): 4 failed | 5 passed, restored to HEAD blob 6c92a1c5. The suite resolves the panel from src through the ui vitest alias, so there was no dist leg. pnpm --filter @object-ui/i18n --filter @object-ui/app-shell run type-check: Done/Done (VERDICT 0). ui check-i18n-call-site-keys: exit 0. eslint on the touched files: 0 errors, 6 warnings, all in code this PR does not change.",
"gates": "dispatch-gates --commands --repo objectstack-ai/objectstack at f96a8519: 46 derived, 46 run, all exit 0. --ran (with exit codes): '46 run, 0 NOT-MEASURED (a DERIVED zero)'. check-sdui-manifest was red at 6577bce6 (the ui source hash moved). Fixed by node scripts/gen-sdui-manifest-node.mjs, which re-recorded scripts/sdui-manifest.record.json with the manifest bytes unchanged. CI families: in_progress, PR check-runs not yet read.",
"dogfood_battery": "n/a — no ! in the PR title and Clause-②: no carries no (narrowing) arm",
"mcp_calls": "3 — mcp__github__issue_read (get, get_comments x2); zero write tools",
"api_writes": "2 — fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches: pr_create (#25984, assignee os-steve, read-back identical 6337/6337 bytes); this os-dev-report comment on #25890",
"deviations": [
"Acceptance wording 'only the authored field(s) plus one folded system-fields line': the new object's authored keys label/name/sharingModel still list, under 'Includes:'. Dropping name/label for NEW items reversed 7 existing pins in 4 files (DraftChangesPanel.test.tsx, noChangeAndKeySplit-11807, posture-12517, protectionEnvelope-12594), which conflicts with 'existing tests stay green', so that half was reverted. Ruling text folds platform-provisioned fields and derived keys only.",
"DraftChangesPanel.fieldRows-13125.test.tsx updated: its owner_id/created_at 'listed' controls (explicitly deferred to this card) now assert generated-group placement.",
"i18n keys were added to all ten packs, not only en+zh, because all-locales-key-parity requires every pack.",
"File surface widened by scripts/sdui-manifest.record.json (one hash line), which check-sdui-manifest requires after any ui registry-source edit.",
"No PR activity subscription: CI convergence is the seat's, per os-dev.md."
],
"files_changed": [
".changeset/25890-pending-changes-generated-group.md",
"scripts/sdui-manifest.record.json",
"ui/packages/app-shell/src/preview/DraftChangesPanel.tsx",
"ui/packages/app-shell/src/preview/__tests__/DraftChangesPanel.fieldRows-13125.test.tsx",
"ui/packages/app-shell/src/preview/__tests__/DraftChangesPanel.generatedGroup-25890.test.tsx",
"ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts"
],
"open_questions": [
{
"question": "Should a NEW item also stop listing its own name and label as keys (the row already shows them)?",
"options": [
"A keep as shipped: listed under 'Includes:'",
"B drop them and rewrite the 7 pins that encode 'every top-level key added' for a new item"
],
"recommendation": "A, because they are authored, the ruling folds only platform-written content, and B rewrites pins owned by four other cards"
}
],
"out_of_scope_findings": []
}
Seat close-out · domain:ui seat 1 · 2026-10-26T10:59Z: PR #25984 merged at 10:58Z, after two re-merges for the manifest-hash conflict (#26051 tracks the fix for that). The report's open question is answered by the maintainer: Steve chose A in the card thread (2026-10-26T09:19Z). A new object keeps listing its own label and name under "Includes:", so PR #25984 stands as shipped and no follow-up is needed. pm:dispatched is removed.
Activity
objectstack-fleet commentedon Oct 25, 2026
Triage: first grade —
bug·priority:p2·domain:ui·area:studio·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-25T13:00Z⛔ Not a claim, ⛔ not a dispatch.
findingcomes off.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Transferred 2026-10-26T02:52Z from objectstack-ai/objectui#13524, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the
ui/workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.Paths. The body names no file paths; the UI code it describes lives under
ui/here (the Console isui/apps/console, the librariesui/packages/*).References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#13125.
No stale
pm:dispatchedor assignee to strip.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 1
Session:
session_017iXjUm1rujwDk7f3KT1Pkk(seat); implementing card threadsession_01P4aqt32BH9VTnLdDgkBUMxAccount:
os-steveBranch:
claude/project-thread-icjdxh(platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record. Wording amended by the seat: an issue-shaped placeholder here was read by the Closing-Target Claim Guard as a second claimed branch)Worktree: the card thread's own container
Domain:
domain:uiSeat:
domain:ui#1File surface:
ui/packages/app-shell/src/preview/DraftChangesPanel.tsx(thecomputeChangeDetailfilter and the entry render) + its tests + i18n bundle keys for the new line (stop on breach; explain in the report). ⛔ui/.github/**and the root.github/workflows/ci.ymlare out of bounds (maintainer's word, ui-merge epic in flight). Changeset in the root.changeset/.Container & model:
M,mode:thread,model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
n/a: renderer defect in ui/, the producing code is the cited ui file; no platform path covers it; reached through the public ConsoleThread-read: 6407152075
Premise: holds (read-only premise check at
origin/main59d9181, 2026-10-26T06:36Z; spot-checked by the seat)Serial constraints cleared: none: no open PR touches
ui/packages/app-shell/src/preview/**(open-PR file scan 2026-10-26T06:33Z; the only ui/app-shell PR #25903 is inmetadata-admin/inspectors/); no in-flightdomain:uiclaimDispatch order handed to the card thread by the project coordinator (three partitions: ruling / mechanism hypotheses / suggested route); the dev does not claim, and starts only once this claim names its branch.
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 25890, "status": "done", "branch": "claude/project-thread-icjdxh", "pr": "https://github.com/objectstack-ai/objectstack/pull/25984", "session": "session_01P4aqt32BH9VTnLdDgkBUMx", "premise_still_valid": true, "summary": "Measured: the /meta reads serve a new object with the injected audit columns and owner_id (system: true, not hidden) and a registry-derived nameField, and a NEW item has no published body to cancel them. computeChangeDetail now moves added/removed fields whose every definition has system: true, and a nameField equal to the spec provisionPrimary derivation, into a new generated list. The drill-in renders that list as one collapsed 'Generated by the platform (N)' line. A NEW item's keys are headed 'Includes:' instead of 'Also changed:'. The objectui#13125 hidden-system drop is unchanged. A changed system field and an author-chosen nameField stay author rows. Card repro: '+ 名称 name', 'Includes: label name sharingModel', 'Generated by the platform (6)'.", "tests": "head f96a8519, from ui/: pnpm exec vitest run --maxWorkers=2 packages/i18n/ packages/app-shell/src/preview/ -> Test Files 120 passed (120), Tests 1585 passed | 13 skipped (lock VERDICT command-exit 0). New DraftChangesPanel.generatedGroup-25890.test.tsx: 9 tests. Ablation via scripts/ablation-replace.mjs on the fold predicate (anchor 1->0, blob 6c92a1c5->805a4a90): 4 failed | 5 passed, restored to HEAD blob 6c92a1c5. The suite resolves the panel from src through the ui vitest alias, so there was no dist leg. pnpm --filter @object-ui/i18n --filter @object-ui/app-shell run type-check: Done/Done (VERDICT 0). ui check-i18n-call-site-keys: exit 0. eslint on the touched files: 0 errors, 6 warnings, all in code this PR does not change.", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack at f96a8519: 46 derived, 46 run, all exit 0. --ran (with exit codes): '46 run, 0 NOT-MEASURED (a DERIVED zero)'. check-sdui-manifest was red at 6577bce6 (the ui source hash moved). Fixed by node scripts/gen-sdui-manifest-node.mjs, which re-recorded scripts/sdui-manifest.record.json with the manifest bytes unchanged. CI families: in_progress, PR check-runs not yet read.", "dogfood_battery": "n/a — no ! in the PR title and Clause-②: no carries no (narrowing) arm", "mcp_calls": "3 — mcp__github__issue_read (get, get_comments x2); zero write tools", "api_writes": "2 — fleet-write relay POST /repos/objectstack-ai/objectstack/dispatches: pr_create (#25984, assignee os-steve, read-back identical 6337/6337 bytes); this os-dev-report comment on #25890", "deviations": [ "Acceptance wording 'only the authored field(s) plus one folded system-fields line': the new object's authored keys label/name/sharingModel still list, under 'Includes:'. Dropping name/label for NEW items reversed 7 existing pins in 4 files (DraftChangesPanel.test.tsx, noChangeAndKeySplit-11807, posture-12517, protectionEnvelope-12594), which conflicts with 'existing tests stay green', so that half was reverted. Ruling text folds platform-provisioned fields and derived keys only.", "DraftChangesPanel.fieldRows-13125.test.tsx updated: its owner_id/created_at 'listed' controls (explicitly deferred to this card) now assert generated-group placement.", "i18n keys were added to all ten packs, not only en+zh, because all-locales-key-parity requires every pack.", "File surface widened by scripts/sdui-manifest.record.json (one hash line), which check-sdui-manifest requires after any ui registry-source edit.", "No PR activity subscription: CI convergence is the seat's, per os-dev.md." ], "files_changed": [ ".changeset/25890-pending-changes-generated-group.md", "scripts/sdui-manifest.record.json", "ui/packages/app-shell/src/preview/DraftChangesPanel.tsx", "ui/packages/app-shell/src/preview/__tests__/DraftChangesPanel.fieldRows-13125.test.tsx", "ui/packages/app-shell/src/preview/__tests__/DraftChangesPanel.generatedGroup-25890.test.tsx", "ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts" ], "open_questions": [ { "question": "Should a NEW item also stop listing its own name and label as keys (the row already shows them)?", "options": [ "A keep as shipped: listed under 'Includes:'", "B drop them and rewrite the 7 pins that encode 'every top-level key added' for a new item" ], "recommendation": "A, because they are authored, the ruling folds only platform-written content, and B rewrites pins owned by four other cards" } ], "out_of_scope_findings": [] }objectstack-fleet commentedon Oct 26, 2026
Seat: PR #25984 ACCEPT (2026-10-26T08:20Z), checks green on head
f96a8519; ready + auto-merge requested. See the## 席位核对comment on the PR.objectstack-fleet commentedon Oct 26, 2026
Seat close-out ·
domain:uiseat 1 · 2026-10-26T10:59Z: PR #25984 merged at 10:58Z, after two re-merges for the manifest-hash conflict (#26051 tracks the fix for that). The report's open question is answered by the maintainer: Steve chose A in the card thread (2026-10-26T09:19Z). A new object keeps listing its own label and name under "Includes:", so PR #25984 stands as shipped and no follow-up is needed.pm:dispatchedis removed.