Mark Qvist
eae84ed8ba
Improved markdown version of the manual
2026-05-23 09:26:38 +02:00
Mark Qvist
31539c5a0e
Improved markdown formatting of understanding reticulum manual chapter
2026-05-23 09:21:56 +02:00
Mark Qvist
abca32bca4
Improved markdown formatting of understanding reticulum manual chapter
2026-05-23 09:18:45 +02:00
Mark Qvist
1d7cfe7c20
Prepare release
1.3.1
2026-05-22 23:24:46 +02:00
Mark Qvist
a516960e6f
Prepare release
2026-05-22 23:23:53 +02:00
Mark Qvist
870bee16b1
Prepare release
2026-05-22 23:21:11 +02:00
Mark Qvist
3814102936
Changelog: Fixed regression in request response transfer size accumulator
2026-05-22 12:23:44 +02:00
Mark Qvist
aaadff547d
Updated documentation
2026-05-21 21:22:09 +02:00
Mark Qvist
f0a3fadcd1
Fixed offline release validation command typo
2026-05-21 21:21:21 +02:00
Mark Qvist
7cbce84cbd
Prepare release
1.3.0
2026-05-21 17:50:18 +02:00
Mark Qvist
fe334c0d7c
Updated changelog
2026-05-21 17:41:27 +02:00
Mark Qvist
33d5a8e2a8
Cleanup
2026-05-21 17:38:29 +02:00
Mark Qvist
e80bf471ec
Slight robustification
2026-05-21 17:31:20 +02:00
Mark Qvist
7dfdea2395
Raise descriptive error if hashlib.file_digest is not available.
2026-05-21 17:16:31 +02:00
Mark Qvist
74b61aebd2
Updated docs
2026-05-21 17:06:47 +02:00
Mark Qvist
ce9071e2d3
Added ability to use wildcards in artifact fetch specifications
2026-05-21 17:06:04 +02:00
Mark Qvist
d6cf59dcc8
Fix error message when no specified artifacts were available for fetch
2026-05-21 16:34:34 +02:00
Mark Qvist
de61652d37
Updated changelog
2026-05-21 16:31:48 +02:00
Mark Qvist
6181f62d93
Return not found instead of remote error on missing document
2026-05-21 15:31:22 +02:00
Mark Qvist
ed66b4873e
Updated version
2026-05-21 15:17:33 +02:00
Mark Qvist
26869941a4
Merge branch 'patch_fix_channel_outlet_race'
2026-05-21 15:16:14 +02:00
Mark Qvist
ee7b4e7ae5
Consistency
2026-05-21 15:16:09 +02:00
Mark Qvist
7866484453
Merge branch 'fix_kd_iter'
2026-05-21 15:01:37 +02:00
Mark Qvist
817b3b1a12
Consistency
2026-05-21 15:01:17 +02:00
Mark Qvist
17f6968467
Added blackhole methods to API docs
2026-05-21 13:19:06 +02:00
Mark Qvist
a96a1d6692
Adjusted timeouts
2026-05-20 01:08:11 +02:00
Mark Qvist
c1081fa9a4
Consistency
2026-05-20 01:07:54 +02:00
Mark Qvist
dd3104094b
Fixed check for existing link at shutdown
2026-05-20 00:32:08 +02:00
Mark Qvist
dc68eea313
Fix commit message rendering
2026-05-19 21:35:45 +02:00
Jeremy O'Brien
794e437f6d
Channel: prevent sequence holes and ghost envelopes when sending on a dying outlet
...
RNSChannelOutlet.send() can return a packet that never reached the wire
(link not ACTIVE, no capable interface, etc). The old Channel.send()
queued the envelope in _tx_ring before calling outlet.send(), then
tried to rewind _next_sequence and remove the envelope if the outlet
returned a failed packet. Two problems:
- Between queueing and outlet.send() returning, _tx_ring held an
envelope with packet.raw=None. Any worker thread iterating the
ring (timeout fire, proof callback) crashed in get_packet_id's
packet.get_hash() with a TypeError on None.raw.
- The rewind was only safe for a single-threaded sender: it checked
"is _next_sequence one past mine?" and skipped the rewind otherwise.
Under concurrent senders, the rewind silently failed, leaving a
hole in the on-wire sequence stream. The receiver's contiguous
seqnum rule then stalled the channel permanently with no error.
This fix serializes the reservation-and-transmit pair with a per-channel
_send_lock so the rewind is always correct, and defers queueing until
outlet.send() returns a real packet so _tx_ring never contains a
packet-less envelope. _packet_tx_op() and get_packet_id() now also
defensively skip/return-None for packet-less envelopes.
Also handle the small race where a proof arrives between outlet.send()
registering the receipt and us installing the delivery callback: after
registration, re-read the receipt status and synthesize the
_packet_delivered() call if it's already DELIVERED.
2026-05-19 14:52:59 -04:00
Jeremy O'Brien
ebf544d335
rnsh: don't wait forever for rns operations when timeout isn't set
2026-05-19 07:46:50 -04:00
Jeremy O'Brien
939f30fef2
Don't iterate known_destinations directly; it can change during iteration
2026-05-19 07:46:50 -04:00
Mark Qvist
4549bbfdb9
Docs formatting
2026-05-19 11:41:09 +02:00
Mark Qvist
6c989eb38e
Prepare release
1.2.9
2026-05-19 01:08:42 +02:00
Mark Qvist
137d73ad0d
Updated version
2026-05-19 00:51:12 +02:00
Mark Qvist
58d4162f6d
Updated rngit documentation
2026-05-19 00:48:14 +02:00
Mark Qvist
67625395fe
Updated logging
2026-05-18 22:48:18 +02:00
Mark Qvist
f62512381a
Updated rngit documentation
2026-05-18 22:01:55 +02:00
Mark Qvist
888e3102de
Added offline RSM release manifest verification
2026-05-18 17:55:10 +02:00
Mark Qvist
f83435c697
Updated rngit documentation
2026-05-18 17:13:31 +02:00
Mark Qvist
5243d646f0
Improved known destination persist reliability
2026-05-18 14:57:17 +02:00
Mark Qvist
bdb284ce5d
Improved page node ref handling in commit links
2026-05-18 14:46:00 +02:00
Mark Qvist
1b34820601
Added ability to fetch new verified releases directly from RSM-embedded release manifest data. Added local release generation and signing with the --local option to rnid.
2026-05-18 13:49:01 +02:00
Mark Qvist
01010dd599
Added version getter to setup.py
2026-05-18 13:46:18 +02:00
Mark Qvist
da32709f7c
Updated makefile
2026-05-18 13:45:40 +02:00
Mark Qvist
cdc6159a15
Added canonical release RSM structure validator to rnid
2026-05-18 13:32:54 +02:00
Mark Qvist
eb2f7ae455
Implemented remote HEAD tracking for forks and mirrors in rngit
2026-05-18 12:39:22 +02:00
Mark Qvist
a74f1bd89f
Save manifest on release fetch
2026-05-18 11:52:46 +02:00
Jeremy O'Brien
603f709139
Don't iterate known_destinations directly; it can change during iteration
2026-05-18 00:10:25 -04:00
Mark Qvist
0dd063a32e
Clear previous request progress
2026-05-18 03:37:52 +02:00