Repository navigation
A read-only window's composer still writes: Send to a Bot, and a multi-pick Send creates a room - #2501
Merged
Conversation
Pressing Send in a locked window reached the host with `send` (one pick) or `create-room` + `send` (several), and pressing a picker row with a line typed sent it — each answered `bot/read-only` only after the write. The composer now draws the host's own sentence where the Send button was, and both paths return before the write; opening a session stays a read.
HugoXK
marked this pull request as draft
November 5, 2026 04:40
HugoXK
marked this pull request as ready for review
November 5, 2026 04:53
Contributor
Author
|
Queue request — please take this tip to the merge queue.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2499
Owner: Dev-2
Reviewer: Birfy
Written-by: FlyBot Dev-2
Claim-Id: 6d33e6a7139c42a98d694733c9a2bbc4
Risk tier: T1
What changes
In a window that holds the team read-only, the new-chat composer no longer reaches the host with a write.
sendMessage(new-chat.js) returns beforesend(one pick) and beforecreate-room+send(several picks, no admin), so neither the Send button nor Enter writes;openBotkeeps the session open — a read — and drops theset-flagsunhide and the typed line, so pressing a picker row writes nothing. The composer puts the host's own sentence (hostText(roster.readOnly),.bt-hint.bt-read-only,role="status") where the Send button was, drawn once: when the group form already shows that line for its own Create, the composer does not repeat it. The pickers stay a preview, and a writable window sends exactly as before.openBot's send path is included because the issue's acceptance asks for it ("openBot's send path is covered by the same lock; opening a session may stay possible (it is a read)"). The group-creation paths from #2496,service.jsandcore/src/host/**are untouched.Red first
core/test/composer-send-readonly.test.js(new, 223 lines), committed alone at9872270ffon the clean base7f724a07:Case 4 is the control: the writable window sends once, then opens the session; several picks make the room and then send the line. After the fix the same file is 4/4.
What I ran at
240f0154(TZ=UTC, clean tree, tree363abfa443)npm run build(core) thennode scripts/ds-bot-patches.mjs generate— a secondgenerateleftgit status --porcelainempty.node scripts/ds-bot-patches.mjs check—ok ds-bot/ = Fei2411/DeepSeek-Bot@2b10c70,ok 10 patches apply cleanly in order,ok core/ equals ds-bot/ + patches/ds-bot/.TZ=UTC ARCH_DOCS_BASE=7f724a07c97955f893963cd1fa329c9c4c97f3fd npm run verify— exit 0. Segment counts, each# fail 0: core 2910 passed, plugins/social 577, plugins/tree 137, plugins/timeline 141, plugins/workflow 440,.github/scripts+policy671,test:interop37,test:live-e2e26 — 4939 tests, 0 failed. Lint: 0 errors (warnings only, none in the files this PR touches);build-client.mjs --checkandds-bot-patches check/canonicalgreen in the same run.What I did not run
core/src/client/**), no host code.Files
8 files, +2986/−2466 (
git diff --numstat 7f724a07...240f0154), tree363abfa443:core/src/client/new-chat.js(+11/−5) — the send path and the composer's read-only line, hand-written.core/test/composer-send-readonly.test.js(+223) — new, hand-written.docs/subsystems/core-client.md(+1) — the bullet after Settings and the New… menu still offer group creation in a read-only window #2496's.changelog.d/2499-composer-send-readonly.fixed.md(+1) — new fragment.core/client.js(+6/−3),patches/ds-bot/0003-flybot-api-client.patch(+33/−3),patches/ds-bot/0008-client-bundle.patch(+2488/−2455),patches/ds-bot/files/test/composer-send-readonly.test.js(+223) — generated by build +generate, never hand-edited.patches/ds-bot/0012-room-membership.patchdoes not change: this file's mirror lands in 0008.{ "pr": 2501, "claim": "Dev-2", "issue": 2499, "summary": "In a read-only window the new-chat composer no longer writes: sendMessage returns before send and create-room, openBot keeps the session open but drops the unhide and the typed line, and the composer draws the host's own sentence where the Send button was, once. The pickers stay a preview and a writable window sends exactly as before.", "files": [ "core/src/client/new-chat.js", "core/test/composer-send-readonly.test.js", "docs/subsystems/core-client.md", "changelog.d/2499-composer-send-readonly.fixed.md" ], "checks": { "ran": "TZ=UTC ARCH_DOCS_BASE=7f724a07 npm run verify (plus npm run build and ds-bot-patches generate/check)", "result": "green", "at": "240f015465478008da1cfed2fc4e0d6c29d7f3a5" }, "next": "none — ready for review" }