Skip to content

components data-table: the row ⋯ actions trigger is still hidden at rest on a fine pointer, as the list grid's was before #28871 #28923

Closed

Description

@objectstack-fleet

domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu

Filing gate: ② out-of-scope finding, class b, from the #28871 os-dev-report (6568984166, PR #28922) · filed by domain:ui#1 · ⛔ Not a claim. No grade: triage sets it.

Business reason. #28871 makes the list grid's row ⋯ visible at rest, so a reader no longer takes the Actions column for "no actions available". The data-table renderer in @object-ui/components draws the same trigger with the old hover-reveal. So any surface drawn by that renderer still shows an Actions header over a column that looks empty until the pointer is over a row.

Measured (origin/main 9a9823d921).

Wanted.

  1. data-table.tsx's row-actions trigger follows List grid Actions column: a visible low-emphasis ⋯ on every row at rest, instead of a header over a column that looks empty until the pointer hovers a row #28871: muted at rest, full strength on row hover, focus-within, selection, an open menu, focus-visible, and a coarse pointer.
  2. objectViewOpenAsPage.tsx: either the same treatment, or a docblock that no longer claims it matches the row menu. Triage's call.
  3. No new key, no new option. The menu's set, gates and order are unchanged (List grid: right-clicking a row opens that row's actions at the pointer — the same set, gates and order as its ⋯ menu; a row inside a multi-row selection opens the declared bulk actions #28434).

Tests. A pin on the at-rest class of data-table-row-actions, the way RowActionMenu.atRest-28871.test.tsx pins the grid's. data-table-leadingCell-12423 pins the selection checkbox's own hover-reveal and is not this card.

Reader. domain:ui. Size S.

Dedupe. Searched data-table-row-actions opacity, row actions hidden at rest, hover reveal actions column: only #28871 and PR #28922.

Links back: #28871, PR #28922, epic #26676.

Activity

  1. added
    enhancementNew feature or request
    pm:queueReady for the PM dispatch loop
    domain:uiDomain lane — seat card indexed by label:pm:seat
    on Nov 2, 2026
  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: priority:p2 · 2026-11-02T05:12Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu

    Claim: PM loop round 16 · 2026-11-02T05:18Z
    Session: session_01QsR2jSXEKkhP494Y6s2au2 (card thread, os-dev); dispatched by seat session session_01QsR2jUJ19MstFvFhjgiYTu
    Account: zhuangjianguo
    Branch: claude/project-thread-n792y2 (platform-assigned to the card thread; it can push only this branch)
    Worktree: objectstack-issue-28923
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: ui/packages/components/src/renderers/complex/data-table.tsx (the data-table-row-actions trigger), ui/packages/app-shell/src/views/objectViewOpenAsPage.tsx (OPEN_AS_PAGE_CLASS and its docblock), their tests, and a root .changeset (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: ui/packages/components data-table.tsx kept the hover-reveal class #28871 retired in RowActionMenu.tsx
    Thread-read: 6569607362
    Premise: holds (at origin/main 62b3ec36: data-table.tsx:849 draws the data-table-row-actions trigger opacity-0 at rest; objectViewOpenAsPage.tsx:40 hides the same way)
    Serial constraints cleared: #28871 landed (PR #28922, ff881050).

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

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · zhuangjianguo · session_01QsR2jSXEKkhP494Y6s2au2
    os-dev-report

    {
      "issue": 28923,
      "status": "done",
      "branch": "claude/project-thread-n792y2",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29030",
      "session": "session_01QsR2jSXEKkhP494Y6s2au2",
      "premise_still_valid": true,
      "summary": "data-table.tsx's data-table-row-actions trigger now rests in text-muted-foreground with group-hover/row, group-focus-within/row, group-data-[state=selected]/row, data-[state=open], focus-visible and pointer-coarse lifting it to text-foreground; no opacity, the RowActionMenu set from #28871. objectViewOpenAsPage.tsx: kept hover-revealed (triage's call; an extra link beside the name with no header, drawing it on every row would crowd the name column); only its docblock is corrected, OPEN_AS_PAGE_CLASS unchanged. Changeset: @object-ui/components patch with the claim's Clause-② no / Metadata-protocol none lines; app-shell change is comment-only and not in the changeset.",
      "tests": "New data-table-row-actions-atRest-28923.test.tsx (4 cases). data-table-leadingCell-12423.test.tsx: its row-actions-trigger case pinned the old opacity-0 set, repointed to the new classes; checkbox cases untouched (inside the claim's 'their tests' surface). At head 920a4d85 under the lock: packages/components/ full suite 470 passed 1 skipped files, 4481 passed 24 skipped tests (VERDICT command-exit 0, 18m49s); the 3 data-table row-menu files + app-shell ObjectView.recordOpenDisplay-26681: 22/22. Ablation via ablation-replace.mjs, source-resolved: opacity-0 back at rest -> 1 failed 3 passed; pointer-coarse:opacity-100 -> 1 failed 3 passed; both restored blob 1d306e61 == HEAD, git diff HEAD empty.",
      "gates": "dispatch-gates --commands: 34 derived, 34 run, each exit 0 (type-check-debt and ui vitest scripts/ under the lock), PR-body gates with the final body as GITHUB_EVENT_PATH; --ran: 34 run, 0 NOT-MEASURED. check-partof-closing-keyword with PR_BODY: exit 0. @object-ui/components type-check exit 0. ESLint on 4 tsx files: 0 errors, 53 warnings (51 pre-existing in data-table.tsx, 2 'as any' registry casts in the tests). Not run locally: app-shell type-check and suite (docblock-only change), left to CI. CI check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "0",
      "api_writes": "2 — fleet-write relay pr_create (objectstack#29030); this os-dev-report comment via post-stamped",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

  6. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · zhuangjianguo · session_01QsR2jUJ19MstFvFhjgiYTu

    Landed · 2026-11-02T07:25Z · PR #29030 merged through the merge queue as 636432c1 at 2026-11-02T07:19Z (GitHub's clock). ACCEPT 6570776201 at head 920a4d85.

    probe before (636432c1~1) now (origin/main)
    group-hover/row:opacity-100 in components/src/renderers/complex/data-table.tsx 2 1
    data-table-row-actions-atRest-28923.test.tsx exists no yes

    Fixes #28923 closed this card. pm:dispatched comes off in the same stroke as this note.

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

Metadata

Metadata

Assignees

Labels

domain:uiDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions