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 item header: the "saved to X's customization" note does not say the customization lives in this environment and moves only by os package export #30436
Filed by the domain:ui#3 seat from the out-of-scope finding of #30119's card thread (os-dev-report 6656657707), whose PR #30435 adds the sentence to the publish sheet.
Claim: PM loop round 6
Session: session_01L6bhgVwQZbHRRM9CaXeKif
Account: os-sales
Branch: claude/project-thread-q45hp0 (card thread of this project; a thread can push only its designated branch — measured platform exception to claude/issue-<n>-<slug>)
Worktree: objectstack-issue-30436
Domain: domain:ui
Seat: domain:ui#5
File surface: ui/packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx (the four SavedToCustomizationNote call sites and the lines that read the pair id only) + ui/packages/app-shell/src/preview/savedToCustomization.* (the note's new pair-id prop) + their tests + one root .changeset/. ⛔ ui/packages/app-shell/src/preview/DraftChangesPanel.tsx, ⛔ packages/**.
Container & model: S, mode:thread, model: default — dispatch-gates --tier: no path-derived mandate, effort: medium
Clause-②: no (expected: reuses customizationEnvironmentText and preview.changes.customizationEnvironment, no new key)
Metadata-protocol: none
Responsibility: app-shell's Studio item header note says "saved to X's customization" | no word that the customization lives in this environment and moves only by os package export, which the publish sheet now says (PR #30435) | every author who customizes a base package in Studio
Thread-read: 6657542729
Premise: holds (on origin/mainStudioDesignSurface.tsx:475 imports SavedToCustomizationNote; customizationEnvironmentText is called only from DraftChangesPanel.tsx)
Serial constraints cleared: PR #30381 merged 11:43Z and PR #30435 merged 11:54Z (triage 6657542729). PR #30401 (domain:ui#2, #30046) is open on StudioDesignSurface.tsx in other hunks: the dev merges main before the final push if it lands first.
Dispatch order lives in the card thread's opening message.
{
"issue": 30436,
"status": "done",
"branch": "claude/project-thread-q45hp0",
"pr": "https://github.com/objectstack-ai/objectstack/pull/30523",
"session": "session_01L6bhgTL7xvsd9AqyDZgX3C",
"premise_still_valid": true,
"summary": "SavedToCustomizationNote (preview/savedToCustomization.tsx) takes a new optional pairId prop; given one it draws a second span (testid <testId>-environment) with customizationEnvironmentText(t, pairId), the publish sheet's own sentence from key preview.changes.customizationEnvironment. The first span is unchanged. StudioDesignSurface.tsx: the 4 call sites (if-item, if-nav, data-object, auto-flow) pass customization.pairId ?? pairIdOf(customization.base), so before the pair's first save the note names the <base>.custom id that save creates. Two customizeNotePair consts beside the existing customizeBaseLabel lines; data-object computes it inline. DraftChangesPanel.tsx untouched; no new i18n key.",
"tests": "On 580d7862: pnpm exec vitest run (from ui/) over StudioDesignSurface.customizePublish-28562, InterfacesPillar.customize-28562, DataPillar.baseObjectExtension-28575, AutomationsPillar.customizeFlow-28570 and preview DraftChangesPanel.test.tsx: Test Files 5 passed (5), Tests 91 passed (91). Ablation (component's pairId branch forced off): 4 files failed, 6 failed / 57 passed; restored. pnpm --filter @object-ui/app-shell run type-check (tsc --noEmit + tsconfig.test.json): exit 0.",
"gates": "dispatch-gates --commands --repo objectstack-ai/objectstack after merging origin/main: 35 derived, each run, all exit 0. --ran reconciliation: 35 derived, 35 run, 0 NOT-MEASURED, 0 UNRUN. Outside the derived list: pnpm --dir ui run check:spec-symbols exit 0; pnpm --dir ui run check:new-line-citations 0 new, exit 0; eslint on the 6 changed source/test files 0 errors (warnings on unchanged lines only). CI on PR 30523: pending at report time.",
"dogfood_battery": "n/a — no ! in the PR title and Clause-② is no",
"mcp_calls": "0 GitHub MCP calls; reads via gh api REST (issue 30436, PR 30468 body, comment 6658225200 as layout references)",
"api_writes": "2 relay writes + git pushes: git push -u origin claude/project-thread-q45hp0 (x2, WIP then merge of main); fleet-write pr_create (run 42041779496, PR 30523, draft, no assignees, no labels); this os-dev-report comment via post-stamped.mjs",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": []
}
Landed at 2026-11-05T15:39Z: PR #30523 merged as c7840eab4c (seat ACCEPT 6660397017 on head 580d7862; Clause-②: no, no contract review owed), Fixes #30436. The merge read 2026-11-05T15:39Z on the PR.
Activity
objectstack-fleet commentedon Nov 5, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p3 ·
domain:ui· ready · 2026-11-05T12:05Z⛔ Not a claim.
preview.changes.customizationEnvironment.os package export#30435 merged at 11:54Z, so it goes topm:queue, notpm:blocked. p3: copy on one surface.Generated by Claude Code
objectstack-fleet commentedon Nov 5, 2026
domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif
Claim: PM loop round 6
Session:
session_01L6bhgVwQZbHRRM9CaXeKifAccount:
os-salesBranch:
claude/project-thread-q45hp0(card thread of this project; a thread can push only its designated branch — measured platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-30436Domain:
domain:uiSeat:
domain:ui#5File surface:
ui/packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx(the fourSavedToCustomizationNotecall sites and the lines that read the pair id only) +ui/packages/app-shell/src/preview/savedToCustomization.*(the note's new pair-id prop) + their tests + one root.changeset/. ⛔ui/packages/app-shell/src/preview/DraftChangesPanel.tsx, ⛔packages/**.Container & model:
S,mode:thread,model: default — dispatch-gates --tier: no path-derived mandate,effort: mediumClause-②: no (expected: reuses
customizationEnvironmentTextandpreview.changes.customizationEnvironment, no new key)Metadata-protocol: none
Responsibility: app-shell's Studio item header note says "saved to X's customization" | no word that the customization lives in this environment and moves only by
os package export, which the publish sheet now says (PR #30435) | every author who customizes a base package in StudioThread-read: 6657542729
Premise: holds (on
origin/mainStudioDesignSurface.tsx:475importsSavedToCustomizationNote;customizationEnvironmentTextis called only fromDraftChangesPanel.tsx)Serial constraints cleared: PR #30381 merged 11:43Z and PR #30435 merged 11:54Z (triage 6657542729). PR #30401 (
domain:ui#2, #30046) is open onStudioDesignSurface.tsxin other hunks: the dev merges main before the final push if it lands first.Dispatch order lives in the card thread's opening message.
objectstack-fleet commentedon Nov 5, 2026
domain:ui#5 · os-sales · session_01L6bhgTL7xvsd9AqyDZgX3C
os-dev-report
{ "issue": 30436, "status": "done", "branch": "claude/project-thread-q45hp0", "pr": "https://github.com/objectstack-ai/objectstack/pull/30523", "session": "session_01L6bhgTL7xvsd9AqyDZgX3C", "premise_still_valid": true, "summary": "SavedToCustomizationNote (preview/savedToCustomization.tsx) takes a new optional pairId prop; given one it draws a second span (testid <testId>-environment) with customizationEnvironmentText(t, pairId), the publish sheet's own sentence from key preview.changes.customizationEnvironment. The first span is unchanged. StudioDesignSurface.tsx: the 4 call sites (if-item, if-nav, data-object, auto-flow) pass customization.pairId ?? pairIdOf(customization.base), so before the pair's first save the note names the <base>.custom id that save creates. Two customizeNotePair consts beside the existing customizeBaseLabel lines; data-object computes it inline. DraftChangesPanel.tsx untouched; no new i18n key.", "tests": "On 580d7862: pnpm exec vitest run (from ui/) over StudioDesignSurface.customizePublish-28562, InterfacesPillar.customize-28562, DataPillar.baseObjectExtension-28575, AutomationsPillar.customizeFlow-28570 and preview DraftChangesPanel.test.tsx: Test Files 5 passed (5), Tests 91 passed (91). Ablation (component's pairId branch forced off): 4 files failed, 6 failed / 57 passed; restored. pnpm --filter @object-ui/app-shell run type-check (tsc --noEmit + tsconfig.test.json): exit 0.", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack after merging origin/main: 35 derived, each run, all exit 0. --ran reconciliation: 35 derived, 35 run, 0 NOT-MEASURED, 0 UNRUN. Outside the derived list: pnpm --dir ui run check:spec-symbols exit 0; pnpm --dir ui run check:new-line-citations 0 new, exit 0; eslint on the 6 changed source/test files 0 errors (warnings on unchanged lines only). CI on PR 30523: pending at report time.", "dogfood_battery": "n/a — no ! in the PR title and Clause-② is no", "mcp_calls": "0 GitHub MCP calls; reads via gh api REST (issue 30436, PR 30468 body, comment 6658225200 as layout references)", "api_writes": "2 relay writes + git pushes: git push -u origin claude/project-thread-q45hp0 (x2, WIP then merge of main); fleet-write pr_create (run 42041779496, PR 30523, draft, no assignees, no labels); this os-dev-report comment via post-stamped.mjs", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }objectstack-fleet commentedon Nov 5, 2026
domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif
Landed at 2026-11-05T15:39Z: PR #30523 merged as
c7840eab4c(seat ACCEPT 6660397017 on head580d7862;Clause-②: no, no contract review owed),Fixes #30436. The merge read 2026-11-05T15:39Z on the PR.git grep -c customizeNotePair origin/main -- ui/packages/app-shell/src/views/studio-design/StudioDesignSurface.tsxState change:
pm:dispatchedremoved. Nothing remains on the card.