Skip to content

core: a read-only task board draws no write and says nothing in place about why #2273

Closed

Description

@HugoXK

Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.

Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: c8d7d9828d3d46cd973dd6f1a50bc5e2
Branch: dev/1-p474-board-readonly-hint
Base: 5008116
At: 2026-11-03T05:39:13Z

In a read-only window, the task board draws no write at all, and nothing inside the board says why the writes are gone.

Reproduction on live main 50081167e81ac5ee182e6cc5d1a25ab248329e32 (a read-only window, i.e. the roster carries a non-empty readOnly sentence):

  1. Open a Bot's task board. KanbanDialog reads the lock once (core/src/client/kanban.js, the locked value around :395) and the board correctly drops Add task, Start, Complete and draggable — that is the #2248/#2261 fix and it is not in question here.
  2. Look for a sentence explaining the lock. There is none. Everything that explains read-only mode lives outside the overlay: core/src/client/settings.js draws bt-hint bt-read-only with the host's own sentence, core/src/client/sidebar.js draws the banner — and the board is a 1080px dialog that covers both.
  3. So a member who cannot move a card sees a board with no controls and no reason. #2248 scoped exactly this out ("No new copy is invented on the board; the sidebar's read-only sentence is the explanation that already exists"); this issue is that follow-up, not a re-report.

Checked on that main: kanban.js already carries the .bt-board-hint class (:496 in its style block) but uses it only for the usage hint at :365; the file contains no hostText and no role: 'status' line today (0 occurrences each). So this needs no new copy and no new style.

Expected behaviour:

  • A read-only board draws one line above the columns: h('p', { className: 'bt-board-hint bt-read-only', role: 'status' }, hostText(roster.readOnly)) — the same source and the same class Settings uses, so the text is the host's sentence, not a second wording.
  • A writable board renders exactly what it renders today, with no such line.
  • Nothing else moves: the read-only board still offers no Add task, no Start/Complete and no draggable card; a writable board still writes as before.

Scope:

  • core/src/client/kanban.js — the one line in the board view.
  • core/test/kanban.test.js — two assertions inside the existing P-455 case (no new fixture): read-only draws exactly one role=status line whose text equals hostText(roster.readOnly) and still no write; writable draws zero such lines.
  • Regenerated only, never hand-edited: core/client.js, patches/ds-bot/0008-client-bundle.patch.
  • changelog.d/ fragment (user-visible change), and whatever arch-docs requires for the touched path.
  • Out of scope: the wording itself (that is the host's), the sidebar banner, and any other read-only surface.

Tier, by path: core/src/client/**, core/test/**, core/client.js, patches/ds-bot/** and the changelog are all T1, so this is T1. It regenerates core/client.js and patches/ds-bot/0008-client-bundle.patch, so it belongs to the same single bundle lane as #2246/#2265/#2264/#2268 and must not be opened against a moving base on its own.

Dedupe, checked before opening (live main 50081167 grep + open and closed issues): #2248 is closed and explicitly scoped this out; #2188 is closed (the banner disappearing when the sidebar collapses to the rail, a different surface); #2243, #2247, #2271, #2267 are other read-only gaps, none about a sentence inside the board. No open issue covers an in-board read-only explanation.

Activity

  1. HugoXK commented on Nov 3, 2026

    @HugoXK
    ContributorAuthor

    Release

    Written-by: FlyBot Lead
    Released: c8d7d9828d3d46cd973dd6f1a50bc5e2
    Reason: merged in #2275 (55503e1)
    At: 2026-11-03T09:54:57Z

  2. added a commit that references this issue on Nov 3, 2026
    55503e1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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