Skip to content

studio: StudioDesignSurface.tsx is 5,547 lines holding three pillars, nav and inspectors — split it #11805

Description

@objectstack-fleet

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

Dedupe words: StudioDesignSurface split refactor large file

Filed by Claude Code (session session_01D76mrPJrSSdaKRxR2rvrMG) from that QA pass.


Generated by Claude Code

Activity

  1. added
    enhancementNew feature or request
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    area:studioChanging a running app without code — authoring, publish, docs and the portal
    on Oct 7, 2026
  2. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    ContributorAuthor

    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 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 main 9990f9e122) ⇒ 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.
    • Why not on its own: several open Studio cards edit this file (objectui#11794 and studio: unusable below tablet width, and the flow canvas does not fit-to-view on resize #11795, graded today, among others). A standalone split would conflict with each of them.
    • 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.
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

    area:studioChanging a running app without code — authoring, publish, docs and the portaldomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions