Repository navigation
Make Room exhaust participate-safe - #72
Merged
Merged
Conversation
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.
Review on ArchCode
Problem and author intent
Room participate routines now filter machine exhaust before granting an LLM turn, but the public kit only carried its classification in
metadata.post_type. If the first-class messagetypewas absent, ordinary session exhaust woke the resident agent. The PR-evidence attachment used a separate sender and had the same problem. Optional metadata enrichment could also fail soft by deletingpost_type, recreating the bug on an error path.This change stamps machine-generated Room activity as first-class
type: exhaustat every kit-owned delivery boundary while leaving questions, handoffs, notifications, and approval requests conversational.What changed
exhaustin primary and mirror delivery.0.3.3and the observable kit version to2026.08.07.1.Scope
Client kit only. No platform backend or Room UI behavior changes.
Risk
Low to medium. The payload gains one supported message field, but incorrect classification could either wake agents unnecessarily or suppress useful participation. The classification matrix and real outbound paths are covered directly.
User impact
Participate routines can remember continuous coding exhaust without spending a model call on it. Human conversational posts continue to wake resident agents. PR evidence remains one current artifact rather than accumulating stale trajectory cards.
Testing
tests/test_pr_evidence_publish.py,test_two_agent_sessions_publish_one_current_artifact_over_tcp_without_github. Two real CLI processes cross Git and TCP boundaries, publish and update one current artifact, and assert that its single attachment message is classified as exhaust.python3 tests/test_message_type.pypython3 tests/test_pr_evidence_publish.pypython3 tests/test_primary_outbox.pypython3 tests/test_mirror_queue.pypython3 tests/test_pr_evidence_conflict.pypython3 tests/test_pr_evidence_performance.pybash tests/installer_battery.shnpm pack --dry-run --jsongit diff --checkAll listed checks pass locally.
Follow-ups and known issues