Console: show the reply to a web send (read-only bus read of replies) #1575
Closed
opened 2026-10-11 23:52:12 +00:00 by jarvis
·
5 comments
No Branch/Tag Specified
next
refactor
feat/1311-credential-seat-store
fix/1257-adopt-draft-transition
docs/prd-rev1-ratification
r4-helper-port
docs/containerization-plan
feat/m4-4b-enrollment-command
feat/m4-4a-enrollment-schema
feat/m4-4-0-enrollment-design
feat/m4-3a-p1-stop-mission-task-status-writes
docs/m4-3a0-p0-map-currency
docs/c2-amendment1-company-crud
config/minimal-subset
feat/m4-1b-ii-hierarchy-commands
mosaic-cli-p1-wrappers
mosaic-cli-p1-dispatch
docs/ruling-4b-company-visibility
feat/m4-1b-hierarchy-gateway
feat/m4-1a-hierarchy-schema
feat/p6-e2e-ci-gate
feat/p5-spa-cutover
fix/1451-appservice-dockerfile-scripts
contract/onboarding-wizard
contract/custody-schema
contract/api-artifacts
fix/appservice-dockerfile-scripts
docs/t78-cli-capability-migration
contract/rollup-projection
contract/hierarchy-schema
fix/invariant-r-version-probe-retry
contract/mode-conversion
contract/tool-gateway-mapping
contract/rbac-grants
contract/identity-lifecycle
chore/s1-docs-hygiene
docs/ri-050-release-evidence
feat/webui-p4-2-settings-admin
fix/bootstrap-race
fix/teams-enumeration-scope
fix/1407-next-image-parity
docs/prd-north-star-rewrite
rescue/ms-gate-001-gatekeeper
fix/1394-recover-token-headless
fix/1390-uninstall-headless
fix/1403-n1n2-followup
fix/1391-validationpipe-boot-check
archive/salvage-20260825/wp5b-consumer-compat
wp5b-consumer-compat-2
archive/salvage-20260825/t63-fix-2648
archive/salvage-20260825/t63-fix-1389
archive/salvage-20260825/i1380ff-fix
i1380-guard
fix/send-message-exact-target-pin
t51p2wp0b
archive/ms24-fork
fix/ci-queue-wait-no-ci-merge-path
fix/credentials-gitea-seat-slots
feat/onboarding-scripts-framework
pr-1367
fix/1357-issue-view-comments
fix/1356-tea-login-fail-closed
fix/1362-harness-aware-delivery-confirm
fix/gitea-guessed-login-credential
docs/w4-document-contract
fix/d29-lease-revoke-noop
peggy/agent-send-unverified-label
fix/pr-merge-fork-ci-status
riv001-clean
docs/1216-trunk-parameterization
fix/1256-fleet-pane-path-node
fix/1017-enumeration-guard-population
fix/1182-fail-closed-launch
fix/1327-setuppath-idempotency
merge/main-into-next
ci/push-ci-comment-model
ci/pin-ci-base-image
fix/ci-queue-wait-no-status
fred/code-review-pinned-tool-rules
fred/guides-seat-identity-fleet-comms
fred/credential-fail-closed-seat-slots
fix/fleet-greenfield-blockers
feat/ri-050-qr-evaluator
archive/salvage-20260825/zane/doctor-greenfield-hint
archive/salvage-20260825/fix/ri-050-registry-secrets
archive/salvage-20260825/docs/ri-050-release-evidence
docs/ri-050-forge-docs-fastfollow
fix/ri-050-registry-secrets
test/ri-050-publish-gate-negative
archive/salvage-20260825/fix/ri-050-verify-pglite-path
fix/ri-050-verify-pglite-path
docs/ri-050-qr-probe-inventory
archive/salvage-20260825/zane/doctor-brain-home
feat/ri-050-web-stale-safety
archive/salvage-20260825/pr-1298
archive/salvage-20260825/zane/mosaic-home-support
docs/ri-050-mission-bootstrap
fix/ri-050-forge-fail-closed
feat/ri-050-publish-gate
fleet/continuation-record-2026-08-17
feat/ri-050-prd-authority
fix/ri-050-macp-fail-closed
fix/1280-identity-first-resolution
feat/w-f4-store
fix/1264-fleet-unattended-first-start
fix/1269-ci-chain-unblock
fix/1256-fleet-runtime-preflight
fix/1257-e7-draft-transition
fix/1240-fleet-transport-check
fix/1017-wire-start-agent-session
e2e-compose
fix/1241-launch-failure-visible
fix/1237-fleet-v2-dispatch
fix/1236-installer-dir-modes
fix/installer-path-and-node
feat/wf-fleet-mvp
fix/installer-provisions-node
fix/lease-test-env-isolation
release/0.0.50-integration
feat/wf5-main-merge
feat/wf5-securestorage
feat/1216-trunk-resolver
docs/1214-branch-process
docs/ia-merge-current
fix/869-lease-probe-timeout
main
feat/workspace-hygiene-tool-enforcement
feat/1080-pr-edit
fix/1179-required-security-di
feat/p3-slice0-task5-chat-runtime-router-shaggy
feat/p3-slice0-task5-chat-runtime-router
feat/wf1-composition
feat/p3-slice0-task4-web-catalog-selection
feat/lease-promotion-and-harness-isolation
ci/provision-pi-runtime
feat/p3-slice0-task3-catalog-selection
feat/p3-slice0-task2-harness-registry
adopt/965-mos-ste-writing-standard
fix/991-comment-url-scheme-normalise
feat/wf2-bundle-migration
feat/wf4-plugin-acquisition
feat/wf5-refresh-safety
fix/1145-coord-di-compiled-boot
feat/p3-slice0-task1-harness-contracts
docs/webui-phase-p-structure
feat/1150-pi-goal-extension
feat/webui-p3-chat
fix/1146-ci-queue-purpose
fix/1138-conditional-federation
feat/webui-p2-data-auth
fix/gateway-runner-image
feat/webui-p1-vite-skeleton
fix/break-c-hooks-and-web-image
docs/webui-fleet-claude-bridge-plan
fix/wizard-gateway-failure
fix/next-node-gate
fix/mosaic-init-rce
greenfield/fomo-lin
fix/1099-pipefail-wake
fix/1099-pipefail-tests
fix/1099-pipefail-sweep
fix/framework-shell-portability
fix/1043-pane-git-identity
fix/1081-issue-close-silent-comment-failure
fix/1090-enrollment-wallclock-tolerance
feat/1082-tea-stale-token-diagnostic
fix/detect-platform-silent-128-outside-repo
feat/1050-install-state-machine-red-fixture
fix/pr-merge-message-field
feat/1051-mosaic-brain-installer
feat/1045-mosaic-cred
remediation/state
fix/1056-upgrade-rollback-control-race
fix/1019-ci-queue-timeout-harness
feat/rm-02-gate-registry
fix/rm-01-reproducible-checkout
remediation/mission-setup
fix/hygiene-inert-format-gate
fix/1019-queue-guard-stdin
feat/mos-ste-writing-standard
fix/1017-enumeration-guard
fix/1007-suite-hermeticity
feat/push-guard-null-case-verification
feat/wake-preimage-provenance
mos-comms-live
docs/heartbeat-framework-layering-ms-lead
feat/869-c4-version-coupling
feat/869-c2-install-ordering-guard
feat/869-c5-doctor-activation-check
feat/per-agent-gitea-identity
fix/875-belongs-case-insensitive-slug
fix/ci-queue-wait-404-branch-absent
feat/869-c1-activation-probe
feat/869-c3-broker-supervisor
fix/865-tea-cli-comment-invocation
feat/glpi-skills
fix/860-deflake-mutator-lease-gate
fix/850-detect-platform-port-normalization
fix/856-worktree-deps-preflight
fix/835-pr-review-approve-reject-comment-flag
fix/848-truthful-evidence
fix/812-pr-review-comment
fix/849-recovery-runtime-fixture-race
docs/758-ledger-m5-001-sync
feat/834-tc-server-side-doc
feat/833-constrained-recovery-command
feat/827-gate0-probe
governance/gate0-probe3-amendment
fix/795-codex-pr-diff
fix/795-ci-base-jq
fix/795-ci-base-git
feat/791-pr3-fleet-regen
feat/791-pr2-snapshot-restore
fix/807-glpi-206
fix/808-agent-send-false-sender
feat/791-upgrade-config-protection
feat/790-mosaic-yolo-claudex-pr2
feat/790-mosaic-yolo-claudex
feat/758-v1-v2-migrator
fix/766-exact-fleet-comms
test/758-reconciler-lifecycle-gates
docs/771-kbn101-db-role-split
test/758-example-profile-dispositions
feat/758-shared-role-resolution
feat/mos-logical-identity-fencing
feat/769-kbn100-unified-schema
docs/753-kbn010-threat-gate
feat/758-roster-v2-compiler
feat/756-official-discord-plugin
fix/mos-option2-qualification-format
docs/issue-758-m0
docs/mos-option2-qualification
mos-comms
feat/tess-interaction-agent
fix/tess-docs-format
draft/mosaic-platform-prd
fix/installer-provider-gate-and-local-gateway-redis
release/mosaic-cli-0.0.37
feat/framework-constitution-alpha
fix/git-wrapper-repo-detection
fix/woodpecker-wrapper-legacy-mosaic
fix/t-a292e96f-gitea-pr-metadata
fix/gitea-pr-metadata-login-t-a292e96f
fix/t_a292e96f-pr-metadata-gitea
fix/t_3a368a52-gitea-usc-login
fix/bootstrap-hotfix
fix/populate-known-packages-list
fix/idempotent-init
archive/salvage-20260825/fix/ci-prisma-generate
archive/salvage-20260825/feat/ms-gate-001-gatekeeper-local
archive/salvage-20260825/feat/ms-gate-001-gatekeeper
archive/salvage-20260825/feat/ms24-ci-webhook
archive/salvage-20260825/fix/mission-control-proxy-routes
archive/salvage-20260825/fix/deploy-missing-env-and-networks
archive/salvage-20260825/fix/mission-control-query-provider
archive/salvage-20260825/test/ms23-p2
archive/salvage-20260825/feat/ms23-p2-audit
archive/salvage-20260825/feat/ms23-p2-roster
archive/salvage-20260825/feat/ms23-p1-proxy
archive/salvage-20260825/feat/ms23-p1-registry
archive/salvage-20260825/feat/ms23-p1-internal-provider
archive/salvage-20260825/feat/ms23-p1-interface
archive/salvage-20260825/chore/ms23-tasks-p0-complete
archive/salvage-20260825/test/ms23-p0
archive/salvage-20260825/chore/ms23-tasks-p005-006
archive/salvage-20260825/feat/ms23-p0-tree
archive/salvage-20260825/chore/ms23-tasks-p004-005
archive/salvage-20260825/feat/ms23-p0-controls
archive/salvage-20260825/chore/ms23-tasks-p0-002-004
archive/salvage-20260825/feat/ms23-p0-stream
archive/salvage-20260825/fix/ms23-prisma-rm-symlink
archive/salvage-20260825/fix/ms23-prisma-kaniko-symlink
archive/salvage-20260825/fix/ms23-prisma-script-path
archive/salvage-20260825/fix/ms23-prisma-docker-vs-ci
archive/salvage-20260825/fix/ms23-prisma-schema-local
archive/salvage-20260825/fix/ms23-prisma-api-pkg
archive/salvage-20260825/fix/ms23-prisma-cli
archive/salvage-20260825/fix/ms23-orchestrator-prisma-generate
archive/salvage-20260825/feat/ms23-p0-ingestion
archive/salvage-20260825/feat/ms23-p0-schema
archive/salvage-20260825/fix/agent-template-auth-module
archive/salvage-20260825/feat/ms22-p2-discord-router
archive/salvage-20260825/test/ms22-p2-agent-tests
archive/salvage-20260825/chore/ms22-p2-docs-update
archive/salvage-20260825/feat/ms22-p2-agent-routing
archive/salvage-20260825/chore/ms22-p2-update-docs
archive/salvage-20260825/feat/ms22-p2-user-agents
archive/salvage-20260825/feat/ms22-p2-agent-crud
archive/salvage-20260825/fix/security-audit-multer
archive/salvage-20260825/ci/portainer-deploy
archive/salvage-20260825/fix/ms21-missing-user-auth-migration
archive/salvage-20260825/infra/fix-mosaic-db-init-extensions
archive/salvage-20260825/infra/migrate-to-openbrain-db
archive/salvage-20260825/fix/flaky-queue-test
archive/salvage-20260825/fix/deploy-service-names
archive/salvage-20260825/fix/deploy-service-update
archive/salvage-20260825/fix/deploy-user-v2
archive/salvage-20260825/fix/deploy-user
archive/salvage-20260825/fix/orchestrator-widget-endpoints
archive/salvage-20260825/fix/dashboard-widget-mock-data
archive/salvage-20260825/fix/ci-glibc-image
archive/salvage-20260825/fix/dockerfile-npmrc
archive/salvage-20260825/fix/matrix-native-binary
archive/salvage-20260825/fix/kaniko-cache
archive/salvage-20260825/fix/base-image-kaniko-v2
archive/salvage-20260825/fix/base-image-kaniko
archive/salvage-20260825/feat/custom-base-image
archive/salvage-20260825/ci/pnpm-cache
archive/salvage-20260825/fix/interceptor-tests
archive/salvage-20260825/fix/kanban-tests
archive/salvage-20260825/feat/wire-chat
archive/salvage-20260825/feat/usage-widget
archive/salvage-20260825/feat/usage-widget-review
archive/salvage-20260825/fix/security-hardening
archive/salvage-20260825/fix/project-domain-attach
archive/salvage-20260825/fix/project-domain-v2
archive/salvage-20260825/feat/kanban-add-task
archive/salvage-20260825/fix/logs-page-clean
archive/salvage-20260825/fix/logs-page
archive/salvage-20260825/fix/workspace-members
archive/salvage-20260825/fix/ci-lint-632
archive/salvage-20260825/fix/lint-from-632
archive/salvage-20260825/fix/file-manager-tags
archive/salvage-20260825/fix/csrf-debug-log
archive/salvage-20260825/fix/controller-type-imports
archive/salvage-20260825/fix/system-admin-env
archive/salvage-20260825/fix/gateway-cors-trusted-origins
archive/salvage-20260825/fix/fleet-provider-form-dto-v2
archive/salvage-20260825/fix/ms22-audit
archive/salvage-20260825/fix/orchestrator-widgets
archive/salvage-20260825/fix/fleet-provider-form-dto
archive/salvage-20260825/fix/orchestrator-widgets-preexisting
archive/salvage-20260825/fix/csrf-bearer-bypass
archive/salvage-20260825/fix/ms22-missing-authmodule-imports
archive/salvage-20260825/fix/container-lifecycle-config-module
archive/salvage-20260825/fix/swarm-compose-ms22-vars
archive/salvage-20260825/chore/ms22-p1-complete
archive/salvage-20260825/feat/ms22-p1k-idle-reaper
archive/salvage-20260825/feat/ms22-p1j-docker
archive/salvage-20260825/feat/ms22-p1e-onboarding-api-work
archive/salvage-20260825/feat/ms22-p1c-config-api
archive/salvage-20260825/chore/ms22-prd-tracking
archive/salvage-20260825/feat/ms22-p1b-crypto
archive/salvage-20260825/docs/ms22-architecture
archive/salvage-20260825/feat/ms22-openclaw-docker
archive/salvage-20260825/feat/ms22-openclaw-gateway-module
archive/salvage-20260825/chore/ms21-complete
archive/salvage-20260825/chore/ms21-final-tasks-done
archive/salvage-20260825/fix/ms21-ui-001-qa
archive/salvage-20260825/feat/ms22-openclaw-docker-backup-20260301
archive/salvage-20260825/chore/ms22-phase0-complete
archive/salvage-20260825/feat/ms21-ui-teams-rbac-v3
archive/salvage-20260825/test/ms22-integration
archive/salvage-20260825/feat/ms22-ingest-clean
archive/salvage-20260825/feat/ms21-ui-users-members
archive/salvage-20260825/feat/ms22-ingest
archive/salvage-20260825/feat/ms22-task-agent
archive/salvage-20260825/chore/ms22-tasks-tracking
archive/salvage-20260825/feat/ms21-ui-teams-rbac
archive/salvage-20260825/fix/openbao-otel-cve
archive/salvage-20260825/ci/unified-pipeline
archive/salvage-20260825/feat/ms22-conversation-archive
archive/salvage-20260825/feat/ms22-agent-memory
archive/salvage-20260825/feat/ms22-findings
archive/salvage-20260825/feat/ms22-knowledge-schema
archive/salvage-20260825/chore/tasks-final
archive/salvage-20260825/chore/tasks-update
archive/salvage-20260825/feat/ms21-session-invalidation
archive/salvage-20260825/feat/ms21-rbac-settings
archive/salvage-20260825/feat/ms21-rbac
archive/salvage-20260825/feat/ms21-ui-user-dialogs
archive/salvage-20260825/feat/ms21-ui-workspace-members
archive/salvage-20260825/feat/ms21-ui-teams
archive/salvage-20260825/chore/ms21-tasks-ui-progress
archive/salvage-20260825/feat/ms21-ui-workspaces
archive/salvage-20260825/feat/ms21-ui-users
archive/salvage-20260825/chore/ms21-tasks-schema-fix
archive/salvage-20260825/feat/ms21-import-api
archive/salvage-20260825/test/ms21-migration-tests
archive/salvage-20260825/feat/ms21-teams-page
archive/salvage-20260825/feat/ms21-users-page
archive/salvage-20260825/chore/ms21-task-update-p1-p3
archive/salvage-20260825/feat/ms21-admin-module
archive/salvage-20260825/fix/websocket-reconnect
archive/salvage-20260825/merge/develop-to-main
skill-lifecycle-v1
onboarding-v1
agent-seats-v1
interactive-agent-v1
auto-apply-v1
session-fork-v1
retention-v1
mission-policy-v1
conductor-v1
workspace-capabilities-v1
sessions-v1
operator-ergonomics-v1
adapter-seam-v1
release-model-v1
mission-task-v1
config-hello-v1
poc-container-hello-v0
v0.0.39-alpha
mosaic-v0.0.31
fed-v0.2.0-m2
fed-v0.1.0-m1
mosaic-v0.0.29
mosaic-v0.0.28
mosaic-v0.0.27
mosaic-v0.0.26
mosaic-v0.0.25
mosaic-v0.0.24
v0.2.0
v0.1.0
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
archive/ms24-fork-20260823
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
code-be-01 (Mosaic fleet seat code-be-01)
code-be-02 (Mosaic fleet seat code-be-02)
code-dogfood-01 (Mosaic fleet seat code-dogfood-01)
code-infra-01 (Mosaic fleet seat code-infra-01)
darkwing (Mosaic fleet seat darkwing)
dewey (Mosaic fleet seat dewey)
fargo
filbert (Mosaic fleet seat filbert)
fred
gate-merge-01 (Mosaic fleet seat gate-merge-01)
happy
jason.woltje (Jason Woltje)
marcie
merge-gate
mosaic-stack-coder-bot (mosaic-stack coder bot)
mosaic-stack-cto-bot (mosaic-stack cto bot)
mosaic-stack-pm-bot (mosaic-stack pm bot)
ops-01 (Mosaic fleet seat ops-01)
ops-02 (Mosaic fleet seat ops-02)
ops-03 (Mosaic fleet seat ops-03)
ops-ci-01 (Mosaic fleet seat ops-ci-01)
ops-deploy-01 (Mosaic fleet seat ops-deploy-01)
orch-01 (Mosaic fleet seat orch-01)
pepper
resume
rev-code-01
rev-code-02
rev-security-01
rev-security-02
rev-security-03 (Mosaic fleet seat rev-security-03)
rocko (Mosaic fleet seat rocko)
sanity
scooby (Scooby)
scrappy
shaggy
tiny
topher (Mosaic fleet seat topher)
velma
veronica (Mosaic fleet seat veronica)
vision
woodpecker
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mosaicstack/stack#1575
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Brief: docs/plans/2026-10-11_console-reply-view.md, section "Show replies to a message without receiving them". Lead decision 97.
From Dewey's question while building row 76 (#1570). After a web send, the Console shows the receipt and the delivery state but not the PM's reply. The bus inbox lists only open decisions, trail doesn't read in_reply_to, and message.receive marks delivery, so a Console receive would take the reply away from mosaic talk.
This row adds a read that lists replies to a message, writes nothing, and shows them on the Console receipt. It also fixes the CLI talk timeout message, which says mosaic inbox shows a late reply.
Owner Dewey after rows 76 and 59, reviewer Darkwing. Held until after the dogfood cutover (lead decision 94).
Review request for queue row 81, round 1: Console shows the reply to a web send
docs/plans/2026-10-11_console-reply-view.md§ Show replies to a message without receiving them @dd42071d3b152263ff5f2866ba57d167a060668e819874c893a18b514f62c54fbe4089d6ec2fThe manifest:
Check a tree against it with
scripts/mosaic queue review verify-commit 81 REF.Post your verdict as a comment here, then record it:
Darkwing review, row 81 round 1: approve, candidate manifest sha256
2263ff5f2866ba57d167a060668e819874c893a18b514f62c54fbe4089d6ec2f. The full review isagents/darkwing/work/queue-81-review/review-r1.md, reproduced below.Row 81, the Console shows the reply to a web send, round 1 review (Darkwing)
Issue #1575, request comment 27763, packet
agents/dewey/work/queue-81/(commit
5afa8b0f). Brief:docs/plans/2026-10-11_console-reply-view.md§ "Show replies to a message without receiving them" (blob
dd42071d).Base
ff11aa4b. Candidate manifest sha2562263ff5f2866ba57d167a060668e819874c893a18b514f62c54fbe4089d6ec2f, 12files, matching the request.
Verdict: approve. The new
repliesread is registered everywherecredentialsis, refuses what the brief says it refuses, and writes nodelivery or read row. The receipt drops a late answer for an earlier send,
and a failed replies read stays inside the composer. Nothing blocks. Three
small notes follow, then my answers to Dewey's three questions.
Method
ff11aa4bwithgit apply --index build.patch,then
sha256sum -con the manifest: 12 OK, and again after my mutants.git diff --cached --binary ff11aa4bthere hashes the same asbuild.patch(0da56968…). No commit fromff11aa4bto4918d410touches the 12 paths.
place
credentialsis registered (the reader allowlist and the dispatchcase in
broker.mjs,views.mjs,BUS_VERBSinserve.mjs) and foundrepliesin each. No other verb list inpackages/needs it.reader(live)andrender's fallback tothe kept reader (
public/bus.js49 to 70 and 640 to 650) to see what thecomposer's
get('replies', id)does on a stale render (note 2).(
r1/mutants.sh) next to Dewey's 17. Most edit sites theirs don't;human-onlyoverlaps theirreader not allowed. Each edits one sitewith
queue-59-review/r1/mut.mjs, runs one test file and restores thefile from a backup.
Node v26.8.1,
TMPDIR=~/darkwing-scratch/rv81/tmp.Tests and mutants
On the candidate, 18:45:51Z to 18:47:21Z on 2026-10-12
(
r1/tests.txt): bus 102, webui 83 and cli 115, all pass, 0 fail. Ididn't rerun the scripts suites. Dewey's gate has them green, and Sage
reruns it.
Mutants ran 18:47:27Z to 18:48:27Z (
r1/mutants.txt):exists-any-businessbusiness=?replies-to-humanno-identifieridentifier(a.id)human-onlyid-check-after-busidcheck after the no-bus 503shows-to-roleto_role, notfrom_rolelink-to-sendfailure-keeps-oldany-receipt-readsexists-any-businesscovers the defence Dewey mentions for the equivalentmutant they didn't run: the existence check has its own business filter,
and the cross-business test catches it.
Notes
1. One comment line in
packages/webui/src/bus.mjsisn't wrapped.Line 6 is 103 characters ("reachable as reads: no read writes, not
even seen or delivered (Q4). The one write is row 76's human"), where the
rest of the comment wraps near 76. Cosmetic; the landing commit or round 2
can reflow it.
2. On a stale render the replies come from the kept answers. When a
live read elsewhere on the page fails,
renderredraws withreader(false). The composer'sget('replies', id)then returns the lastanswer for that id if there is one. If there isn't, it throws
not-read,and the receipt says the replies couldn't be read. The cached list doesn't
say it's old, but the page's stale banner already does, with the oldest
atacross every read, including this one. I think that's right andneeds no change.
3.
any-receipt-readssurvives, and I'd leave it. With the guardloosened to any receipt, a refused or unknown receipt has no
id, so theread goes to
/api/bus/replieswith no query, the server answers 400, andthe composer sets
repliestonull. Neither receipt kind rendersrepliesHtml, so the page looks the same. The only effect is a wastedrequest per render. A test could pin it by counting replies requests after
a refused send, but I don't think it's worth a round.
The overlap with row 61. Row 61 (#1550, mine, in review) also changes
serve.mjs,public/bus.jsandpackages/webui/README.md. The hunksdiffer, and both patches apply on
4918d410withgit apply --3wayineither order. Whichever row lands second needs a new round for its
manifest. That's a landing-order matter for Sage, not a finding here.
Dewey's three questions
1. A new verb, not a
trailfield. Agreed.trailanswers[]foran unknown subject, and the brief wants this read to refuse an unknown id.
Folding replies into trail would either change trail's answer for every
caller or give one field its own refusal rule. A separate verb also keeps
the 10 s refresh from reading the whole trail.
2. The bus README verb-table row outside the reads section. Keep it.
decisionsandcredentialshave rows in that table, so leavingrepliesout would make the table wrong. I read the brief's fileboundary as naming the README, not one section of it.
3.
packages/cli/README.mdlines 61 to 65. Agreed, a follow-up. "Thereply still lands in the inbox" means the human's message inbox, which is
true, but next to this row's timeout wording it reads like
mosaic inbox. "The nextmosaic talkprints it" would match the CLI's message.Review request for queue row 81, round 2: Console shows the reply to a web send
docs/plans/2026-10-11_console-reply-view.md§ Show replies to a message without receiving them @dd42071d3b153ce7527f652472755662f8366c4908d8304031b4f890dbce91e478df030b1fd5The manifest:
Check a tree against it with
scripts/mosaic queue review verify-commit 81 REF.Post your verdict as a comment here, then record it:
Row 81, the Console shows the reply to a web send, round 2 review (Darkwing)
Issue #1575, request comment 27816, packet
agents/dewey/work/queue-81/r2/(commit
e244f4f5). Round 2 is the rebase after row 61 (6c42344d) plusmy two round 1 notes. Base
1e5f5958. Candidate manifest sha2563ce7527f652472755662f8366c4908d8304031b4f890dbce91e478df030b1fd5, 13files, matching the request. I'm the only reviewer (lead decision 97).
Verdict: approve. The rebase changes nothing of row 81's own and drops
nothing of row 61's. The two follow-ups say what they should. No findings.
Method
1e5f5958withgit apply --indexofr2/build.patch.git diff --cached --binary 1e5f5958there hashes thesame as the packet's patch (
054fb26c…), andsha256sum -cgives13/13 OK. No commit from
1e5f5958to1166e0detouches the 13 paths.order (
r2/r1.lines,r2/r2.lines). The only differences(
r2/lines.diff) are the cli READMEtalkentry and the rewrappedbus.mjscomment. Every other+and-line is identical.6c42344dadded toserve.mjs,public/bus.jsand the webui README is still in the candidate, 8, 15and 11 lines, none missing. The candidate's removed lines in those three
files are row 81's own targets from round 1 (the "doesn't show it yet"
text, the old
fetchRead,BUS_VERBSwithoutreplies); none is arow 61 line.
/api/task-fieldsroute is its own branch inserve.mjs, andits section in
bus.jsreads throughget.api. Row 81 changesbusRead's verb list andfetchRead's query name, so the two don'tmeet. Dewey says the same in
build.md, and I checked it in the files.The two follow-ups
packages/cli/README.md: "the reply may still come, and the nextmosaic talkprints it".cli.mjs:212's timeout message says "it maystill come, and the next mosaic talk shows it". Same claim, and true of
talk, which prints unread replies after its send.packages/webui/src/bus.mjs: the comment is the same words, rewrapped.Its longest line is now 76 characters, the block's width.
Tests
Node suites on the candidate, sequential,
TMPDIRin my scratch, afterFilbert's row 77 run had finished (
r2/*.txt):The counts match Dewey's gate. I didn't rerun tasks or the scripts
suites: the candidate touches no path they load, Dewey's gate has them
green, and Sage reruns the gate. I didn't rerun mutants. The code lines
are byte for byte round 1's, where my nine mutants ran (eight killed, one
survivor that note 3 covered), and Dewey's rerun of their 17 on this
candidate killed all of them.
Review file:
agents/darkwing/work/queue-81-review/review-r2.md.Landed on
refactorasc9a5650e, queue rev 704 in5849de76(row 81 done). verify-commit:c9a5650ematches the manifest candidate 3ce7527f, 13 paths.Sage's gate on
9438880eplus Dewey's round 2 patch, 19:25:18Z to 19:30:39Z: tasks 74/74, webui 84/84, bus 102/102, cli 115/115, control-board 124/124, and everyscripts/test-*.shat 0 failed.Live at the next bus restart (the
repliesverb, which also ends the PM session) and the next Console restart (the view), bus first. Mos has the decision-109 notices; Sage restarts nothing.