kyle and Claude Opus 5.5
cc39318673
fix(core): harden exchange send path from full-codebase review
...
- Cut every fragment of a stream from one encoding (age frozen at the
first fragment) and bounds-check the slice: re-encoding mid-stream
corrupted fragments and could panic when the tick went backwards.
- Fold the bloom summary to fit the MTU instead of sending a ~540-byte
frame that small-MTU links reject; drop the sim's summary MTU
exemption that hid this.
- Finish a peer's in-flight stream before starting another, and count
an addressed message as delivered only after its last fragment.
- Alternate custody and broadcast per peer, rotate through addressed
candidates, and evict the oldest bounce record when full, so neither
path starves.
- Add Exchange::on_send_error; Node::poll uses it so Busy/Unreachable
sends are retried rather than silently dropped.
- Clear bounce records per contact, record duplicates against their
sender, and skip addressed messages that cannot fit the MTU.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-18 05:08:08 -07:00
kyle and Claude Opus 5.5
111a40236d
ci: test the no-alloc build and harden the workflow
...
Run clippy, docs and tests for tines-core with --no-default-features,
gating the MemStore-based tests on `alloc` so they compile there. Fail on
rustdoc warnings, pass --locked everywhere, and pin the toolchain to
1.99.0. In the workflow, use read-only permissions, cancel superseded
runs, add a 20-minute timeout, and pin actions to commit SHAs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-18 05:07:12 -07:00
kyle
6907f000a2
ci: add GitHub Actions workflow
CI / ci (push) Successful in 2m10s
2026-10-18 04:30:00 -07:00
kyle
d10e3cd88e
test(core): close deferred coverage gaps
2026-10-18 04:28:38 -07:00
kyle
277daae89f
fix(core): rebuild_send_queue excludes addressed messages
2026-10-18 03:57:08 -07:00
kyle
1d646344e6
style: cargo fmt --all
2026-10-18 03:28:51 -07:00
kyle
c9ee3684f0
test(sim): addressed relay scenario and property tests
2026-10-18 03:22:35 -07:00
kyle
db39dc1df0
feat(core): Node::observe_to and belief excludes addressed-to-others
2026-10-18 02:56:17 -07:00
kyle
8ad0a7415f
feat(core): addressed store-and-forward in the exchange
2026-10-18 02:39:36 -07:00
kyle
c59834737b
feat(core): reject expired or malformed addressed messages
2026-10-18 02:03:52 -07:00
kyle
2c932e96c0
feat(core): summaries carry only broadcast observations
2026-10-18 01:55:29 -07:00
kyle
65c4aa72c0
feat(core): Store::for_each_broadcast_id
2026-10-18 01:49:01 -07:00
kyle
085b4d35da
feat(core): Observation gains to/lifetime_ms; identity includes to
2026-10-18 01:41:24 -07:00
kyle
4be8042994
docs: add addressed-delivery implementation plan
2026-10-18 01:26:03 -07:00
kyle
720835de2f
docs: pin custody count bound (lifetime + max_count) in addressed-delivery spec
2026-10-18 01:19:40 -07:00
kyle
0e737e3f4c
chore: add cargo doc to ci gate
2026-10-18 01:17:16 -07:00
kyle
16198b4f10
chore: make crates publishable (version req, description, authors)
2026-10-18 01:16:36 -07:00
kyle
6c7b1ed492
docs: add addressed-delivery design spec (draft)
2026-10-18 01:14:57 -07:00
kyle
1a02ef2d93
docs: fix broken intra-doc links; make cargo doc clean
2026-10-18 01:12:19 -07:00
kyle
7ef81ced69
Cleaning up README diagram.
2026-10-18 00:23:59 -07:00
kyle
8a5afd17c8
Add tines.jpg diagram to README
2026-10-18 00:20:33 -07:00
kyle
946a3cec98
chore: license under Apache-2.0 (copyright K. Isom)
2026-10-18 00:01:48 -07:00
kyle
1257f227ce
refactor(sim): move FrameBuf on dup; vary per-node obs; test disconnect/unreachable
2026-10-17 23:58:15 -07:00
kyle
1752bd23ff
refactor(core): dedupe trim/belief comparators and emit_one; add coverage tests
2026-10-17 23:58:15 -07:00
kyle
80ccd25dde
fix(core): reset reassembler slot on buffer overflow; drop tautological assert
2026-10-17 23:58:15 -07:00
kyle
09a676c243
docs: fix Bloom |1 placement and doubled 'The'; PairTransport 'broadcast' wording
2026-10-17 23:58:15 -07:00
kyle
ab9b892d94
chore: ci script and README
2026-10-17 21:48:37 -07:00
kyle
4706004f47
test(sim): property tests for convergence, order independence, monotonicity
2026-10-17 21:42:16 -07:00
kyle
9de7157ee2
feat(sim): harness and convergence scenarios
2026-10-17 17:32:12 -07:00
kyle
5dca574c50
feat(sim): world, contact trace, SimTransport
2026-10-17 16:06:51 -07:00
kyle
1740acd625
feat(core): Node facade
2026-10-17 15:43:57 -07:00
kyle
12e7c79730
test(core): PairTransport helper
2026-10-17 15:19:25 -07:00
kyle
566b217be2
docs: drop stale current-state section from AGENTS.md
2026-10-17 15:13:50 -07:00
kyle
5c4e78f257
docs: add AGENTS.md for agents working on tines
2026-10-17 15:05:04 -07:00
kyle
781710b196
feat(core): BeliefPolicy, LatestWins, SelfFirst
2026-10-17 15:02:51 -07:00
kyle
0bd74080a5
feat(core): exchange state machine
2026-10-17 14:47:20 -07:00
kyle
b935812ed1
feat(core): fragmentation and reassembly
2026-10-17 13:37:43 -07:00
kyle
843ddae6fa
feat(core): Transport trait
2026-10-17 13:05:25 -07:00
kyle
010efbe1f5
feat(core): salted Bloom summary
2026-10-17 12:48:39 -07:00
kyle
7ece265dbd
feat(core): Store trait, TrimPolicy, MemStore
2026-10-16 18:46:31 -07:00
kyle
ba7189804f
feat(core): wire frames with postcard
2026-10-16 18:16:25 -07:00
kyle
3bf09afdd8
feat(core): wire frames with postcard
2026-10-16 18:15:57 -07:00
kyle
8108feb146
feat(core): workspace, Observation, content-derived id
2026-10-16 18:05:52 -07:00
kyle
2d2beb7719
chore: gitignore target/
2026-10-16 17:56:25 -07:00
kyle
138727d4dd
Plan: tines-core + tines-sim implementation plan
2026-10-16 17:52:08 -07:00
kyle
08f024766c
Design: age-based time (RFC 9171 Bundle Age), seq in identity hash
2026-10-16 17:45:57 -07:00
kyle
76f5a6bc77
Design: settle reviewer questions (NodeId, clock, Addr, convergence, v1 scope)
2026-10-16 14:50:39 -07:00
kyle
f73f9247ed
Design doc: tines opportunistic shared memory
2026-10-16 14:43:28 -07:00