Skip to content

client: a read-only window's face-to-face group settings names no Bot, and drops who answers and the working folder #2492

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: 409e1e48861444abbdd25c0c59312b04
Branch: dev/3-face-locked-seats
Base: 924f623
At: 2026-11-05T02:33:21Z

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

Written-by: FlyBot Lead

What a user sees

In a read-only (locked) window the Settings page of a face-to-face group room draws every person with the hint Human and never names that person's Bot. The same page in a writable window names them (Ann (you)Chief, BobWriter). The page's own header still counts the Bots (2 people · 2 Bots), so the page contradicts itself.

The same read-only branch also drops two facts the writable page states: who answers (Who answers) and the room's working folder (Working folder).

Reproduction (live main 924f6235)

The probe imports core/src/client/group-settings.js directly under Node 22 (module.register replaces only react / react-dom / @deepseek-ai/dsh-client-ui-primitives), so it needs no esbuild:

# PROBE_FACE_LOCKED_TEXT "Ops2 people · 2 Bots…Members · 2…Ann (you)Human…BobHuman"
# PROBE_FACE_HAS_CHIEF false HAS_WRITER false
# PROBE_FACE_ROWS ["Ann (you)Human","BobHuman"]
# CONTROL_WRITABLE_HAS_CHIEF true HAS_WRITER true ROWS ["Ann (you)Chief","BobWriter"]

Anchors on live main 924f62356a1a7b045b27c5361db52183c3dc63c7:

  • core/src/client/group-settings.js:196 — read-only face branch: people.map(person => h(Row, { …, hint: t('Human') })); each person.seats is thrown away.
  • group-settings.js:238-239 — the writable face branch draws FacePersonRow, which at :85-97 maps person.seats to the Bot rows; that is the text the read-only page is missing.
  • core/src/client/face-seats.js:63-77 — facePeople() already returns each person with their seats, and faceRoomCount counts faceSeats().length for the 2 Bots in the header. The data is present; only the read-only rendering drops it.
  • group-settings.js:183-184 — mode / modeHint are computed before the read-only branch returns; :226-237 are the writable Who answers and Working folder cards.
  • group-settings.js:322-336 (P-570, in flight) adds a group-create guard to the same file but a different component (NewGroupForm), so this issue's surface is the read-only return block only.

Why the merged test stays green: core/test/settings-readonly-pages.test.js has no face-to-face fixture (zero origin in the file), so its read-only page facts are asserted through the non-face branch.

Expected

  1. A read-only face-to-face room names each person's Bot(s) under that person, exactly as the writable window does — and the members card gains no control (no button, input, switch or segmented control; text rows only).
  2. The same read-only page states who answers and the room's working folder (or the existing Not set wording) as text rows, agreeing with the writable page's values; non-face rooms keep exactly today's read-only page.
  3. A writable window is byte-for-byte unchanged.
  4. core/test/settings-readonly-pages.test.js gains a face-to-face fixture (two people, one Bot each, locked), so the next change to this branch cannot silently lose the names again — that fixture is the red-first test.

Scope

  • core/src/client/group-settings.js — the read-only return block only.
  • core/src/client/i18n.js — only if a new key is unavoidable; prefer reusing the labels the writable branch already uses.
  • core/test/settings-readonly-pages.test.js + the new face fixture, docs/subsystems/core-client.md if the behaviour sentence there needs it, and one changelog.d/ fragment.
  • The client bundle regenerates as usual (core/client.js, patches/ds-bot/0008 and the touched patch files) — client single lane, one PR at a time.

Red-first is required: on a clean base the new fixture must fail on the missing Bot names and on the missing answers/folder rows before any source edit.

Tier T1 (core/src/client/**, tests, docs, patches, changelog).

Dedupe on live main 924f6235 plus closed issues: FacePersonRow 0 hits; face read-only hits are all closed read-only-family issues (#2228, #2229, #2233, #2306, #2310, #2381, #2387, #2391, #2457, #2278) and none is this page — the drawer and the room overview are different surfaces. No open issue and no live claim cover it.

Owner: Dev-3
Reviewer: Birfy

Activity

  1. HugoXK commented on Nov 5, 2026

    @HugoXK
    ContributorAuthor

    Release

    Written-by: FlyBot Lead
    Released: 409e1e48861444abbdd25c0c59312b04
    Reason: merged 550fb3a (#2505)
    At: 2026-11-05T05:46:18Z

  2. added a commit that references this issue on Nov 5, 2026
    550fb3a
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