feat(studio): package-id wizard feedback + P3 dogfood polish#2275
Merged
Conversation
…mat hint, CJK fallback P2 wizard-ergonomics finding from the Studio package-create dogfood (objectstack-ai/framework#2615): the three package wizards (switcher create, landing create, landing duplicate) silently stripped illegal id characters (`bad id!!` -> `badid`), gave no hint about the reverse-domain format while the create button sat disabled, and a CJK-only name produced no id suggestion with no explanation. Shared PackageIdInput now sanitizes with an explicit "unsupported characters removed" notice, shows the reverse-domain format hint while the id doesn't parse, and PackageIdSuggestionHint tells CJK-named packages to type an id manually. sanitizePackageId extracted to packages-io (unit-tested); en+zh strings added.
…anded splash, picklist layout, save confirmation
Five P3 findings from the Studio package-create dogfood (framework#2615):
- Records grid dropped a field named `actions` from its data columns so it
no longer duplicates the always-pinned row-actions column.
- ObjectView's create button uses console.objectView.new ("New" / 新建),
matching the runtime object pages instead of a hardcoded "Create".
- Console pre-auth loading gate renders the branded LoadingScreen instead of
a bare "Loading…".
- Picklist option-editor rows split into two lines so value/label inputs and
CJK labels stop truncating.
- Data pillar "Save draft" now confirms with a success toast + "last saved"
timestamp, matching the App/Automations pillars.
The "read-only toast fires twice" sub-item was investigated: the data-table
inline editor already guards the Enter+blur pair (skipBlurSaveRef) and
ObjectGrid's Enter-vs-check-button are distinct gestures — no reproducible
double-fire from static analysis, left for the live browser pass.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the remaining Studio package-create UX dogfood items from objectstack-ai/framework#2615 — the last P2 (wizard ergonomics) plus all five P3 polish items. The P1 items and the other two P2 items shipped in #2263, #2271, and #2270.
P2 — package-id wizard feedback
The three package wizards (switcher create, landing create, landing duplicate) now share a
PackageIdInput:bad id!!→badidno longer reads as the input eating keys).com.example.myapp) shows while the id doesn't parse yet, instead of leaving the user staring at a disabled create button.sanitizePackageIdextracted topackages-ioand unit-tested.P3 — polish
actionsis dropped from the grid's data columns so it no longer collides with the always-pinned row-actions column (still editable in the form designer).ObjectView's toolbar create button resolved a hardcoded English "Create"; it now uses the sameconsole.objectView.new("New" / 新建) key as the runtime object pages so Studio and the running app agree.LoadingScreen(logo + product name + step list).The "read-only toast fires twice" P3 sub-item was investigated but not changed: the shared data-table inline editor already guards the Enter+blur commit pair via
skipBlurSaveRef, and ObjectGrid's Enter-vs-✓ are distinct gestures — no reproducible double-fire from static analysis. Touching the shared grid commit path risked regressing the runtime app, so it's left for the live browser dogfood pass.Test plan
PackageIdInput.test.tsx— 8 tests coveringsanitizePackageId(clean id,bad id!!stripped, lowercase-only unflagged, CJK stripped) and the input's notice/hint show-hide behavior.ObjectView.test.tsxcreate-button assertion updated to the shared verb ("New").npx vitest run packages/app-shell— 131 files / 994 tests passing.npx vitest run packages/plugin-view— 58 tests passing.turbo run buildfor app-shell (runstsc) and plugin-view — clean.npx eslinton changed files — 0 errors.Not browser-verified here — the reporter is running a consolidated live dogfood pass over all the merged #2615 fixes.
🤖 Generated with Claude Code
Generated by Claude Code