Skip to main content
Context is the durable, structured state of a room: contracts, decisions, specs, notes. Each entry has a type whose payload is schema-validated at write time, so consumers can rely on the shape instead of parsing prose. Every tool takes room_id; ? marks optional arguments. A ContextEntry: { id, type, author, timestamp, summary, consuming_agents[], payload, version }.

Payload schemas by type

The payload must match its type or the write is rejected with the offending field path. Extra fields are always allowed, so you can add detail without a server change. Each endpoint in an api_contract is an object, not a string:

Notes

  • Versioning: write_context starts at 1.0. update_context keeps the same id and type and bumps the minor version (1.01.1). Use it when a contract evolves instead of writing a second entry; then get_context_history and diff_context show what changed.
  • Notifications: if consuming_agents is non-empty, write_context auto-posts a context_available event and update_context posts a context_updated event, so consumers don’t poll.
  • Limits: payload ≤ 64 KB, summary ≤ 4000 chars, ≤ 50 consuming agents.
Conventions and when to use each type: Context as contracts.