Skip to content

Studio: the publish sheet and load errors speak in plain words, and a load error carries the server's real reason #29704

Closed

Description

@objectstack-fleet

epic:#28130#1 · hotlong · session_040dfd80c4c9411b895c698e785a6848

Filing gate: ② filed on the maintainer's word in direct chat with the epic PM seat, 2026-11-03: 「第二批也立卡」. Priority on 「相关卡 p1, 让车道处理」. ⛔ Not a claim.
Reader: domain:ui (ui/packages/app-shell/src/preview/DraftChangesPanel.tsx; the list load error at console/AppContent.tsx:2112).
Dedupe: publish sheet, loadErrorMessage. #29673 is the case that exposed the second part, and its fix does not cover it. New.
type: enhancement

Business reason. The publish sheet is where a person decides whether to make a change live. It should say what will change in their terms. When a page cannot load, it should say why.

What happens

Measured on main at 3482f3d8d2, zh-CN.

Direction

  • 新增: no key list. 更新: top-level keys through the inspector's existing label catalog, and declaration or platform-generated keys are not listed as the person's changes. Type groups use the type's translated name.
  • The load-error state shows the server's code and sentence when one came back. The network sentence is only for a request that got no answer. One rule, on the list and record pages alike.
  • No new diff capability.

Links back: #29673, #29690–#29693.

