A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I2139
A sync message stays under the link bound whatever the marks weigh
Where it stands
devtask.issue- Readiness
- complete completion is recorded and every required evidence token is present
- Status
- DONE
- Can start
- not now
- Milestone
- Milestone status
- ACTIVE
- Wave
0- Waiting on
- none
- Holds back
- none
- Behind it in all
0- Evidence
1of1
Moves
plan.transitionWhat it is
- Objective
- Budget each sync message as the link bound minus its marks, and stop sending tombstone marks the peer does not hold.
- Why
- The 600 KiB event budget of a sync ignores the size of the marks sent with it (apps/majordomus-cli/src/mesh/journal.rs:1734-1766). 1024 live marks of about 340 B, plus 4096 tombstones of about 95 B, plus 600 KiB of events exceeds MAX_LINK_MESSAGE of 900 KiB (apps/majordomus-cli/src/mesh/link.rs:67,70). This is the audit's arithmetic, not observed at runtime. Past that size the answerer refuses the message (apps/majordomus-cli/src/mesh/cooperation.rs:1769-1779, 2010-2020), and a busy journal would stop replicating with no typed explanation. Baseline audit of 2026-10-09 at master 1fb8d6be44, mesh gap 7.
- Now
- The event budget is a constant that does not account for the marks.
- Wanted
- sync_with and accept_sync compute the event budget as MAX_LINK_MESSAGE minus the serialized marks, omit tombstone marks the peer does not hold, and the message builder asserts the bound.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- A journal with 1024 live marks and 4096 tombstones replicates to an empty peer over several rounds, every message under MAX_LINK_MESSAGE
- No sync message the dialer or the answerer builds exceeds MAX_LINK_MESSAGE, asserted where it is built
- Validation
bin/majordomus plan validatecargo test --lib meshcargo test --test mesh_cooperation- Evidence required
sync_at_the_mark_bound_test- Evidence present
sync_at_the_mark_bound_test
Scope
- Touches
apps/majordomus-cli/src/mesh/journal.rsapps/majordomus-cli/src/mesh/cooperation.rsapps/majordomus-cli/src/mesh/link.rsapps/majordomus-cli/tests/mesh_cooperation.rs- Not
- unknown: the record declares no `non_scope`
- Depends on
- none
- Priority
- p1
- Profile
- implementation
- Parallel safe
- false
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-10-09
- Updated
- 2026-10-14T08:01:43Z
- Started
- 2026-10-14T08:01:37Z
- Verified
- unknown: the record declares no `verified_at`
- Completed
- 2026-10-14T08:01:43Z
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
Nothing is wrong with these records.