Skip to content

Studio package-create UX dogfood follow-ups (2026-07 browser walkthrough) #2615

Description

@os-zhuang

Tracking issue for the findings of the Studio "create a package and build in it" browser dogfood — see the full audit in docs/audits/2026-07-studio-package-create-ux-dogfood.md (added by #2609). Console tested at the pinned objectui build 7782698, so none of these are stale-bundle artifacts.

The end-to-end loop (package → object → field → record → app → nav → publish → run) closes with zero code; these are the friction points found along the way, ordered by user pain.

P1

  • Read-only packages accept edit gestures client-side, fail late. "Add field" mutates the canvas (16→17 fields) and "New object" opens the create form on a Read-only package; the server rejects only at write time. Client should disable/hide edit affordances on read-only packages (courtesy gating, ADR-0057 D10). (objectui console)
  • Read-only rejection copy cites an internal ADR path ("…See docs/adr/0070-package-first-authoring.md"). Rewrite as user-facing remediation ("switch to or create a writable package"). (framework — dispatcher error message)
  • Field API name doesn't follow the label before first save. New field stays field_2 after relabeling to Status; the data column is field_2 forever. Sync API name from label until first save, then lock — matching object/app identifier behavior. (objectui console)
  • One-click Publish with no confirmation — releases all package drafts atomically straight from the button. Show the pending-changes list with a confirm step. (objectui console)
  • Changes panel has no detail — only repair_ticket · New; no field-level diff or drill-in to review before publishing. (objectui console)

P2

  • Mixed-language screens: English chrome with embedded Chinese strings (添加字段 / 未分组 / 请选择…) and a fully-Chinese Studio landing next to an English Home. Route all studio strings through the same locale resolution. (objectui console)
  • New-package wizard ergonomics: no package-ID suggestion from the name (object/app identifiers do get one); CJK names produce no suggestion at all; illegal characters silently stripped (bad id!!badid); disabled create button with no inline hint about the reverse-domain format. (objectui console)
  • New apps scaffold no navigation — freshly created app has zero nav items; offer "add existing objects as menu items" in the create-app popover. (objectui console)

P3

  • Duplicated "Actions" column in the Studio Records grid (data column + pinned row-actions column). (objectui console)
  • Record-create verb inconsistency: Studio says Create (adjacent to Create app), runtime says New. (objectui console)
  • Cold /_console load shows a bare unbranded "Loading…" for ~8s before the login redirect. (objectui console)
  • Picklist value-editor inputs truncate their own placeholders ("valu" / "Labe") and CJK labels (待处理 → 待处…). (objectui console)
  • Read-only toast can fire twice for one gesture; no "last saved" timestamp anywhere after Save draft. (objectui console)

Most items are console-side (objectui); the error-copy item is framework-side. Items landing in objectui should get mirrored issues there when picked up.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DHQc5BdGhTzPfazex3vWdt

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions