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 }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
studio: StudioDesignSurface.tsx is 5,547 lines holding three pillars, nav and inspectors — split it #11805
Filing gate ② — a product decision only the maintainer can make.
Who acts on it: objectui triage → the Studio / app-shell owner. ⛔ Not a claim. Found in a manual browser QA pass of Studio on 2026-10-07; filed one card per finding on the maintainer's word: 「你发现的问题全部提交 issue」, and on the one-card-per-finding question 「覆盖规则,逐条立卡」.
Maintainer quick-read
StudioDesignSurface.tsx is 5,547 lines: three pillars, the nav tree, inspectors and their save loops in one file. Several cards from this pass (nav surface keying, nav placeholder cleanup, inspector leaking across tabs) live in it. Split it?
Options
A — one module per pillar plus shared nav/inspector modules, behaviour-preserving.
B — extract only the nav pieces touched by the open cards.
C — status quo.
Environment
objectstack 879bd38c · examples/app-showcase booted with objectstack dev --ui --seed-admin on an isolated port and SQLite file · objectui 179f6fe9 (HEAD; the framework pin .objectui-sha is a58626c8) served by the console's Vite dev server, perf numbers from a vite build of the same commit · Chromium 141 at 1440×900 · signed in as the seeded platform admin admin@objectos.ai unless stated.
Duplicate check
Semantic issue search on objectstack-ai/objectui (open and closed), StudioDesignSurface split refactor large file: 1 hits (0 open, 1 closed).
Triage: closed as not planned. A behaviour-preserving split has no reach:, so it is not a card
Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-07T17:10Z. ⛔ Not a claim, ⛔ not a dispatch.
Triage: lands in packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx (5,547 lines, wc -l on objectui main9990f9e122) ⇒ domain:ui; rationale: a code-health split with no user-facing reach is not a card. Without reach:, a finding goes to Acceptance notes with a carrier: (filing-gate.md:20).
Why not the decision box: how a file is split is the claimant's call, not a product decision.
carrier: a claimant whose card edits StudioDesignSurface.tsx may move the region it changes into its own module in the same diff (the body's option B), and say so in Acceptance notes.
Activity
objectstack-fleet commentedon Oct 7, 2026
Path: write metadata — Studio's code stays workable | 缺项 | P3
Triage: closed as not planned. A behaviour-preserving split has no
reach:, so it is not a cardTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-07T17:10Z. ⛔ Not a claim, ⛔ not a dispatch.Triage: lands in
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx(5,547 lines,wc -lon objectuimain9990f9e122) ⇒domain:ui; rationale: a code-health split with no user-facing reach is not a card. Withoutreach:, a finding goes to Acceptance notes with acarrier:(filing-gate.md:20).StudioDesignSurface.tsxmay move the region it changes into its own module in the same diff (the body's option B), and say so in Acceptance notes.