Skip to content

feat(studio): long flow-node help opens behind Learn more; list column descriptions are help, not placeholders - #27832

Merged
objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/project-thread-9nt6x7
Oct 30, 2026
Merged

objectstack-fleet[bot] merged 4 commits into
mainfrom
claude/project-thread-9nt6x7

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe

Requested by Bill · project thread

维护者速读

Part of #27356 (row 15, hotcrm#2320 Studio S4: node inspector help and placeholder)
Clause-②: no
Metadata-protocol: none

What changes

Row 15 has two halves. This PR is the Studio half: how help is shown. The words half is not Studio's (see Acceptance notes).

  • Long help opens clamped. FlowFieldHelp (new, views/metadata-admin/inspectors/) renders the help line under a flow inspector field. Help longer than FLOW_HELP_CLAMP_CHARS (120) opens clamped to two lines (line-clamp-2) with a Learn more button (aria-expanded, aria-controls); Show less folds it again. Shorter help renders in full with no button, as before. The full text stays in the DOM in both states. FlowNodeConfigField uses it for every field's help (its only help site).
  • Column descriptions are help, not placeholders. jsonSchemaToFlowFields used to put an objectList column's schema description into the column's placeholder. On the approval node's Approvers list this put the served organization description ("ADR-0105 D9 — organization whose directory resolves this approver: …") into the input as a cut-off placeholder, and the served value description likewise. FlowConfigColumn gains help; both columnsFor sites (scalar columns and nested-list columns) now write the description there, and FlowObjectListField shows it under the column with FlowFieldHelp, in the default row layout, the decision branch cards and under nested list columns. A hand-written column placeholder (the offline table) is unchanged.
  • i18n. Two keys added to the studio namespace, en and zh: engine.inspector.flowNode.help.learnMore, engine.inspector.flowNode.help.showLess. No key renamed.

Boundary: the Add-node menu is #27521 row 39 and is not touched here; this PR changes the node inspector only.

Tests

  • New FlowFieldHelp.learnMore-27356.test.tsx (4 tests). The column half reads the installed contract: z.toJSONSchema(ApprovalNodeConfigSchema, { io: 'input' }) through jsonSchemaToFlowFields, then asserts the organization column carries the description as help and no placeholder, and that a rendered Approvers row has no element whose placeholder is that description while a help line shows it. The clamp half renders FlowNodeConfigField with a long and a short help.
  • json-schema-to-fields.test.ts: the approver value column assertion moved from placeholder to help (plus placeholder undefined). That line pinned the behaviour this PR changes.
Readings (head 491ca52 for gates; tests on bc2046a, merge of origin/main touched none of these packages)
  • New file: 4/4 passed.
  • Every ui test file naming FlowNodeConfigField, FlowObjectListField, json-schema-to-fields, FlowNodeInspector or FlowFieldHelp (72 files): 72 passed, 1065 passed / 1 skipped.
  • pnpm --filter @object-ui/app-shell --filter @object-ui/i18n run type-check: both Done, exit 0 (lock VERDICT command-exit 0).
  • Ablation 1, through scripts/ablation-replace.mjs (anchor 1 to 0): the scalar column's help: prop.description back to placeholder: prop.description: 2 failed / 2 passed (both column tests red); restored blob = HEAD blob f12818610a37, git diff HEAD empty.
  • Ablation 2: const long = text.length > FLOW_HELP_CLAMP_CHARS; to const long = false;: 1 failed / 3 passed (the clamp test red); restored blob = HEAD blob c4b6a6f0cf77, git diff HEAD empty.
  • vitest resolves @object-ui/* to source here, so neither ablation needed a rebuild.

Acceptance notes

Verification

On head 491ca521: dispatch-gates --commands derived 34 families for this diff; all 34 were run locally, each exit 0, and --ran reconciled 34 run, 0 NOT-MEASURED, 0 UNRUN (node scripts/check-sdui-manifest.mjs among them). check:new-line-citations: 0 new. CI check-runs were in progress when this was opened.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe

席位核对

ACCEPT · head 491ca521ddfe983a4ed6fb7f9467cdfec7c8bc96 · 2026-10-30T01:26Z


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant