Skip to content

Show every Bot at work in a group as one row with its step - #548

Merged
Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:fix/546-group-status-rows
Oct 20, 2026
Merged

Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:fix/546-group-status-rows

Conversation

@Birfy

@Birfy Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Fixes #546

Owner decision 2026-10-20 20:21: urgent fix of the group status rows.

Root causes

  • Two places, two shapes: members at work in the group were left WorkRows in the member dock (member-status.js), but work elsewhere / overflow went on SummaryLine, a .bt-event line whose justify-content:center pushed it toward the middle/right, and the round's current speaker was excluded from the dock (splitBusy) and drawn instead as a second .bt-activity row inside the transcript (cells.js GroupReplies), without elapsed time.
  • Vague text: rows only had the tool name (workView sent tool), and workPhrase fell back to "On it" for any tool without a phrase.
  • Looks stuck: the only signal over 11 min was the elapsed time next to a phrase that never changed; the summary line and speaker row had no time at all. Rows themselves leave with the turn (host turn/end clears the live entry, client polls work every 1.5 s); the transcript speaker row relied on a separate room-progress poll and is now gone.

Change

  • One place: the member dock. splitBusy puts the speaker first among the rows; GroupReplies no longer draws a pending row. SummaryLine is a .bt-mw-row of the same shape and column with the first worker's elapsed time.
  • Specific text: workView adds step (newest running call's command / pattern / query / url / path, else description; one line, ≤80 chars) to the owner-only work.bots view, not to work.rooms that other members of a shared group read. Rows read Name · Running shell commands: npm test · 11m; a tool without a phrase reads Using <tool>. zh strings added.
  • Docs: core-client "Group member dock (Group in-progress rows sit in two places and say only "On it" #546)", core-host "Work view step (Group in-progress rows sit in two places and say only "On it" #546)"; changelog fragment.

Overlap note: member-status.js, member-status.test.js, group-status.test.js and topics.json (0001-core-fixes) are also touched by the parallel Always-allow approval fix; the edits are in different functions/tests, topics entries are the same three files in the same topic.

Verification (tip in the review comment)

  • New tests red at base b6e89d2 (src reverted, tests kept): 2 fail; green at tip.
  • ARCH_DOCS_BASE=upstream/main TZ=UTC npm run verify → pass (core 1114/1114, plugins all pass, arch-docs OK, patches check OK, build-client check OK); no new lint warnings in touched lines.
  • Smoke: see review comment.
  • Not run: CI package job locally (pack/typecheck/actionlint); visual check in a real browser / Desktop; owner's live instance.

The group's member dock drew members at work here as left rows, but
work elsewhere as a centered event line, and the round's speaker as a
second row in the transcript; rows said only "On it" or the tool's
phrase. Now the dock is the one place: the speaker leads the rows, the
summary line has the rows' shape and time, and each row names the step
the running call acts on (owner-only work.bots step) or the tool.

Fixes ThinkFlowLab#546
@Birfy Birfy added bug Something isn't working agent-pr Pull request opened by an agent area:ui Web/desktop UI and copy labels Oct 20, 2026
@Birfy Birfy self-assigned this Oct 20, 2026
@Birfy

Birfy commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

Self-review (owner's reviewer agent, review-pr; self-PASS per review-policy selfReview). Line-by-line over core/src (cells.js, member-status.js, i18n.js, activity-row.js, styles.js, host turns.js), the tests, docs and patches.

Checked:

  • Consistency: every in-progress Bot row in a group is now a .bt-mw-row in the member dock (speaker first, ≤4 rows), and the summary line has the same shape/column (no .bt-event centering). The transcript draws no working row anymore (GroupReplies pending row and its .bt-activity style removed). {name} started on it stays a centered transcript event line like every other event line (history, not live status).
  • Text: workText = phrase + : step or phrase + …; unknown tool reads Using <tool> (also in sidebar/inbox, which share workPhrase). zh: 使用 {tool}, {action}:{detail}; removed the now-unused {name} is typing….
  • Stale rows: rows come only from the polled work view (1.5 s); host turn/end clears since/tool/calls (step derives from calls, so it goes with tool/result and with the turn, incl. failures — covered by the new host test). The removed speaker row was the one fed by a separate room-progress poll.
  • Privacy: step is only on work.bots (owner-filtered by authz.ownedLive), not on work.rooms, so members of a shared group don't see my Bot's commands. A command can contain sensitive text; it is shown only to the owner, as the approval card already does.
  • Friend DM: ActivityIndicator unchanged (comment only). Face rooms: same GroupReplies/MemberDock path; local Bots' work comes from work.rooms, friends' remote Bots never had a pending row.
  • Red at base b6e89d2 with only the new tests: 2/2 fail; green at tip.

Tip SHA: 8c1e00e
Ran:

  • ARCH_DOCS_BASE=upstream/main TZ=UTC npm run verify → pass (core 1114/1114, plugin suites 312/83/93/93/37/16 pass, arch-docs OK, patches check OK, build-client check OK)
  • new tests at base b6e89d2 (src reverted) → fail 2/2 (expected red)
  • CONTEXT_WINDOW=100000 CHECK_RATIO=0.45 dev/bench.sh smoke 3346 8846 reset && node dev/smoke.mjs smoke 3346 (DSH 0.2.0-rc.2) → pass, 42/42, at a5f0792; the only later commit removes one unused CSS rule (no host change); bench stopped
  • CI at this tip: tests-ok, test, plugins (tree/social/timeline), package → pass
    Not run:
  • visual check in a real browser / DSH Desktop (no screenshot of the new dock taken)
  • smoke re-run at 8c1e00e (CSS-only delta after the smoke run)
  • the owner's live instance
    Verdict: PASS

@Birfy Birfy added the awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip label Oct 20, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 20, 2026
Merged via the queue into ThinkFlowLab:main with commit 11f80dd Oct 20, 2026
8 checks passed
@Birfy
Birfy deleted the fix/546-group-status-rows branch October 20, 2026 13:10
Birfy added a commit to Birfy/FlyBot that referenced this pull request Oct 20, 2026
Birfy added a commit to Birfy/FlyBot that referenced this pull request Oct 20, 2026
@Birfy Birfy removed awaiting-approval PR is green and waits for the maintainer's approval (T2/T3) or a review PASS at its tip agent-pr Pull request opened by an agent labels Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ui Web/desktop UI and copy bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Group in-progress rows sit in two places and say only "On it"

1 participant