row 264a r7 (#1769): build notes for the rebase onto landed 277 (980cec88c, sage-2608) and the per-session thread.claims; DEFERRED entry binds row 272 to make 274's user reply check session-scoped (sage-2591)
This commit is contained in:
1 parent
fa4f4dcdc8
commit
a23afbf95a
2 files changed
+36
No files matched your search
@@ -309,6 +309,33 @@ moved from 47a35bf43 by cherry-pick. broker.mjs is the only path both rows chang
|
||||
- schema.sql, the migrations, store.mjs and the fixtures are unchanged from round 5, and so are
|
||||
the touched test files: 19.
|
||||
|
||||
### Round 7 on landed 277 (980cec88c)
|
||||
|
||||
Row 277 (thread.claims, #1782) landed at 62f53b1e0, after row 256 (f12441d4f), and refactor was
|
||||
980cec88c (sage-2608). The round 6 commits moved from 0165be266 by cherry-pick with no conflict, and
|
||||
the range-diff is `=` for all eleven.
|
||||
|
||||
- 256 changes `packages/bus/src/runtime.mjs`, `packages/business/src/instance-settings.mjs` and
|
||||
`packages/webui/src/public/agents.js`. None is a manifest path and none of their changed lines
|
||||
names a thread, a session, `message_threads` or `thread_claims`. Three touched tests load these
|
||||
modules (bus chief-of-staff and tester-writes, cli thread-launch), so the whole-file runs cover
|
||||
256's code.
|
||||
- 277's `thread.claims` took the latest `thread_claims` row per thread. With sessions that is the
|
||||
last claim of any session, so a second held session would hide the first (duckworth-0123 N3,
|
||||
sage-2591). It now joins `sessions` and takes each session's latest row, as `#threadHolders`
|
||||
does, ordered by thread then session. The result keeps 277's five keys: two rows of one thread
|
||||
differ by `holder_run`, and `mosaic agents` prints each as its own thread line. Adding the
|
||||
session id to the row is left to the slice that shows sessions to the owner.
|
||||
- thread-claims.test (277's) makes its threads by hand, so each now gets the default session the
|
||||
migration gives an old thread (C5, :47), and its T5 message names that session (:111). T6 holds
|
||||
two sessions of one thread, sees both rows, releases one and sees the other (C4). M4 swaps the
|
||||
query back to 277's per-thread latest row and must fail T6.
|
||||
- 274's thread-scoped user reply check binds row 272 (264e) in `docs/plans/DEFERRED.md`, written
|
||||
here (sage-2608): a slice that lets a user add sessions makes it session-scoped.
|
||||
- 277's other tests: message-filter.test's claim pin reads thread.claims for a thread made with
|
||||
its default session, and the cli format and tester tests use stub rows or no threads.
|
||||
- Touched test files: 20 (thread-claims.test joins). Mutants M1-M4.
|
||||
|
||||
## Runs
|
||||
|
||||
None yet. Every run waits for Sage's CLEAR.
|
||||
@@ -460,6 +460,15 @@ at every gate. Started 2026-09-12 during the control board MVP.
|
||||
changes `packages/cli/tests/tester.test.mjs`: add the resolve pin so M8
|
||||
dies on an assertion. (2026-10-22)
|
||||
|
||||
- **Row 274's user reply check is scoped to the thread, not the session.**
|
||||
(Row 264a r6, sage-2591.) In `packages/bus/src/broker.mjs`, the check that
|
||||
a run answers a user only in reply to that user's message in its thread
|
||||
joins `message_threads` by thread. That holds while a user's thread has
|
||||
only its default session: a user can't call `session.create`, and
|
||||
`#thread` refuses anyone but the owner. Binds row 272 (264e, #1777), or
|
||||
any row that lets a user add sessions: make the check session-scoped and
|
||||
test it with two sessions. (2026-10-22)
|
||||
|
||||
## Queue
|
||||
|
||||
Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.
|
||||
|
||||
Reference in new issue
Block a user