docs: team mode through origin/main

AGENTS.md gets the "Syncing boards" section — what pushes, what pulls,
what a lost race looks like, and the two disciplines that make it safe:
local main advances only through the board and origin, and sync never
merges. The module map gains sync.py, the settings paragraph and the
Board view's description gain the sync chip and the author attribution,
and .env.example documents BOARD_SYNC / BOARD_SYNC_INTERVAL, including
the fetch-rate line for rate-limited remotes.
This commit is contained in:
istos
2026-07-30 09:47:49 +02:00
parent 9d98e2c55a
commit ee8469d009
3 changed files with 79 additions and 6 deletions
+21
View File
@@ -76,6 +76,27 @@ BOARD_FETCH_TIMEOUT=10
# empty/0/false/no/off turns it on.
BOARD_COMMIT_MOVES=
# Sync boards through origin/main: the second half of team mode, and off
# by default. On, it implies BOARD_COMMIT_MOVES above (a move that never
# commits has nothing to publish) and: each board commit is pushed as it
# is made; a beat fetches and fast-forwards every BOARD_SYNC_INTERVAL
# seconds and once at startup; moves that arrive are narrated with their
# commit author's name; and a card someone else moved first wins the race
# — the local move is dropped with a toast naming who took it.
#
# Two things it will never do. It never publishes a commit the board did
# not make: one local-ahead commit on main without the `board: ` prefix
# stops the push and says which. And it never merges past a divergence or
# into a checkout with uncommitted changes — it says so and waits for a
# human. Both assume the discipline bench already has: code work lives in
# worktrees and PRs, so local main advances only through the board and
# origin.
#
# One board fetches twice a minute at the default interval; raise it on a
# rate-limited or metered remote. Sync rides `origin` and `main` only.
BOARD_SYNC=
BOARD_SYNC_INTERVAL=30
# Seconds between disk polls of the stage directories.
BOARD_WATCH_INTERVAL=2