Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
424 changes: 424 additions & 0 deletions docs/designs/compass/agent/compass-topic-write-locks/design.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions docs/designs/compass/decisions/agent/DL-472.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
id: DL-472
decision: "Agent posts carry their view of the topic, a last-seen mark and a seen set of at most 50 ids, and the server refuses a post when another author has a message after the floor that is not in the seen set; the floor is the mark or, with no mark, the lowest seen message; no topic write lock, lock table, TTL or waiter queue"
status: "Active (proposed, pending Matt, 2026-10-11)"
record: ../../agent/compass-topic-write-locks/design.md#the-change
---
6 changes: 6 additions & 0 deletions docs/designs/compass/decisions/agent/DL-473.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
id: DL-473
decision: "The stale-post check is per topic: every insert takes the topic row lock `FOR NO KEY UPDATE` before it inserts under READ COMMITTED, view ids resolve only inside the target topic, and `AnswerAsk` locks topic before message and re-reads the ask's topic once after a merge"
status: "Active (proposed, pending Matt, 2026-10-11)"
record: ../../agent/compass-topic-write-locks/design.md#q1-granularity-is-the-topic
---
6 changes: 6 additions & 0 deletions docs/designs/compass/decisions/agent/DL-474.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
id: DL-474
decision: "An agent's topic mark moves only on observations contiguous from its view (a head page that reaches the mark, or with no mark holds every seen id); steers (on `ASIDE_MESSAGE_COMMIT`) and delivers (on the turn-start ack) join a per-topic seen set that never drops a markless topic's first-seen id; tool-result observations apply at the next `turn_start` or `agent_end`; the view persists as a `compass_topic_seen` session entry and resets when the session id changes"
status: "Active (proposed, pending Matt, 2026-10-11)"
record: ../../agent/compass-topic-write-locks/design.md#q3-what-counts-as-seen
---
6 changes: 6 additions & 0 deletions docs/designs/compass/decisions/agent/DL-475.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
id: DL-475
decision: "A stale post returns a `stale_post` arm on `PostMessageResponse` with the oldest 20 unseen messages; idempotent retries win first, a non-locking pre-check runs only where the cost gate would hold, a confirm re-sends the current view, the render is body-budgeted, refused ids are deduplicated against later delivery, and tools never auto-retry"
status: "Active (proposed, pending Matt, 2026-10-11)"
record: ../../agent/compass-topic-write-locks/design.md#q4-what-a-refused-post-returns
---
6 changes: 6 additions & 0 deletions docs/designs/compass/decisions/agent/DL-476.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
id: DL-476
decision: "Every agent's posts are checked, whatever its role; human clients never set the view fields, so humans are never checked or blocked, and the public `PostMessage` honors the fields on purpose"
status: "Active (proposed, pending Matt, 2026-10-11)"
record: ../../agent/compass-topic-write-locks/design.md#q5-who-is-checked
---
Loading