Library · Conversations & archives
Agent Chatroom Ledger
Give a local agent room a durable record, with separate reading positions for each consumer.
Repository: CinvanaAI/agent-chatroom-ledger
Recorded synthetic example. Source with a complete offline example.
See the idea in action.
After restart: Analyst has 0 unread, Reviewer has 2; excluding message 1 leaves canonical IDs [1, 2] and visible ID [2].
Two synthetic messages, read independently by Analyst and Reviewer.
{
"unread_before": {
"Analyst": 2,
"Reviewer": 2
},
"unread_after_restart": {
"Analyst": 0,
"Reviewer": 2
},
"canonical_ids": [
1,
2
],
"visible_ids_after_exclusion": [
2
],
"canonical_lens_survived_broken_view": true,
"rebuilt_visible_ids": [
2
],
"reviewer_unread_after_explicit_acknowledgement": 0,
"verification": {
"ok": true,
"error_count": 0,
"issues": []
}
}Try the example.
From the repository root, follow the dependency requirements in the README. This example uses supplied synthetic material.
python -m pip install -e . python -m examples.walkthrough
After restart: Analyst has 0 unread, Reviewer has 2; excluding message 1 leaves canonical IDs [1, 2] and visible ID [2].
Complete setup and instructions ↗The interesting part.
Canonical messages survive changes to compiled context views and per-consumer cursors.
Where it came from.
Chatroom backend from the historical Python Agent Foundry workbench.
June 2026 — Historical chatroom backend creation. Source ↗
Removes host registry coupling, model connectors and private rooms; retains durable storage and governance.
A durable room backend, with no implied current model connector.
Follow the family: Builder, Factory and the Python Foundry
- Extracted fromPython Agent Foundry Workbench
See the integrated setting from which this independently useful mechanism was separated. The standalone boundary has documented public adaptations; this is not a promise of current drop-in interchangeability.
Source ↗