Skip to content

Show the Project team on the board: Chief, my agent and the role pool - #1872

Merged
Birfy merged 1 commit into
mainfrom
dev/1860-project-team
Oct 30, 2026
Merged

Birfy merged 1 commit into
mainfrom
dev/1860-project-team

Conversation

@Birfy

@Birfy Birfy commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Written-by: Dev

Fixes #1860
Owner: Dev
Reviewer: Reviewer

What changed

The Project page now carries a Project team block above its cards, fed by the same
project-read record the board already holds: the Project's own Chief (project.chief.botId,
#1859), the assistant that speaks for the caller (project.assistant.botId, #1712) and the role
pool (roles.maintainers / roles.members, Owner derived from ownerUserIds), plus the caller's
own rank and the Can switch to {roles} line from the listing's choices. projectTeamView is
pure; every Bot row is a real button (data-open-bot, Enter/Space too) that closes the board and
opens that chat.

A Project with no Chief, or with the { error } the host records when the spawn failed, keeps the
row, reads Not set and opens nothing — so this slice never waits on #1859. The rank vocabulary
moved to the dependency-free core/src/client/role-labels.js (ROLE_LABELS + roleText), which
projects-nav.js now imports and re-exports, so react-dom stays out of the board-only bundle.
core/client.js and both edited files in patches/ds-bot/ were regenerated, never hand-edited.

Closes the gap in #1860: the three rows did not exist, and none of them could be opened from the panel.

Docs: docs/subsystems/core-client.md updated (owned page, the Project team paragraph plus the
role-labels.js note); one user-visible fragment changelog.d/1860-project-team.added.md.

Ran at this tip:

$ cd core && node --import ./test/harness-resolve.mjs --test test/project-board-panels.test.js
# tests 8, pass 8, fail 0
$ cd core && node scripts/build-client.mjs --check
# exit 0 — client.js matches src/client
$ node scripts/ds-bot-patches.mjs check
# ok 10 patches apply cleanly in order; ok core/ equals ds-bot/ + patches/ds-bot/

Not run: npm run verify end to end (its arch-docs step needs a git diff, and this host has no
git); every other step ran separately in the worktree and is recorded on the issue.

Checkpoint

{"pr": 1872, "claim": "Dev", "issue": 1860, "summary": "The Project board now draws a Project team block above its cards: the Project's own Chief, the assistant that speaks for the caller, and the role pool with the caller's rank, each Bot row a button that opens that chat. It is fed by the one project-read record, so no second listing read. A Chief that is unset, or whose spawn failed, keeps its row and reads Not set. The rank vocabulary moved into a small dependency-free role-labels module so the board bundle stays free of react-dom.", "files": ["core/src/client/project-board.js", "core/src/client/role-labels.js", "core/src/client/projects-nav.js", "core/src/client/i18n.js", "core/client.js", "core/test/project-board-panels.test.js", "docs/subsystems/core-client.md", "changelog.d/1860-project-team.added.md", "patches/ds-bot/0001-core-fixes.patch", "patches/ds-bot/0008-client-bundle.patch", "patches/ds-bot/files/src/client/project-board.js", "patches/ds-bot/files/src/client/role-labels.js"], "checks": {"ran": "cd core && node --import ./test/harness-resolve.mjs --test test/project-board-panels.test.js && node scripts/build-client.mjs --check", "result": "green", "at": "ebfab1c8217920b7e483b0d5e314eb153f4da311"}, "next": "none — ready for review"}

…#1860)

A Project page said nothing about who runs the Project, who speaks for the
caller in it, or which Dev/Review pool serves it, and none of the three could
be opened from the panel. The board now draws a Project team block from the
same project-read record: the Project's own Chief, the assistant, and the role
pool with the caller's own rank, each Bot row opening that chat. A record that
carries no chief keeps the row and reads "not set", so this slice never waits
on #1859.

Fixes #1860
@Birfy Birfy added the agent-pr Pull request opened by an agent label Oct 30, 2026
@Birfy Birfy self-assigned this Oct 30, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit 82305b3 Oct 30, 2026
15 of 16 checks passed
@Birfy
Birfy deleted the dev/1860-project-team branch October 30, 2026 20:28
@github-actions github-actions Bot removed the agent-pr Pull request opened by an agent label Oct 30, 2026
Birfy added a commit that referenced this pull request Oct 30, 2026
…llapsed group

Replayed onto main 82305b3 by Replay: merge #1872 (Project team, #1860) into this branch and keep
both sides of core/src/client/project-board.js — main's Project-team block and this branch's done
group in the same pane — plus both additions in core/src/client/i18n.js and
docs/subsystems/core-client.md; main's core/test/project-board-panels.test.js and role-labels.js
stay as they are, and core/client.js and patches/ds-bot/ are regenerated from the merged core/.
ds-bot-patches check (10 patches, core/ == ds-bot/ + patches), build-client --check, core lint,
arch-docs (19 files) and the affected project-board/i18n/client-bundle tests are green here.
Replayed-by: Replay
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Project team area: the Project Chief, my agent and the role pool in one place, each openable

1 participant