docs: sweep README, CHANGELOG, THREAT_MODEL and AGENTS after the 1.0 review fixes
- CHANGELOG: tines-core 1.0.0 and the hosts' 0.4.0 are separate, unreleased sections. Every core API break is listed (the nine pub(crate) items, the private modules and the frame_sender path, the local constants per decision K, non_exhaustive types, store_mut). The new names (WallClockStore, Node::set_wall_clock, peer_time_estimate, flush, IdentityChanged) are called out. The host section covers tines::trust, the config changes, decision J, snapshots, and the review fixes. - THREAT_MODEL: F6, F8, F9 and F13 are fixed with their commits. F18 is partly fixed: the store side and the flush on first trusted time are done, but timed and shutdown flushes are still open. F19 now records decision J and the plausibility bounds, and what remains. §9, §10 and §11 are updated to match. - README: Dest and sig in the observation table; flush and is_empty in the store table; only the public wire constants are listed; a new "Trusted time" section with the config keys and the systemd ordering; the MSRV and fuzz CI jobs; frame_sender's new path. - AGENTS: 1.0 is implemented but not yet published. The constants list shows the pub(crate) split, PEER_IDLE_MS, MIN_MTU's role and where MAX_FRAGMENTS lives. Notes the hidden conformance module. - tines-bt README: frame_sender's path, and its own MAX_PEERS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ architecture in the **spec first**:
|
||||
- **Addressed delivery (authoritative):** `docs/superpowers/specs/2026-10-18-tines-addressed-delivery.md`
|
||||
- **Fleet deployment v1 (authoritative):** `docs/superpowers/specs/2026-10-18-tines-fleet-deployment-design.md` — supersedes the addressed-delivery spec's epidemic forwarding (custody chain with handoff receipts).
|
||||
- **Fleet fixes (done):** `docs/superpowers/specs/2026-10-19-tines-fleet-fixes.md` — security-assessment findings F1–F5 and F17.
|
||||
- **tines-core 1.0 (done — shipped as tines-core 1.0.0, 2026-10-21):** `docs/superpowers/specs/2026-10-18-tines-1-0-design.md` — wire version, public API, signature slot, core hardening (§10).
|
||||
- **tines-core 1.0 (implemented on `feat/tines-core-1-0`; publish pending):** `docs/superpowers/specs/2026-10-18-tines-1-0-design.md` — wire version, public API, signature slot, core hardening (§10).
|
||||
- **Host hardening (next, hosts):** `docs/superpowers/specs/2026-10-19-tines-host-hardening.md` — findings F10–F12.
|
||||
- **Implementation plans:** `docs/superpowers/plans/`
|
||||
|
||||
@@ -111,15 +111,28 @@ Split into **wire** (frozen for wire v1 — changing one changes how a v1 peer
|
||||
decodes or interprets a frame) and **local** (never crosses the wire; may
|
||||
change in a minor release):
|
||||
|
||||
- **Wire:** `WIRE_VERSION=4`, `MAX_TOPIC=64`, `MAX_PAYLOAD=1024`,
|
||||
- **Wire** (public): `WIRE_VERSION=4`, `MAX_TOPIC=64`, `MAX_PAYLOAD=1024`,
|
||||
`MAX_FRAME=1500`, `SUMMARY_BYTES=512`, `ACK_IDS_CAP=90`, `MAX_SIG=64`,
|
||||
`BLOOM_K=3`, plus the private `MAX_FRAGMENTS=64`.
|
||||
- **Local:** `MAX_PEERS=8`, `SUMMARY_INTERVAL_MS=2000`,
|
||||
`REASSEMBLY_TIMEOUT_MS=5000`, `SEND_QUEUE_CAP=256`, `MIN_MTU`,
|
||||
`EVENT_QUEUE_CAP=64`, `DROP_TABLE_CAP=32`, `BCAST_SENT_CAP=256`,
|
||||
`ACK_BUFFER_CAP=256`.
|
||||
`BLOOM_K=3`. Also wire, but private: `MAX_FRAGMENTS=64`, which lives in
|
||||
`tines-core/src/frag.rs`, not `consts.rs`.
|
||||
- **Local** (`pub(crate)`, spec decision K: defaults that a later 1.x makes
|
||||
configurable): `MAX_PEERS=8`, `SUMMARY_INTERVAL_MS=2000`,
|
||||
`REASSEMBLY_TIMEOUT_MS=5000`, `SEND_QUEUE_CAP=256`, `EVENT_QUEUE_CAP=64`,
|
||||
`DROP_TABLE_CAP=32`, `BCAST_SENT_CAP=256`, `ACK_BUFFER_CAP=256`,
|
||||
`PEER_IDLE_MS=30_000`, and `MIN_MTU=23`. `MIN_MTU` is the lower bound of the
|
||||
fragmentation MTU sweep in tests (BLE ATT's default), not the smallest
|
||||
usable MTU; `Transport::mtu`'s rustdoc states those floors (85 bytes for
|
||||
every valid observation).
|
||||
|
||||
Match the exact values above.
|
||||
Match the exact values above. A crate outside core that needs a matching
|
||||
number keeps its own constant (as `tines-bt` does for `MAX_PEERS` and
|
||||
`MIN_MTU`).
|
||||
|
||||
The `conformance` feature also compiles a `#[doc(hidden)]`
|
||||
`tines_core::conformance` module: byte-level frame encoders and decoders, and
|
||||
mirrors of the local limits, for the fuzz harness and tests outside core. It
|
||||
isn't supported public API and isn't covered by semver. Don't build on it
|
||||
outside the workspace and `fuzz/`.
|
||||
|
||||
## Crate layout
|
||||
|
||||
|
||||
Reference in New Issue
Block a user