From 8b5b0b49cd2acbe55cfb7ee4cf9edde23b6e2cb3 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 23:56:53 +0000 Subject: [PATCH] fix(app-shell): Studio's draft panel and build history address a bundle member The pending-changes sheet reads `member` off each `_drafts` row and passes it as `?member=` on every by-name `/meta` read (published, draft, and the member's own NEW/UPDATE probe); row identity is type + name + member. The commit timeline shows the member of each touched item that carries one. An entry without `member` sends no selector. Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB Co-authored-by: Claude --- .changeset/12271-draft-member.md | 5 + .../app-shell/src/preview/CommitTimeline.tsx | 15 ++ .../src/preview/DraftChangesPanel.tsx | 86 +++++++- ...CommitTimeline.bundleMember-12271.test.tsx | 82 ++++++++ ...ftChangesPanel.bundleMember-12271.test.tsx | 198 ++++++++++++++++++ .../app-shell/src/preview/commitHistory.ts | 38 ++++ .../app-shell/src/preview/usePendingDrafts.ts | 12 ++ 7 files changed, 426 insertions(+), 10 deletions(-) create mode 100644 .changeset/12271-draft-member.md create mode 100644 packages/app-shell/src/preview/__tests__/CommitTimeline.bundleMember-12271.test.tsx create mode 100644 packages/app-shell/src/preview/__tests__/DraftChangesPanel.bundleMember-12271.test.tsx diff --git a/.changeset/12271-draft-member.md b/.changeset/12271-draft-member.md new file mode 100644 index 0000000000..c127613474 --- /dev/null +++ b/.changeset/12271-draft-member.md @@ -0,0 +1,5 @@ +--- +'@object-ui/app-shell': patch +--- + +Studio stops conflating two members of one bundle. The pending-changes sheet reads each draft's `member` off `GET /meta/_drafts` (objectstack#23073) and lists two languages of one `email_template` as two rows, each reading, diffing and classifying its own member through the by-name `/meta` doors' `?member=`; a draft without `member` sends no selector, as before. The build history names the member of each touched item that carries one. diff --git a/packages/app-shell/src/preview/CommitTimeline.tsx b/packages/app-shell/src/preview/CommitTimeline.tsx index 1de73bac07..e30a7fcb07 100644 --- a/packages/app-shell/src/preview/CommitTimeline.tsx +++ b/packages/app-shell/src/preview/CommitTimeline.tsx @@ -194,6 +194,21 @@ export function CommitTimeline({ open, onOpenChange, packageId, onReverted }: Co {c.actor ? · {c.actor} : null} {c.createdAt ? · {relativeTime(c.createdAt)} : null}

+ {c.memberItems ? ( + // objectstack#23073 — the bundle member of each touched + // item that has one, so two languages of one template read + // as two items. A name-only item adds nothing here. + + ) : null} {c.operation === 'apply' ? (