<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tesseras-paste/src, branch v0.1.3</title>
<subtitle>Decentralized pastebin built on tesseras-dht
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/'/>
<entry>
<title>Bump version to 0.1.3, update tesseras-dht to 0.1.4</title>
<updated>2026-03-27T14:58:41+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-27T14:58:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=75fddf425102369828f7e8366ebdad4ea086fd07'/>
<id>75fddf425102369828f7e8366ebdad4ea086fd07</id>
<content type='text'>
- Block marker on delete prevents DHT re-import
- Remote delete propagation via delete_callback
- New index page with project info and man page links
- Fix lookups status order (started/completed)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Block marker on delete prevents DHT re-import
- Remote delete propagation via delete_callback
- New index page with project info and man page links
- Fix lookups status order (started/completed)
</pre>
</div>
</content>
</entry>
<entry>
<title>Add automatic re-join and -v flag for verbose logging</title>
<updated>2026-03-26T01:19:39+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-26T01:19:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=4214189961d59b9de15e221a9c4b229c0d646e78'/>
<id>4214189961d59b9de15e221a9c4b229c0d646e78</id>
<content type='text'>
When the routing table drops to zero peers, the daemon now
re-joins bootstrap nodes every 60s, unbanning their addresses
first so replies are not silently discarded.

Both tp and tpd accept -v for debug-level output without
needing RUST_LOG environment variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the routing table drops to zero peers, the daemon now
re-joins bootstrap nodes every 60s, unbanning their addresses
first so replies are not silently discarded.

Both tp and tpd accept -v for debug-level output without
needing RUST_LOG environment variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit stdin read in tp, bound protocol drain, document Arc leak</title>
<updated>2026-03-25T18:49:08+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:41:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=290f53c38cdacd502eb6dda52f2ad207063e3973'/>
<id>290f53c38cdacd502eb6dda52f2ad207063e3973</id>
<content type='text'>
- tp: limit stdin to 64 KiB + 1 byte to reject oversized pastes
  early without unbounded memory allocation
- daemon: bound the oversized-line drain to MAX_LINE_SIZE so a
  client without newlines cannot block beyond the read timeout
- tpd: document intentional Arc::into_raw leak in signal handler
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- tp: limit stdin to 64 KiB + 1 byte to reject oversized pastes
  early without unbounded memory allocation
- daemon: bound the oversized-line drain to MAX_LINE_SIZE so a
  client without newlines cannot block beyond the read timeout
- tpd: document intentional Arc::into_raw leak in signal handler
</pre>
</div>
</content>
</entry>
<entry>
<title>Harden identity key permissions, atomic writes, and HTTP method</title>
<updated>2026-03-25T18:30:45+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:26:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=62b68cc461b5e298add3ab190fe9a38f3efefe7a'/>
<id>62b68cc461b5e298add3ab190fe9a38f3efefe7a</id>
<content type='text'>
- Write identity.key with mode 0600 to prevent other users from
  reading the Ed25519 private seed
- Use destination filename in atomic_write temp path to avoid
  collisions between concurrent writes to different files
- Reject HTTP methods other than GET/HEAD with 405
- Return "Hello Tesseras World" on GET /
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Write identity.key with mode 0600 to prevent other users from
  reading the Ed25519 private seed
- Use destination filename in atomic_write temp path to avoid
  collisions between concurrent writes to different files
- Reject HTTP methods other than GET/HEAD with 405
- Return "Hello Tesseras World" on GET /
</pre>
</div>
</content>
</entry>
<entry>
<title>Add missing pledge promises (drm, prot_exec) and source reference</title>
<updated>2026-03-25T18:13:38+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:13:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=b6e3f14ebd0601b1604dcb29fba07b6446a140b7'/>
<id>b6e3f14ebd0601b1604dcb29fba07b6446a140b7</id>
<content type='text'>
Add reference to pledgereq[] in /usr/src/sys/kern/kern_pledge.c
and include drm and prot_exec that were missing from the list.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add reference to pledgereq[] in /usr/src/sys/kern/kern_pledge.c
and include drm and prot_exec that were missing from the list.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix clippy warnings: needless borrow and collapsible if</title>
<updated>2026-03-25T18:10:15+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T18:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=63c080840a7567f67effa9703d7c94b488d22fc1'/>
<id>63c080840a7567f67effa9703d7c94b488d22fc1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Log socket setup errors in Unix client handler</title>
<updated>2026-03-25T17:57:18+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:57:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=71a839341e34c7808cc90a6e5e25d269588e989c'/>
<id>71a839341e34c7808cc90a6e5e25d269588e989c</id>
<content type='text'>
Warn when set_nonblocking or set_read_timeout fails instead of
silently disconnecting the client.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Warn when set_nonblocking or set_read_timeout fails instead of
silently disconnecting the client.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle HTTP connections in separate threads with cap of 8</title>
<updated>2026-03-25T17:56:50+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:56:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=2f1f611bf7b48fc9dd5568ccca17c0c36b997200'/>
<id>2f1f611bf7b48fc9dd5568ccca17c0c36b997200</id>
<content type='text'>
A slow connection or DHT lookup (up to 30s) no longer blocks
the entire HTTP accept loop. Connections beyond the limit get
a 503 response.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A slow connection or DHT lookup (up to 30s) no longer blocks
the entire HTTP accept loop. Connections beyond the limit get
a 503 response.
</pre>
</div>
</content>
</entry>
<entry>
<title>Exit early if data directory cannot be created</title>
<updated>2026-03-25T17:55:41+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:55:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=e93f672b2f9c7ce3c8deae5ddbadcd21ba919e33'/>
<id>e93f672b2f9c7ce3c8deae5ddbadcd21ba919e33</id>
<content type='text'>
Report the actual error instead of silently ignoring it and
failing later with a confusing message in PasteStore::open.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Report the actual error instead of silently ignoring it and
failing later with a confusing message in PasteStore::open.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix critical data integrity and security issues</title>
<updated>2026-03-25T17:22:21+00:00</updated>
<author>
<name>murilo ijanc</name>
</author>
<published>2026-03-25T17:22:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tesseras.net/tesseras-paste/commit/?id=b9f813fb4b7de1042370b529b9ccc036b208465b'/>
<id>b9f813fb4b7de1042370b529b9ccc036b208465b</id>
<content type='text'>
- Atomic writes in store (write-to-temp + rename) to prevent
  corruption on crash
- Validate DHT results against requested content hash to reject
  forged data from malicious nodes
- Limit protocol line size to 128 KiB on Unix socket to prevent
  memory exhaustion
- Use saturating_add for TTL expiry to prevent u64 overflow
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Atomic writes in store (write-to-temp + rename) to prevent
  corruption on crash
- Validate DHT results against requested content hash to reject
  forged data from malicious nodes
- Limit protocol line size to 128 KiB on Unix socket to prevent
  memory exhaustion
- Use saturating_add for TTL expiry to prevent u64 overflow
</pre>
</div>
</content>
</entry>
</feed>
