Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

Datasource form's enum selects show raw option values (autoMigrate offers "off" / "safe") #13353

Closed

Description

@objectstack-fleet

立卡门 ① — a user-visible defect with a named landing point and a reach.

Reach: in Setup → Datasources → New datasource (sqlite / postgres / mysql), the autoMigrate select offers the raw values off and safe as its option text. It was re-read by the objectstack-ai/objectstack#25332 dev (os-dev-report out_of_scope_findings, class a). That PR gave the property a title but cannot give its options labels.

Landing point: packages/app-shell/src/views/.../datasource/DatasourceResourcePage.tsx maps a JSON Schema property's enum to SelectItem text with String(opt). The driver-config JSON Schema carries no per-option label. The usual JSON Schema carriers would be oneOf: [{ const, title }] or an x-enumNames-style annotation, and neither is produced or read today.

Expected: each option shows a readable label. This needs a declared option-label carrier in the driver-config schema (a spec decision, objectstack packages/spec/src/data/driver/*.zod.ts) and the renderer reading it, with the raw value as the fallback only when no label is declared.

Who acts: first a spec-lane decision on the carrier, then an objectui renderer dev for the datasource config form. If the spec half is ruled, it is a cross-repo pair.

Dedupe: objectui issue search "datasource form enum select shows raw option values autoMigrate off safe labels" → 3 hits, none matching. The nearest was #11252 (closed; the hard-coded "Select…" placeholder, a different defect).

Found by: objectstack-ai/objectstack#25332 (domain:engine seat 1, os-tesla, session_014Hse9cj2i4o5UAVrd21NKr).


Generated by Claude Code

Activity

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

    @objectstack-fleet
    ContributorAuthor

    Graded · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-23T06:56Z

    p3, domain:ui, area:studio, bug, pm:queue.

    • The default scope needs no protocol change. When a JSON Schema enum carries no declared option label, the datasource form's select shows a readable label, built in the renderer from the raw value (off → "Off", safe → "Safe"). The raw value stays what is saved. The property's description already explains the values.
    • The carrier is not taken here. No option-label carrier exists today: objectstack main has no x-enumNames, enumNames or oneOf/const/title emission for driver config. Adding one is a metadata-protocol addition, and that is the maintainer's to rule. It is raised in triage's R604 report. If the maintainer rules for it, the objectstack spec card is filed then, and this card reads the declared label first, falling back to the readable value.
    • Done when (default scope): no select in the datasource form shows a bare lowercase enum value as its option text. A renderer test with an enum that has no label.

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 · 2026-10-25T03:59Z
    Session: session_01XWGTsmqrtrt1Zqh1ioWqsT (the domain:ui seat 4 session; an in-seat mode:subagent dev implements)
    Account: os-elon-musk
    Branch: claude/project-thread-zcz7ll (the seat's platform-assigned branch, restarted from objectui main 85b6a48 after PR #13493 merged)
    Worktree: objectui-issue-13353
    Domain: domain:ui
    Seat: domain:ui#4
    File surface: packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx (the JSON Schema enum select's option text); its tests; .changeset/13353-*.md (stop on breach; explain in the report)
    Container & model: S, mode:subagent, model: default tier (no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none (triage's default scope: no option-label carrier is added)
    Responsibility: the datasource form shows raw enum values (off / safe) as option text | a readable label built in the renderer from the raw value; the saved value is unchanged | every admin creating or editing a datasource
    Thread-read: 6359343643
    Premise: holds — on objectui main 85b6a48, DatasourceResourcePage.tsx:595 renders {String(opt)} as each SelectItem's text
    Serial constraints cleared: objectstack-ai/objectstack#25916's second pass excludes datasource/**; seat 1's #13442 / #13449 / #13450 declare no metadata-admin/** path
    Writes: all PR, comment and label writes go only through objectstack's relay (scripts/pm/fleet-write); never write with GitHub MCP.

    • Done when (triage): no select in the datasource form shows a bare lowercase enum value as its option text; a renderer test with an enum that has no label. The value stays the raw enum value.
    • If the maintainer later rules for a carrier (oneOf/const/title or similar), the declared label is read first; that is not this card.
  4. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #13499 comment 6393398051 · domain:ui#4 · 2026-10-25T04:24Z. Handed to the merge queue under the maintainer's standing word; Fixes, so this closes on merge.

  5. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:ui#4 · 2026-10-25T04:33Z

    PR #13499 merged at 2026-10-25T04:32Z, merge commit ebd20ec35dec4417f6d4c8f5140033e5e4955077. The card closed completed through Fixes; pm:dispatched comes off in this stroke. objectui merges publish nothing (the changesets release is a human act).


    Generated by Claude Code

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 portalbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions