Skip to content

Move quiescence out of the room: Exchanges owns the whole span - #44

Open
andreisavu wants to merge 1 commit into
mainfrom
claude/next-md-item-t9mtvp
Open

Move quiescence out of the room: Exchanges owns the whole span#44
andreisavu wants to merge 1 commit into
mainfrom
claude/next-md-item-t9mtvp

Conversation

@andreisavu

Copy link
Copy Markdown
Contributor

The room held three pieces of lifecycle state of its own: whether a seat
worked since the last settle, and the two waiter lists behind settled()
and quiet(). Their transitions sat across eight methods, and the
three-way branch in ended() was the widest context in the file.

Exchanges now holds the open exchange, the stirred flag, and both
promises. The room reads what is running off the seats and passes two
booleans in at every transition. Every transition is synchronous and takes
no model, so exchange.test.ts proves the lifecycle with no room: what
opens one, what a settle closes and reports, when each promise resolves,
and what the assistant's scheduler makes of a settle where a seat worked
and one where none did.

The room keeps one boolean, stopped. docs/exchange.md section 5 names the
module and its transitions. Behaviour is unchanged; every existing test
passes as it was.

Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01BL6FaVKirZDMQmcL61mEUr

The room held three pieces of lifecycle state of its own: whether a seat
worked since the last settle, and the two waiter lists behind settled()
and quiet(). Their transitions sat across eight methods, and the
three-way branch in ended() was the widest context in the file.

Exchanges now holds the open exchange, the stirred flag, and both
promises. The room reads what is running off the seats and passes two
booleans in at every transition. Every transition is synchronous and takes
no model, so exchange.test.ts proves the lifecycle with no room: what
opens one, what a settle closes and reports, when each promise resolves,
and what the assistant's scheduler makes of a settle where a seat worked
and one where none did.

The room keeps one boolean, stopped. docs/exchange.md section 5 names the
module and its transitions. Behaviour is unchanged; every existing test
passes as it was.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BL6FaVKirZDMQmcL61mEUr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants