Skip to content

fix(chat): find RunningStatus under conversation.chat.flow on DSH 0.2.1 - #1628

Merged
Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:birfy/1626-activity-row-running-host
Oct 29, 2026
Merged

Birfy merged 2 commits into
ThinkFlowLab:mainfrom
Birfy:birfy/1626-activity-row-running-host

Conversation

@Birfy

@Birfy Birfy commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Owner: Danyang Chen
Reviewer: Reviewer
Written-by: Grok Bot (box-local; no Cursor CloudAgent)
Labels: agent-pr

Fixes #1626

Related: #1586 (busy-ack spoken bubble — merged; same host constant, still needs a found RunningStatus). #1624 (empty 「思考过程」 — claimed by FlyBot Lead; may share blank-while-working feel). #1509 (Steer/tool-wait interrupt — claimed by FlyBot Lead; not this PR). Do not conflate with Workflow #1619/#1618 UI.

What changed

On DSH 0.2.1-rc.2 (pinned in #1594 / v0.2.13), RunningStatus moved from a direct child of [data-chat-flow] into the conversation.chat.flow slot. FlyBot still used [data-chat-flow] > [data-chat-running], so after send:

  1. ActivityIndicator / BusyAckBubble could not portal (host null)
  2. CSS still hid DSH's whale spans inside [data-chat-running]
  3. Owner saw empty chrome / “dialogs look like vanilla DSH” — missing Bot avatar + shimmer

Fix: RUNNING_HOST / findRunningHostIn accept both 0.2.0 (direct) and 0.2.1+ (nested under the flow slot). Helpers live in activity-row-host.js (React-free).

Verification at the tip

Tip SHA: a88945155b72b4d816fb7cade04562daddf10c58

Ran:

  • cd core && node --import ./test/harness-resolve.mjs --test test/activity-row-host.test.js test/friend-chat-awaiting.test.js test/busy-ack-client.test.js test/busy-ack.test.js test/client-bundle.test.js → 19 pass / 0 fail
  • node scripts/ds-bot-patches.mjs check → ok
  • node .github/scripts/changelog.mjs check → well formed
  • ARCH_DOCS_BASE=origin/main npm run arch-docs --prefix core → OK

Not run: full npm run verify / LIVE/prod upgrade (out of scope).

Residual

Gate (when CI green)

Birfy PASS + Attestation at tip; enqueue via merge queue (same as #1586). Do not force-merge.

Checkpoint

{
  "pr": 1628,
  "claim": "Danyang Chen",
  "issue": 1626,
  "summary": "Activity row finds RunningStatus under conversation.chat.flow on DSH 0.2.1 so Bot avatar + shimmer return after send.",
  "files": [
    "core/src/client/activity-row-host.js",
    "core/src/client/activity-row.js",
    "core/test/activity-row-host.test.js",
    "core/client.js",
    "docs/subsystems/core-client.md",
    "changelog.d/1626-activity-row-running-host.fixed.md",
    "patches/ds-bot/0003-flybot-api-client.patch",
    "patches/ds-bot/0007-version-and-tooling.patch",
    "patches/ds-bot/0008-client-bundle.patch",
    "patches/ds-bot/files/src/client/activity-row-host.js",
    "patches/ds-bot/files/test/activity-row-host.test.js"
  ],
  "checks": {
    "ran": "activity-row-host + friend-chat-awaiting + busy-ack + client-bundle unit tests; ds-bot-patches check; changelog check; arch-docs",
    "result": "green",
    "at": "a88945155b72b4d816fb7cade04562daddf10c58"
  },
  "next": "PASS + Attestation at tip when CI green; enqueue if gate allows — do not merge without owner"
}

Fixes ThinkFlowLab#1626

On DSH 0.2.1 the shell RunningStatus host sits inside the
conversation.chat.flow slot, so the activity row's direct-child
RUNNING_HOST missed it. After send, CSS still hid the native whale and
the Bot avatar + shimmer never portaled — empty / native-feeling chrome.

Widen the host selector and findRunningHostIn for both 0.2.0 (direct)
and 0.2.1+ (nested). BusyAckBubble reuses the same host constant.

Written-by: Grok Bot (box-local; no Cursor CloudAgent)
The host-helper extract dropped the 1.5s friend-chat grace constant;
oxlint failed CI with REMOTE_GRACE_MS is not defined.

Written-by: Grok Bot
@Birfy

Birfy commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS at a889451
Written-by: Reviewer
Attestation: a889451 role=Reviewer

Ran at this tip:

$ cd core && node --import ./test/harness-resolve.mjs --test test/activity-row-host.test.js test/friend-chat-awaiting.test.js test/busy-ack-client.test.js test/busy-ack.test.js test/client-bundle.test.js
# tests 19  # pass 19  # fail 0
$ # red first: restore direct-child RUNNING_HOST → activity-row-host.test.js fails (nested 0.2.1 host missed)
$ restore tip; same tests → 4/4 pass on activity-row-host
$ node scripts/ds-bot-patches.mjs check → ok
$ node .github/scripts/changelog.mjs check → well formed
$ ARCH_DOCS_BASE=origin/main npm run arch-docs --prefix core → OK
$ gh pr checks 1628 → package pass, ubuntu-latest pass, tests-ok pass, plugins (*) pass

Not run:

  • full npm run verify — CI tests-ok covers the required matrix
  • LIVE/prod upgrade — out of scope

Findings

No actionable findings. RUNNING_HOST / findRunningHostIn find [data-chat-running] whether it is a direct child of [data-chat-flow] (DSH 0.2.0) or nested under conversation.chat.flow (DSH 0.2.1+). Restores Bot avatar + shimmer after send; BusyAckBubble shares the same host. Risk tier T1.

Residual

@Birfy
Birfy added this pull request to the merge queue Oct 29, 2026
@github-actions github-actions Bot added the pass label Oct 29, 2026
Merged via the queue into ThinkFlowLab:main with commit f4b78b1 Oct 29, 2026
13 of 14 checks passed
@Birfy
Birfy deleted the birfy/1626-activity-row-running-host branch October 29, 2026 03:03
@github-actions github-actions Bot removed the agent-pr Pull request opened by an agent label Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(chat): activity row (Bot avatar + shimmer) gone after send on DSH 0.2.1 — RUNNING_HOST direct-child selector misses nested RunningStatus

1 participant