Activity

  1. added
    enhancementNew feature or request
    priority:p1High: required for production / M2
    pm:queueReady for the PM dispatch loop
    domain:uiDomain lane — seat card indexed by label:pm:seat
    area:studioChanging a running app without code — authoring, publish, docs and the portal
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 3, 2026
  2. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB

    Claim: PM loop round 7 · 2026-11-03T02:38Z
    Session: session_01QsR2jVQc3uTU5ZhjP31Sh8 (card thread, os-dev); dispatched by seat session session_01QsR2jQjvWkZ7is6GXbC6DB
    Account: zhuangjianguo
    Branch: claude/project-thread-jehz9h (platform-assigned to the card thread; it can push only this branch)
    Worktree: objectstack-issue-29704
    Domain: domain:ui
    Seat: domain:ui#5
    Scope: the publish sheet names a person's changes in plain words (no key list on 新增, labelled top-level keys on 更新, no declaration or platform-generated keys, translated type-group names), and a list or record load error shows the server's code and sentence when one came back, keeping the network sentence for a request that got no answer. Fixes #29704.
    File surface: ui/packages/app-shell/src/preview/DraftChangesPanel.tsx and its helpers, the load-error lines of ui/packages/app-shell/src/console/AppContent.tsx and of the record page, one shared error-reading helper, the i18n packs, their tests, and a changeset. The dev names the exact files after measuring the premise, and the seat amends this line before any edit outside it (stop on breach).
    Container & model: M, mode:thread, model: default tier (no Fable per the maintainer's standing rule), effort: high
    Clause-②: yes (widening) — provisional: new i18n keys are expected. The dev runs on the diff, and the seat amends this line if its output differs (for example, a retired key).
    Metadata-protocol: none
    Responsibility: a builder publishing a change, or a member opening a list or record that failed to load | the publish sheet shows raw keys and engine names, and a 404 with a clear server sentence reads as a network fault | builders deciding what goes live, and support chasing a network fault that is not there
    Thread-read: none
    Premise: to prove first on current main, per the brief (/mnt/project-files/issue-29704/brief.md). The dev reproduces each symptom before editing and drops or reports any that does not reproduce.
    Serial constraints cleared: seat 4's #29693 and #29692 (StudioItemHeader row) and seat 1's #29691 (saved-to sentence on the pending-changes sheet) are named in the brief. Seat 5's #29704, #29705 and #29706 share the studio i18n packs on different keys. The dev merges main right before pr_create.

  3. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#28130#1 · hotlong · session_040dfd80c4c9411b895c698e785a6848
    2026-11-03T02:52Z

    Re-measured live by the epic PM seat on main at c9636f1e50, on the maintainer's word in direct chat, 2026-11-03: 「需要复测的内容,你直接处理」. This updates the card body where it differs. ⛔ Not a claim.

    Confirmed, zh-CN. The sheet for a new object lists + Label, + Name, + Sharing Model and 平台生成(6), and a new flow lists + Edges, + Label, + Name, + Status, + Type, each under 包含:. The field rows above them are readable (+ 名称 name). The isDefault and viewKind lines belong to a new view, which was not created here; expect the same list.

    Records page after a failed registration: GET /data/OBJ answers 404 OBJECT_NOT_FOUND with a clear sentence. #29673 is still open and still reproduces on this build, so the case stays available to test against.

  4. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB

    Claim amended · 2026-11-03T02:52Z · #29704 file surface named after the premise held

    The dev measured the premise at 7b55ea95 (file-surface.md in issue-29704).

    File surface (replaces the claim's provisional line; stop on breach):

    • Sheet: ui/packages/app-shell/src/preview/DraftChangesPanel.tsx, preview/changeKeyLabels.ts, new views/metadata-admin/schema-field-label.ts (a leaf, with members moved verbatim), views/metadata-admin/i18n.ts (re-exports), and views/metadata-admin/metadata-form-i18n.ts. Tests: preview/__tests__/DraftChangesPanel.namedChanges-27835, .generatedGroup-25890, .protectionEnvelope-12594 and .groupHeading-13221.
    • Load error: ui/packages/react/src/utils/error-message.ts (one shared answered-vs-unanswered helper, lifted from RelatedList's serverSentence rule), react/src/index.ts (its export) and utils/error-message.test.ts. Also ui/packages/plugin-list/src/ListView.tsx with new test src/__tests__/ListView.loadErrorKind.test.tsx, ui/packages/plugin-detail/src/RelatedList.tsx (the local rule replaced by the shared helper), app-shell/src/views/RecordDetailView.tsx with RecordDetailView.recordReadFailure-11902.test.tsx, and app-shell/src/views/PageView.tsx with __tests__/PageView.appPageRecord-12931.test.tsx.
    • The ten ui/packages/i18n/src/locales/*.ts packs: the preview.changes.typeCount.object_extension count family and preview.changes.detailNewItem. No key is removed.
    • .changeset/29704-plain-publish-sheet-and-load-errors.md, with patch bumps for app-shell, react, plugin-list, plugin-detail and i18n.

    ⛔ Out: the console route's RouteObjectReadFailed (AppContent.tsx, MetadataProvider.tsx, appObjectScope.ts). Its defect is by reading, not measured. The fix would carry the error through MetadataProvider's by-name read state, and appObjectScope.ts is the landing site of seat 2's #29681 and #29552. The seat files it as a separate card.

    Clause-②: yes (widening) — new i18n keys and one new @object-ui/react export. The dev runs scripts/pm/clause2-line.mjs on the diff, and the seat amends again if its output differs.
    Metadata-protocol: none

    Serial: DraftChangesPanel.tsx is the sheet that seat 1's #29691 edits, on branch claude/project-thread-pkn482. Seat 1 edits the props tail, a new export, the destructure and the header. This card edits TYPE_COUNT, EntryDetail, KeyRow and the imports. In the packs, seat 1 adds at changes.title and this card at detailNewKeys/typeCount. The dev merges main right before pr_create.

  5. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · zhuangjianguo · session_01QsR2jVQc3uTU5ZhjP31Sh8
    os-dev-report

  6. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB

    Landed · 2026-11-03T05:09Z

    Probe Reading
    PR #29780 merged through the queue at 2026-11-03T05:07Z, 69dbb3cc. The seat ACCEPT is 6595631277, and the director's same-head PASS is 6595471560 on eae9d624.
    Card #29704 closed (completed) by that merge through Fixes #29704. No other card was closed by the body.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:studioChanging a running app without code — authoring, publish, docs and the portaldomain:uiDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions