Skip to content

Project board overlay has no scrim and does not cover the shell #1750

Closed

Description

@Birfy

Summary

Opening Project board shows a short dialog (~400px tall on a ~1100px viewport) with no scrim. The left bot tree and workflows remain visible directly under the task rows and read like extra board rows.

Repro (local tip 4916bd5f / v0.2.14)

  1. Bind a Bot to a Project and open Tasks/Board → Project board.
  2. Look at the overlay vs the shell behind it (sidebar bots / workflows).

Expected

Same pattern as other full-pane overlays (Tasks/kanban, settings): a scrim that dims/blocks the shell, and a pane tall enough that board rows are not mixed with the UI underneath.

Actual

ProjectBoardOverlay renders only:

h('div', { className: 'bt-overlay bt-project-overlay', role: 'dialog', ... },
  h('button', { className: 'bt-project-close', ... }),
  h(ProjectBoardPane, ...))

No bt-scrim sibling (unlike kanban.js / settings). PROJECT_BOARD_CSS styles the board content but does not define a covering layer for .bt-project-overlay.

Impact

On a normal desktop viewport the Project board looks incomplete and can be misread as listing Reviewer/Coder/Writer/Planner (or workflows) as project rows.

Screenshot

Local: ui-shots/fail-03-project-board-overlay.png

Activity

  1. Birfy commented on Oct 30, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Triage

    Label set: agent-ready (no previous state label to remove).

    Design conflict closed. core/src/client/kanban.js:418 already puts a bt-scrim sibling in front of its board dialog (bt-mem.bt-board, size min(1080px,calc(100vw - 32px)) x min(760px,calc(100vh - 48px))), and core/src/client/styles.js:463-471 owns .bt-scrim with the #1347 rule that the scrim separates the two surfaces. #1710 (owner-approved Stage 2, merged) settles that the Project board is one overlay view; the missing scrim is a defect in that overlay, not a design call.

    Files to change

    Red first (fails at main 090256a1)
    Add a test that reads src/client/project-board.js and asserts (a) the overlay renders className: 'bt-scrim' with onClick: close beside the dialog, and (b) .bt-project-overlay carries position:fixed;inset:0. Both fail today: grep -n 'bt-project-overlay' core/src/client/styles.js is empty and the overlay has no scrim sibling.

    Acceptance
    cd core && node --test test/ui-clickthrough.test.js (then npm test; npm run verify at the repo root): the new test is red at 090256a1, green after the fix; a scrim click closes the overlay and the shell behind it is dimmed.

  2. added
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 30, 2026
  3. self-assigned this
    on Oct 30, 2026
  4. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 30, 2026
  5. Birfy commented on Oct 30, 2026

    @Birfy
    CollaboratorAuthor

    Written-by: Dev

    Claimed #1750 — first step: add the bt-scrim sibling to ProjectBoardOverlay and the covering .bt-project-overlay surface in core/src/client/project-board.js, with the red-first assertion in core/test/ui-clickthrough.test.js.

    Branch: dev/1750-project-board-scrim (from main 090256a1).

  6. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 30, 2026
  7. removed
    agent-readyMaintainer-approved spec: an agent may take it. Only maintainers set this; never in a template
    on Oct 30, 2026
  8. added a commit that references this issue on Oct 30, 2026
    0cdd765
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions