david
|
8c054094a1
|
feat: M3 peer gossip protocol
Refs #1
- peers table (peer_id, addr, cursor, last_handshake)
- watch serves HTTP API: GET /v1/ping (knowledge vector),
GET /v1/log?node=&after= (cursor-paged pull), POST /v1/obs/batch
- anti-entropy sweep (Run): ping, pull what we lack, push own obs;
echo suppressed by node_id ownership; reconcile-on-pull
- config via KNOX_PEERS / KNOX_PEER_ADDR; knox gossip status
- db: GossipObservation wire type, PushObservations, ObservationsAfter,
KnowledgeVector, peer upsert/list
- integration tests: bidirectional convergence + idempotency
|
2026-08-29 04:53:26 -07:00 |
|
david
|
aa0dec68c1
|
feat: M2 composite locator + idle reconcile
Refs #1
- observations: hcl backfilled from local rowid; (node_id, hcl) UNIQUE
locator index becomes the gossip merge key
- threads: cluster_key column + partial UNIQUE index; CreateThreadCluster
is idempotent, threader folds into exact cluster_key before heuristic
- AutoLinkThreadObservations dedup re-expressed on hcl DESC
- new `knox reconcile [--dry-run]` rebuilds entries from the observation
log and re-links threads idempotently (entry count, thread cluster_key
verified bit-identical from log-only DB)
|
2026-08-29 04:47:15 -07:00 |
|
david
|
f5766aa6d8
|
docs: gossip protocol design for cross-machine sharing
Tracks issue #1. Audits knox determinism (path-based fingerprints,
wall-clock fact times, TF-IDF tie-breaks, autoincrement IDs) and
specifies schema changes, HLC clocks, merge rules, reconcile, and
M1-M4 milestones.
|
2026-08-29 03:40:53 -07:00 |
|