| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | remake: replays judged before they go in | tv | 3 days | 4 | -2/+118 |
| | | | | | | | | | | | | | | | | A switching or rejoining node replays late writes as fresh changes naming each write's user, and nothing judged them before they left: a replay every node would refuse (a revoked capability, a second envelope at a signed path, readers changed) was refused everywhere, and with it everything the node wrote after it. Under a policy, replay_newest now judges each group it commits as every node will (rules::judge_held, in the new epoch); one they would refuse is taken back (forked at the heads before it, same actor) and its paths quarantined with the reason. replay_newest takes the epoch. Review finding 3 (remake replays). | ||||
| * | remake: replay from the quarantine where the user may write | tv | 3 days | 1 | -12/+35 |
| | | | | | | | | | | | POST /admin/quarantine/{id}/replay needs write on _continuum, which never covers user data, and replayed every path of the entry as the user who asked: every node refused the user data in it. It now replays only the paths the user may write and keeps the rest in the entry (left), for one who may; 403 if the user may write none. Review finding 3 (quarantine replays). | ||||
| * | swarm: changes taken unjudged, dropped (REFUSALS) | tv | 4 days | 1 | -0/+17 |
| | | | | | | | | | | A node refusing changes a peer brought tells it which broke a rule; the peer judges them itself, and if its rules refuse them too, drops them with all built on them (its document forked without them, a fresh actor), quarantining its own writes among them. Wire version 42. Auth plan M6 (rejoin on taint). | ||||
| * | remake: replays keep their writers | tv | 4 days | 4 | -25/+198 |
| | | | | | | | | | A remake's replay writes each value as the user who wrote it, splitting where several users wrote under a path, so replays are judged as the original writes. Auth plan M6 (remakes, 2.4). | ||||
| * | remake: forgetting and releasing name their user | tv | 4 days | 2 | -2/+22 |
| | | | | | | | | Forget records and released quarantines name the user who made them, so they are judged by its capabilities. Auth plan M6. | ||||
| * | store: keys_at tells no map from an empty one | tv | 4 days | 3 | -3/+8 |
| | | | | | | | | | registry::exists counted any value at _continuum/users as a registry; keys_at answers None where there is no map, and its users (records, members, forget records, remakes) say what they make of it. Auth plan M1 (fix). | ||||
| * | refuse misplaced authors | tv | 4 days | 1 | -0/+9 |
| | | |||||
| * | dashboard: polish remake rings | tv | 5 days | 1 | -1/+17 |
| | | |||||
| * | dashboard: remake switch delay | tv | 5 days | 1 | -1/+1 |
| | | |||||
| * | dashboard: add epoch switch indicator | tv | 6 days | 2 | -7/+33 |
| | | |||||
| * | dashboard: map remake votes | tv | 6 days | 1 | -0/+37 |
| | | |||||
| * | fixup 700, 701, 702 | tv | 8 days | 1 | -38/+2 |
| | | |||||
| * | remake: read ops, not diffs | tv | 9 days | 2 | -6/+6 |
| | | | | | This gives bench_replay a speedup of ~8x/64x/280x. | ||||
| * | api: add type casts | tv | 9 days | 1 | -0/+1 |
| | | |||||
| * | add remake benchmarks | tv | 9 days | 2 | -0/+91 |
| | | |||||
| * | remake: download wakes on end instead of ticker | tv | 10 days | 2 | -6/+15 |
| | | |||||
| * | remake: decouple grace time from node's keepalive | tv | 10 days | 4 | -4/+25 |
| | | |||||
| * | document: allow writes during rejoin | tv | 10 days | 4 | -214/+271 |
| | | |||||
| * | LWW everywhere, mostly | tv | 10 days | 4 | -23/+340 |
| | | |||||
| * | remake: copy stale view when writes stop | tv | 10 days | 2 | -5/+11 |
| | | | | | This ensures that stale reads show every write that was answered. | ||||
| * | remake: log expired and missed votes | tv | 10 days | 2 | -9/+61 |
| | | |||||
| * | api: off clock refuses aborting expired remake | tv | 10 days | 1 | -14/+29 |
| | | |||||
| * | remake: introduce follow-the-majority rule | tv | 10 days | 1 | -27/+139 |
| | | |||||
| * | document: reject writes during rejoin | tv | 10 days | 4 | -31/+72 |
| | | |||||
| * | use Automerge as Document instead of AutoCommit | tv | 11 days | 9 | -144/+174 |
| | | | | | This allows a lot of operations to drop mut. | ||||
| * | store function accept any document | tv | 11 days | 1 | -6/+10 |
| | | |||||
| * | tests write through document::testing helpers | tv | 11 days | 5 | -210/+210 |
| | | |||||
| * | remake coordination use document, not automerge | tv | 11 days | 6 | -46/+41 |
| | | |||||
| * | one function for changed paths | tv | 11 days | 1 | -27/+6 |
| | | |||||
| * | remake needs sane clock | tv | 11 days | 2 | -1/+22 |
| | | |||||
| * | remake: drop is_reserved; use is_protocol | tv | 11 days | 1 | -10/+5 |
| | | |||||
| * | remake: drop parse_metadata | tv | 11 days | 1 | -12/+8 |
| | | |||||
| * | replace EpochInfo by EpochRecord | tv | 11 days | 1 | -16/+1 |
| | | |||||
| * | remake: move proposal to its own module | tv | 11 days | 3 | -252/+271 |
| | | |||||
| * | move ChangeSet from swarm to document | tv | 11 days | 3 | -3/+3 |
| | | |||||
| * | talk about "transport" unless mycelium is meant | tv | 2026-10-27 | 1 | -3/+3 |
| | | |||||
| * | remake worker wakes up when vote is due | tv | 2026-10-26 | 4 | -2/+42 |
| | | |||||
| * | describe remake test failures in simulation | tv | 2026-10-26 | 1 | -0/+30 |
| | | |||||
| * | make clippy happy again | tv | 2026-10-26 | 3 | -16/+17 |
| | | |||||
| * | add remake tests on the simulator | tv | 2026-10-26 | 2 | -0/+57 |
| | | |||||
| * | add changed_path minimality test | tv | 2026-10-26 | 1 | -0/+69 |
| | | |||||
| * | add epoch retention tests | tv | 2026-10-26 | 1 | -0/+29 |
| | | |||||
| * | add test ensuring at most one remake commits | tv | 2026-10-26 | 1 | -0/+151 |
| | | |||||
| * | don't cast votes after commit | tv | 2026-10-26 | 1 | -2/+14 |
| | | |||||
| * | add remake stats | tv | 2026-10-26 | 2 | -0/+47 |
| | | |||||
| * | introduce bounded blob downloads | tv | 2026-10-26 | 2 | -5/+8 |
| | | |||||
| * | allow aborting remake with unreachable coordiantor | tv | 2026-10-26 | 1 | -4/+26 |
| | | |||||
| * | remove some dead comments | tv | 2026-10-26 | 1 | -5/+3 |
| | | |||||
| * | don't cast votes once there's a majority | tv | 2026-10-26 | 2 | -4/+48 |
| | | |||||
| * | wrap unix timestamps in newtype | tv | 2026-10-26 | 9 | -90/+148 |
| | | |||||
