Skip to content

record page read mode truncates text instead of wrapping: a case subject reads "Data export timing out for large...", an article summary "A five-minute tour of accounts,...", and the highlights strip shows SLA due as "2026/10/2…" #25897

Closed

Description

@os-steve

Filing gate ① a user-visible defect with a named landing site. Batch-of: 2026-10-25 browser pass on @objectstack/* 18.1.0 (23 cards: hotcrm 10, objectui 10, objectstack 3). Filed by the maintainer's account (os-steve) from the HotCRM pass driven in session session_01AwpXhq2nFKU6J7GmbCEmZu; ⛔ not a claim. Grade and routing are objectui triage's.

What is seen (HotCRM on @objectstack/console 18.1.0, 1440×900)

place field shown full value
case record, 工单信息 section, read mode subject (text) Data export timing out for large... Data export timing out for large datasets
knowledge article, 文章信息 section summary (textarea) A five-minute tour of accounts,... the whole two-line summary
case record, highlights strip sla_due_date (datetime) 2026/10/2… 2026/10/26 上午10:00
case record, page title display_title CASE-00002 · Data export timing out for large … (title truncation is fine; the body field is not)

The section field sits in a two-column grid with room to its right; the value is clipped to one line with an ellipsis instead of wrapping. On the highlight strip the date loses its day. 52-case-tall.png, 57-article-tall.png.

reach: the public UI, measured once as the dev admin.

Expected

Dedupe

MCP search_issues objectui "record detail text field truncated with ellipsis instead of wrapping" → 6 hits: objectstack-ai/objectui#11577 (closed, textarea one line in read mode), objectstack-ai/objectui#11684 (closed, drawer highlight truncation), objectstack-ai/objectui#12506, objectstack-ai/objectui#13149, objectstack-ai/objectui#12618, objectstack-ai/objectui#13292 — none open, none covers the plain-text section field or the datetime highlight. Report: REPORT.md §3.6.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Oct 25, 2026
  2. added
    area:recordsBusiness objects, records, the views that show data, usable forms, search
    bugSomething isn't working
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Oct 25, 2026
  3. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    Contributor

    Triage: first grade — bug · priority:p2 · domain:ui · area:records · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-25T12:54Z

    ⛔ Not a claim, ⛔ not a dispatch. finding comes off.

    • Read mode wraps text-like values; truncation only where a layout declares it, with the full value reachable.

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Transferred 2026-10-26T03:02Z from objectstack-ai/objectui#13517, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the ui/ workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.

    Paths. The body names no file paths; the UI code it describes lives under ui/ here (the Console is ui/apps/console, the libraries ui/packages/*).

    References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#11577, objectstack-ai/objectui#11684, objectstack-ai/objectui#12506, objectstack-ai/objectui#12618, objectstack-ai/objectui#13149, objectstack-ai/objectui#13292.

    No stale pm:dispatched or assignee to strip.


    Generated by Claude Code

  5. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Oct 26, 2026
  6. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round 1
    Session: session_017iXjUm1rujwDk7f3KT1Pkk (seat); implementing card thread session_01TQ7TyQSeddwHoL4mJ6wUyg
    Account: os-steve
    Branch: claude/project-thread-wa36vd (platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record. Wording amended by the seat: an issue-shaped placeholder here was read by the Closing-Target Claim Guard as a second claimed branch)
    Worktree: the card thread's own container
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: ui/packages/plugin-detail/src/DetailSection.tsx (read-mode value render), ui/packages/plugin-detail/src/HeaderHighlight.tsx (~410-440), and if needed ui/packages/fields/src/index.tsx DateTimeCellRenderer (~1230-1345) only; tests (stop on breach; explain in the report). ⛔ ui/.github/** and the root .github/workflows/ci.yml are out of bounds (maintainer's word, ui-merge epic in flight). Changeset in the root .changeset/.
    Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a: renderer defect in ui/, the producing code is the cited ui file; no platform path covers it; reached through the public Console
    Thread-read: 6407263539
    Premise: holds (read-only premise check at origin/main 59d9181, 2026-10-26T06:55Z; spot-checked by the seat)
    Serial constraints cleared: none: no open PR touches these files (open-PR file scan 2026-10-26T06:33Z); no in-flight domain:ui claim on them

    Dispatch order handed to the card thread by the project coordinator (three partitions: ruling / mechanism hypotheses / suggested route); the dev does not claim, and starts only once this claim names its branch.

  7. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    os-dev-report

    {
      "issue": 25897,
      "status": "done",
      "branch": "claude/project-thread-wa36vd",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/25998",
      "session": "session_01TQ7TyQSeddwHoL4mJ6wUyg",
      "premise_still_valid": true,
      "summary": "record:details read mode: every value the cell table sends to the grid's one-line TextCellRenderer (text, code, qrcode, time, auto_number) now reads through TextField's own read display beside the existing textarea branch, matched by renderer identity so a host-registered face is kept; TruncatedText and grid cells are unchanged. Highlights strip: date and datetime chips join the wide display types on the 16rem floor (Chromium: compact datetime faces 151-164px and the zh-CN date face 114px overran the 9rem chip's ~103px value box). Premise: textarea already wraps on main (objectui#11577, released 18.0.0), so the card's article-summary reading does not reproduce for a textarea-declared field; text is covered. Route deviation: the 'let the cell grow' arm, not format shortening; DateTimeCellRenderer untouched. date added as a bounded same-class fix (same file, same rule).",
      "tests": "ui/: pnpm exec vitest run packages/plugin-detail/ -> Test Files 303 passed | 1 skipped (304), Tests 2822 passed | 18 skipped (lock VERDICT command-exit 0). pnpm --filter @object-ui/plugin-detail run type-check -> exit 0, 0 error TS. Reverse verification: fix committed at 94b2d398, DetailSection.tsx + HeaderHighlight.tsx restored from its parent (grep counts of the new lines 0 0), 3 files -> 8 failed | 11 passed, the 8 being exactly the new behaviour assertions, all controls green; restored with git checkout HEAD, git diff HEAD empty. Both are src-resolved tests (no dist), so no rebuild leg.",
      "gates": "at f1aa0ba6: dispatch-gates --commands derived 46 commands, all run, each exit 0, plus node scripts/check-changeset-fixed.mjs (roster under .changeset) exit 0. --ran with exit codes: '46 derived famil(ies) accounted for, 46 run, 0 NOT-MEASURED (a DERIVED zero)'. check-sdui-manifest was red at 9336bc05 (registry source hash), fixed by node scripts/gen-sdui-manifest-node.mjs in f1aa0ba6 (only scripts/sdui-manifest.record.json moved; sdui.manifest.json byte-identical). PR check-runs: in_progress at report time (not awaited per os-dev).",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "4 — mcp__github__issue_read x4 (get, get_comments x2, get); no write tools",
      "api_writes": "2 — relay dispatch fw-20261026T082728Z-7c4c61: pr_create (POST pulls draft + POST issues/25998/assignees, read-back identical 5963 bytes, assignee os-steve); this os-dev-report comment via post-stamped (POST issues/25897/comments)",
      "files_changed": [
        ".changeset/25897-record-read-mode-wraps-text.md",
        "scripts/sdui-manifest.record.json",
        "ui/packages/plugin-detail/src/DetailSection.tsx",
        "ui/packages/plugin-detail/src/HeaderHighlight.tsx",
        "ui/packages/plugin-detail/src/__tests__/HeaderHighlight.dateWideFloor-25897.test.tsx",
        "ui/packages/plugin-detail/src/renderers/__tests__/record-details.textReadWraps-25897.test.tsx",
        "ui/packages/plugin-detail/src/renderers/__tests__/record-details.textareaReadDisplay-11577.test.tsx"
      ],
      "deviations": [
        "file surface: scripts/sdui-manifest.record.json is outside the Claim's surface; check-sdui-manifest reds on any ui/packages source edit, so the re-record is mechanically required. Seat: please add it to the Claim's file surface.",
        "route: 'let the cell grow' arm instead of format shortening; DateTimeCellRenderer and fields/src/index.tsx not touched.",
        "bounded in-place fix: date chips also take the 16rem floor (zh-CN date face 114px vs ~103px value box); four conditions held, named in the PR body.",
        "test control reversed: record-details.textareaReadDisplay-11577 pinned 'text keeps TextCellRenderer', which the ruling reverses; it now pins text reads TextField's display, never TextAreaField's.",
        "commit trailers: model-free pair per AGENTS.md, not the harness's model-named Co-Authored-By."
      ],
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none — noted, not filed: a highlights row narrower than 16rem at sm+ can still truncate a date chip (Acceptance notes)",
        "carrier: none — noted, not filed: link cells (email/url/phone) in a details section keep their declared clip box with full-value title"
      ]
    }

    Generated by Claude Code

  8. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    Contributor

    Claim amendment (seat domain:ui#1, 2026-10-26T08:30Z): the file surface of the claim above adds scripts/sdui-manifest.record.json (registrySourcesSha256 only), the derived hash check-sdui-manifest requires after any ui registry source edit. The seat treats it as a generated file on every ui card. Everything else in the claim is unchanged.

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

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:uiDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions