All notable changes to ProtoCore are documented here.
[Unreleased]
Bug Fixes
- an inbound accept could take the SSH slot the reverse tunnel held (
e93a830)
- the client built its own KEXINIT, and I_C / I_S were sized for one role (
8dbfea8)
- the client role could not complete a key exchange (
85329fe)
- ssh_scp.c never compiled, name the mode enum as the header declares it (
0991534)
- ssh_forward.c never compiled, add the missing session.h include (
e904608)
- the software server was the fourth site accepting an all-zero secret (
4bc3977)
- RFC 8446 7.4.2 requires aborting on an all-zero X25519 shared secret (
83be793)
- the curator's cap filled with flagged-valid entries, shipping no rejection cases (
f02b770)
- protocore_config.h is the entry point, not types.h (
df81505)
- three headers used the macro without the header that defines it (
444edf0)
- every header carries its own extern C; protocore.h stops wrapping its includes (
8ffc88e)
- the exchange hash declared a 64-byte out its SHA-256 caller does not have (
92e8ce2)
- the Ns table made every leaf an indirect always_inline call at -Og (
7f0b3b0)
- the i2c command link was shared per bus; pc_mnt_fs published a C++ type (
5153630)
- the nvs seam serialises; seven fs entry points and one spi transfer were unbounded (
7a6630b)
- put_blob and put_str judged their bounds after committing, or not at all (
1f32484)
- the two backends gave different wrong answers for a blob and a string (
280fbc6)
- the fs backend had no sync, so the WAL could not bind the only persistent store (
5fe8ce5)
- a conflicted autostash pop committed its markers into the changelog (
2e47cb0)
- modmul guarded its operand count nowhere; stale .cpp references (
e527f96)
- the RSA memory-init wait was inverted; four more the vendor arm never proved (
2043db6)
- sha256's accelerated arm dropped the work parameter; the KDF term ignored its context (
81a70cb)
- a liboqs disagreement read as liboqs being absent; scope the agent rules to tools/ (
b8a07dc)
- the vendor arm hashed at an offset only the software arm defined (
5b26f3a)
- the misaligned priming load ran with less than a word of work left (
022e8ed)
- claiming a slot orphaned both engines' borrows (
c722cbf)
- the init wipe ran through the pointer from before the split (
6aac99b)
- a re-used stream slot served the previous request's pseudo-headers (
690d135)
- the re-init split ran from a base it had already zeroed away (
648b45b)
- an invalid record is discarded, the association survives (
aa16fa3)
- legacy_record_version is ignored, per RFC 9147 sec 4 (
03c5fa3)
- a retransmitted fragment that changes a byte aborts reassembly (
b423bdc)
- illegal_parameter for a bad cookie, abort a non-empty legacy_cookie, and RFC 7250 outcome 2 (
50d3c3b)
- the key schedule reaches its own region by field, like the rest (
6795e0e)
- reach the connection's own storage, like ssh_pkt_slot_storage (
c15ab56)
- the slot picks its region of the pool's one borrow (
636c63f)
- the borrow is taken once per connection, not once per init (
fd8bb4a)
- the portable TLS arm is a third carrier of PC_ENABLE_TLS_RPK (
02125b4)
- a request past 255*HashLen has no defined answer (RFC 5869 sec 2.3) (
e49c4e8)
- the suite check uses the IANA code point constant (
40801ed)
- the offered cipher suite and legacy_compression_methods are checked (
0ef116e)
- a zero-length Handshake or Alert record is neither sent nor accepted (
2d3e3a7)
- h3_fail is defined above its first use (
49067b0)
- Fixed Bit, Reserved Bits and the 2^60 max_streams bound (RFC 9000) (
a4f886f)
- a content-length that disagrees with the DATA makes the request malformed (
43d1127)
- per-type frame length and stream-id guards, and a CONTINUATION cap (
ed39a65)
- coaps_server passed the address of a keys pointer, not the keys (
73501c4)
- a HEADERS on an open stream is a trailer section, not a stream-id error (
e2f370a)
- h2_server suite passed pc_h2_write_header its arguments out of order (
a635744)
- reject a zero or overflowing WINDOW_UPDATE (RFC 9113 sec 6.9, 6.9.1) (
b439489)
- the outbound frame borrows from the plaintext arena HTTP works out of (
ce0a1e0)
- DATA on an idle or closed stream is refused before the app sees it (RFC 9113 sec 5.1, 6.1) (
0815504)
- an oversize dynamic-table size update is a decoding error, not a clamp (
7ad71ec)
- a prefix integer that overflows 32 bits is a decoding error (RFC 7541 sec 5.1) (
ca9bf33)
- the re-key count is a power of two, bounded by RFC 4253 sec 9 and RFC 4344 sec 3.2 (
b18fb31)
- derive the re-key packet count from the 1 GB bound (RFC 4253 sec 9) (
cb02d8e)
- a wrong KEX guess is dropped, not taken as the real KEXDH_INIT (RFC 4253 sec 7.1) (
3453650)
- EXT_INFO belongs to the first NEWKEYS, not every re-key (RFC 8308 sec 2.4) (
93c23bd)
- the remaining ssh_dh_derive_keys_sid call sites take both directions (
2220fc8)
- native_ssh_pqc builds the SSH transport, so it has to define PC_ENABLE_SSH (
c7f4cc6)
- native_ssh_hardened builds the SSH stack, so it has to define PC_ENABLE_SSH (
ef6f509)
- four audit findings - session-id binding, request fields, CR NUL, channel guards (
ac76ab6)
- refuse a password-change request instead of authing on the old password (
5091c67)
- end a subnegotiation only on IAC SE, not a bare 240 (
9c2dd30)
- validate the userauth service name; pin the telnet greeting length (
4792b06)
- frame a back-to-back packet pair into the slot instead of dropping the second (
a445c4a)
- three more blob tools onto findroot; fix sibling import for -m; guard crossinstall (
c8460dc)
- blob_parity onto findroot, and guard its module-level main() (
48c01fb)
- base-less relpath printed CWD-relative paths; use findroot.rel (
fa5ad66)
- revive the owner-context guard, and single-source its root via findroot (
6a806ef)
- three files took protoframe.h through log.h or telnet.h (
ede98b6)
- twelve PC_LOGx sites still passed their values variadically (
d4ec123)
- the token frame passes its two strings as values (
229d76d)
- a refused send ends the transfer instead of writing on (
8a607f0)
- the plaintext arena covers the SSH receive nest with compression on (
c52778f)
- the two PC_key_max macros get distinct names at file scope (
ce3b887)
- the compression buffers are wiped when the slot is reset (
78852ff)
- pc_ssh_conn_send reports a refused queue instead of claiming the bytes went (
cd435b1)
- a half-finished keyboard-interactive exchange dies with its connection (
ad9cbc4)
- the derived session keys and the DTLS shared secret are wiped (
291da41)
- the slot's persistent wire binds at accept, not mid-dispatch (
bc52f7a)
- PC_WORK_SSH_CONN carries the flight, and the crypto work it already borrowed (
68645ad)
- the slot holds a flight, so the second packet of a dispatch is not dropped (
9a5499f)
- a 2-byte over-read on the wire, two dead stdio includes, three unchecked spans (
4e71254)
- the scalar and the nonce do not outlive the signature (
447c799)
- the by-value transcript parameter aliased the caller's bytes (
841841c)
- a live context cannot share the one-shot work buffer (
66c2a02)
- the seed borrow is checked before it is written through (
5a31c45)
- the hash context is a view, so a struct copy aliases it (
2f68757)
- the key schedule needs PC_TLS13_KS_BORROW, not PC_TLS13_KS_CAP (
9b04dff)
- the slot's crypto bytes are bound before anything derives out of them (
145c3b9)
- the two record layers expand their traffic keys out of the caller's bytes (
747e4df)
- the accumulator fill is the raw mover, not the aligned-span one (
cedb0cb)
- the partial word merged instead of overwriting past the span (
a054a54)
- the pad and the state copy are spans, not byte walks (
d437c80)
- mem.cpy stores a whole word, so the accumulator lost its length (
87ab003)
- the key schedule leaked a persistent borrow per handshake (
7aa25f1)
- the key schedule leaked a persistent borrow per handshake (
a8421f3)
- available() and read() step the open, so a polling caller advances its connect (
deea2e7)
- four vendor components become capabilities, named for what they include (
2d5346a)
- external-RAM placement selects on PC_HAS_PSRAM (
c5632da)
- the vendor TLS stack is a capability, not a consequence of not being the host (
fa574c8)
- pc_server_reset() drops the not-found handler, and native_swar builds no library source (
c8e8af8)
- the pin guards ask for the capability, and the drivers run against the pin table (
cf45985)
- Deflate and Inflate bind their instance inside the gate that declares its type (
e526098)
- the bus guards ask for the capability instead of asking about the build (
aeb242e)
- CodeQL traces every native env, and native_codeql links again (
10c3865)
- fold the repeated header lines gcovr emits, which SonarQube rejects outright (
c3333fe)
- gen_compiledb and compile_examples climbed two levels to the repo root, not three (
9d2e963)
- select_envs resolved affected_common under the repo root, which the tools/ move broke (
9b2cfc9)
CI / Build
<<<<<<< Updated upstream
- bump github/codeql-action from 4.38.1 to 4.38.2 (
314be15)
Stashed changes
- fix the workflows #39 left red on main (3b5a7f9)
- update test report + coverage [skip ci] (
31cdbfd)
- update CHANGELOG.md [skip ci] (
cce89fe)
- PlatformIO and Arduino compile the HAL arms and find the headers outside src/ (
d23cb7a)
- fix the red workflows on main (
4ac72a8)
- update test report + coverage [skip ci] (
4986f3e)
- update CHANGELOG.md [skip ci] (
84c2395)
- bump cspell from 10.3.1 to 10.3.3 (
188da5b)
- update test report + coverage [skip ci] (
43500b3)
- update CHANGELOG.md [skip ci] (
07a9b41)
- bump github/codeql-action from 4.38.0 to 4.38.1 (
802e31f)
- bump prettier from 3.9.6 to 3.9.9 (
915e6d7)
- update CHANGELOG.md [skip ci] (
8550746)
- update CHANGELOG.md [skip ci] (
cb955b5)
- update CHANGELOG.md [skip ci] (
fd76569)
- bump cspell from 10.0.1 to 10.3.1 (
9f87f78)
- bump github/codeql-action from 4.37.7 to 4.38.0 (
a463dca)
- update CHANGELOG.md [skip ci] (
a8b6904)
- update CHANGELOG.md [skip ci] (
098eb63)
- update CHANGELOG.md [skip ci] (
b87e9ec)
- update CHANGELOG.md [skip ci] (
46bf037)
- update CHANGELOG.md [skip ci] (
67fdc87)
- update CHANGELOG.md [skip ci] (
24d087d)
- update CHANGELOG.md [skip ci] (
45942b0)
- update CHANGELOG.md [skip ci] (
aebb075)
- update CHANGELOG.md [skip ci] (
de6a25f)
- update CHANGELOG.md [skip ci] (
8c51010)
- update CHANGELOG.md [skip ci] (
8239d5e)
- update CHANGELOG.md [skip ci] (
eaae866)
- update CHANGELOG.md [skip ci] (
1d26b01)
- update CHANGELOG.md [skip ci] (
e15afa9)
- update CHANGELOG.md [skip ci] (
6de5e91)
- update CHANGELOG.md [skip ci] (
e772759)
- update CHANGELOG.md [skip ci] (
383f238)
- update CHANGELOG.md [skip ci] (
fdd484a)
- a suite is a directory, and it says what it is made of (
f38e27a)
- test/ declares what it is, and the audit reads every tree (
dd98c61)
- the module declarations get a reader, and it is the one that used to overwrite them (
3149883)
- the module declarations get a reader, and it is the one that used to overwrite them (
700683e)
- fix the dependency lists the declaration conversion corrupted (
1d52492)
- keep the formatters out of the submodule (
65b5051)
- platformio.ini stops rendering the native envs; the dep graph reads the build (
892088d)
- MMgr as a submodule, not an embedded repo (
63f331c)
- one directory per module, declared not inferred, and the flags move to CMake (
a207327)
- nine of ten guards green, and two of them were measuring the wrong thing (
985c618)
- update CHANGELOG.md [skip ci] (
1441717)
- update CHANGELOG.md [skip ci] (
b12d17e)
- update CHANGELOG.md [skip ci] (
a850521)
- update CHANGELOG.md [skip ci] (
3a7d58b)
- update CHANGELOG.md [skip ci] (
dd93a4a)
- update CHANGELOG.md [skip ci] (
7aa5c13)
- update CHANGELOG.md [skip ci] (
cdea70c)
- update CHANGELOG.md [skip ci] (
fabe8d2)
- update CHANGELOG.md [skip ci] (
7e09b17)
- update CHANGELOG.md [skip ci] (
320de3b)
- update CHANGELOG.md [skip ci] (
c29483b)
- update CHANGELOG.md [skip ci] (
6c9d173)
- update CHANGELOG.md [skip ci] (
c68d6ab)
- update CHANGELOG.md [skip ci] (
af66200)
- update CHANGELOG.md [skip ci] (
3223726)
- update CHANGELOG.md [skip ci] (
430d5c7)
- update CHANGELOG.md [skip ci] (
3ee6f8e)
- update CHANGELOG.md [skip ci] (
8d62e65)
- update CHANGELOG.md [skip ci] (
137a0af)
- update CHANGELOG.md [skip ci] (
b139154)
- update CHANGELOG.md [skip ci] (
f8ddc1f)
- update CHANGELOG.md [skip ci] (
b847f5a)
- update CHANGELOG.md [skip ci] (
c3f187f)
- update CHANGELOG.md [skip ci] (
af85ea5)
- update CHANGELOG.md [skip ci] (
2b4babd)
- update CHANGELOG.md [skip ci] (
dd95f04)
- bump streetsidesoftware/cspell-action from 8 to 9 (
fcc1fa8)
- update CHANGELOG.md [skip ci] (
dfc31d6)
- update CHANGELOG.md [skip ci] (
3002409)
- update CHANGELOG.md [skip ci] (
338300d)
- update CHANGELOG.md [skip ci] (
2ca9ff5)
- bump github/codeql-action from 4.37.6 to 4.37.7 (
e9695ec)
- update CHANGELOG.md [skip ci] (
dee1771)
- update CHANGELOG.md [skip ci] (
5f48890)
- update CHANGELOG.md [skip ci] (
0fb78e4)
- update CHANGELOG.md [skip ci] (
2d6d939)
- update CHANGELOG.md [skip ci] (
601177f)
- update CHANGELOG.md [skip ci] (
3ff134f)
- update CHANGELOG.md [skip ci] (
c319e4d)
- update CHANGELOG.md [skip ci] (
fe42832)
- update CHANGELOG.md [skip ci] (
d6a3a95)
- update CHANGELOG.md [skip ci] (
0fd3016)
- update CHANGELOG.md [skip ci] (
b2637b8)
- update CHANGELOG.md [skip ci] (
849ff74)
- update CHANGELOG.md [skip ci] (
4381344)
- update CHANGELOG.md [skip ci] (
864d5d3)
- update CHANGELOG.md [skip ci] (
99c1bbf)
- update test report + coverage [skip ci] (
4ce1635)
- update CHANGELOG.md [skip ci] (
eafdd3b)
- update CHANGELOG.md [skip ci] (
41f8a5a)
- update CHANGELOG.md [skip ci] (
213c34e)
- update CHANGELOG.md [skip ci] (
1913244)
- update test report + coverage [skip ci] (
cac5a0c)
- update CHANGELOG.md [skip ci] (
cc0a7a0)
- update CHANGELOG.md [skip ci] (
44754f3)
- update CHANGELOG.md [skip ci] (
561041f)
- update CHANGELOG.md [skip ci] (
d804a0e)
- update CHANGELOG.md [skip ci] (
f13ccf5)
- update CHANGELOG.md [skip ci] (
2b90c5b)
- update CHANGELOG.md [skip ci] (
7c190b0)
- update CHANGELOG.md [skip ci] (
92798b0)
- update CHANGELOG.md [skip ci] (
91a5b98)
- update CHANGELOG.md [skip ci] (
7652565)
- update CHANGELOG.md [skip ci] (
39e487f)
- update CHANGELOG.md [skip ci] (
6fa5fe9)
- update test report + coverage [skip ci] (
d53f1ef)
- update CHANGELOG.md [skip ci] (
8e4b024)
- update CHANGELOG.md [skip ci] (
fc9f5df)
- update CHANGELOG.md [skip ci] (
919ffa5)
- update CHANGELOG.md [skip ci] (
2e91ee5)
- update CHANGELOG.md [skip ci] (
7f253db)
- update CHANGELOG.md [skip ci] (
12d0191)
- update CHANGELOG.md [skip ci] (
1d72122)
- update CHANGELOG.md [skip ci] (
fbe8c40)
- update CHANGELOG.md [skip ci] (
41914f4)
- update CHANGELOG.md [skip ci] (
7241153)
- update CHANGELOG.md [skip ci] (
ab6e460)
- update CHANGELOG.md [skip ci] (
cfaa623)
- update CHANGELOG.md [skip ci] (
1cd8b47)
- kat_data.inc is generated and committed with nothing checking it matches (
861e8e3)
- update CHANGELOG.md [skip ci] (
559dbb3)
- update CHANGELOG.md [skip ci] (
4c3c169)
- update CHANGELOG.md [skip ci] (
3b8e14d)
- update CHANGELOG.md [skip ci] (
14783ab)
- update CHANGELOG.md [skip ci] (
312be6f)
- update test report + coverage [skip ci] (
9cc54c6)
- update CHANGELOG.md [skip ci] (
6e093f8)
- update CHANGELOG.md [skip ci] (
3e44f1a)
- update CHANGELOG.md [skip ci] (
7761aa5)
- update CHANGELOG.md [skip ci] (
3ee7dae)
- update CHANGELOG.md [skip ci] (
3a8d454)
- two more checkers never walked core_setup, and one named a tree that moved (
f4ff091)
- update CHANGELOG.md [skip ci] (
b6ba27b)
- update CHANGELOG.md [skip ci] (
df9bc02)
- update CHANGELOG.md [skip ci] (
9eb6799)
- the three build workflows never rebuilt on a core_setup change (
05aacdf)
- update CHANGELOG.md [skip ci] (
e1d1e04)
- update CHANGELOG.md [skip ci] (
1267130)
- update CHANGELOG.md [skip ci] (
020d105)
- update CHANGELOG.md [skip ci] (
5408a4f)
- update CHANGELOG.md [skip ci] (
76067b4)
- update test report + coverage [skip ci] (
95eb36f)
- update CHANGELOG.md [skip ci] (
00d45c1)
- update CHANGELOG.md [skip ci] (
64cdf7d)
- update CHANGELOG.md [skip ci] (
c1469ec)
- update CHANGELOG.md [skip ci] (
e641fd6)
- update CHANGELOG.md [skip ci] (
fac7287)
- update CHANGELOG.md [skip ci] (
f59c685)
- update CHANGELOG.md [skip ci] (
5271a3b)
- the ban checker never walked core_setup, so 65 sites went unenforced (
279ffb8)
- update CHANGELOG.md [skip ci] (
b44dd08)
- update CHANGELOG.md [skip ci] (
84d5137)
- update CHANGELOG.md [skip ci] (
b17ea59)
- update CHANGELOG.md [skip ci] (
c030722)
- refresh the naming ratchet; the law it gates still documents the old prefix (
c11c075)
- the .pio ignore never matched, so vendored littlefs kept reporting (
c4368d3)
- update CHANGELOG.md [skip ci] (
a2f994f)
- update CHANGELOG.md [skip ci] (
ab67473)
- update CHANGELOG.md [skip ci] (
88c3cff)
- update CHANGELOG.md [skip ci] (
4a7b548)
- update CHANGELOG.md [skip ci] (
4cad067)
- update CHANGELOG.md [skip ci] (
e24dbdc)
- update CHANGELOG.md [skip ci] (
3f743b0)
- update CHANGELOG.md [skip ci] (
aec0fe0)
- update CHANGELOG.md [skip ci] (
7fb683a)
- update CHANGELOG.md [skip ci] (
36e3417)
- update CHANGELOG.md [skip ci] (
25601a1)
- update CHANGELOG.md [skip ci] (
a97581a)
- update CHANGELOG.md [skip ci] (
9690d65)
- update CHANGELOG.md [skip ci] (
e980248)
- update CHANGELOG.md [skip ci] (
f2a3d99)
- update CHANGELOG.md [skip ci] (
ddf384a)
- update CHANGELOG.md [skip ci] (
b34b44e)
- update CHANGELOG.md [skip ci] (
a841ab2)
- update CHANGELOG.md [skip ci] (
2de6874)
- update CHANGELOG.md [skip ci] (
7a6b444)
- update CHANGELOG.md [skip ci] (
06d3060)
- update CHANGELOG.md [skip ci] (
c5c2d1f)
- update CHANGELOG.md [skip ci] (
46872db)
- update CHANGELOG.md [skip ci] (
2e16dd6)
- update CHANGELOG.md [skip ci] (
bda421e)
- update CHANGELOG.md [skip ci] (
dc081c5)
- update CHANGELOG.md [skip ci] (
a8db3dc)
- update CHANGELOG.md [skip ci] (
09bf0e6)
- update CHANGELOG.md [skip ci] (
869cc5d)
- update CHANGELOG.md [skip ci] (
5395469)
- update CHANGELOG.md [skip ci] (
2ed89b1)
- update CHANGELOG.md [skip ci] (
c89552f)
- update CHANGELOG.md [skip ci] (
cf4d593)
- update CHANGELOG.md [skip ci] (
ad07f22)
- update CHANGELOG.md [skip ci] (
b072f63)
- update CHANGELOG.md [skip ci] (
29ee43c)
- update CHANGELOG.md [skip ci] (
eae57ff)
- update CHANGELOG.md [skip ci] (
38bfb1e)
- update CHANGELOG.md [skip ci] (
fcbe23b)
- update CHANGELOG.md [skip ci] (
0ed1fea)
- update CHANGELOG.md [skip ci] (
e7ead47)
- update CHANGELOG.md [skip ci] (
869df4b)
- update CHANGELOG.md [skip ci] (
1f7483c)
- update CHANGELOG.md [skip ci] (
0274a9a)
- update CHANGELOG.md [skip ci] (
9a2de00)
- update CHANGELOG.md [skip ci] (
a73ead7)
- update CHANGELOG.md [skip ci] (
cde3ddc)
- update CHANGELOG.md [skip ci] (
9baf729)
- update CHANGELOG.md [skip ci] (
6140e56)
- update CHANGELOG.md [skip ci] (
1d26295)
- update CHANGELOG.md [skip ci] (
ee0e3b7)
- update CHANGELOG.md [skip ci] (
8697278)
- update CHANGELOG.md [skip ci] (
a17dfea)
- update CHANGELOG.md [skip ci] (
76e79de)
- update CHANGELOG.md [skip ci] (
85a5baa)
- update CHANGELOG.md [skip ci] (
243a67a)
- update CHANGELOG.md [skip ci] (
e66be49)
- update CHANGELOG.md [skip ci] (
0d43b4f)
- update CHANGELOG.md [skip ci] (
113da3d)
- update CHANGELOG.md [skip ci] (
2e148d6)
- update CHANGELOG.md [skip ci] (
261d19f)
- update CHANGELOG.md [skip ci] (
2e628e9)
- update CHANGELOG.md [skip ci] (
91ee224)
- update CHANGELOG.md [skip ci] (
0ca5aa3)
- update CHANGELOG.md [skip ci] (
b964d9e)
- update CHANGELOG.md [skip ci] (
22eb995)
- update CHANGELOG.md [skip ci] (
138dd71)
- update CHANGELOG.md [skip ci] (
b45d24a)
- update CHANGELOG.md [skip ci] (
2e0fd31)
- update CHANGELOG.md [skip ci] (
ce0679a)
- update CHANGELOG.md [skip ci] (
fd12093)
- update CHANGELOG.md [skip ci] (
4d57ff2)
- update CHANGELOG.md [skip ci] (
72e261b)
- update CHANGELOG.md [skip ci] (
0771e68)
- update CHANGELOG.md [skip ci] (
0e8281d)
- update CHANGELOG.md [skip ci] (
1913bc6)
- update CHANGELOG.md [skip ci] (
4333660)
- update CHANGELOG.md [skip ci] (
ca86258)
- update CHANGELOG.md [skip ci] (
aeda130)
- update test report + coverage [skip ci] (
eef2d16)
- update CHANGELOG.md [skip ci] (
a4c5352)
- update test report + coverage [skip ci] (
506587e)
- update CHANGELOG.md [skip ci] (
9b0034e)
- update CHANGELOG.md [skip ci] (
81f78c6)
- update CHANGELOG.md [skip ci] (
3588ef6)
- update CHANGELOG.md [skip ci] (
1164e8f)
- update test report + coverage [skip ci] (
9b42fa7)
- update CHANGELOG.md [skip ci] (
644849b)
- update CHANGELOG.md [skip ci] (
11f08f2)
- update CHANGELOG.md [skip ci] (
7a05490)
- update CHANGELOG.md [skip ci] (
d295bea)
- update CHANGELOG.md [skip ci] (
b6dacde)
- update test report + coverage [skip ci] (
51cf048)
- update CHANGELOG.md [skip ci] (
8a1008a)
- update CHANGELOG.md [skip ci] (
7600064)
- layering guard (text-only include-graph check) + tool inventories (
51c3283)
- update test report + coverage [skip ci] (
d096c4f)
- update CHANGELOG.md [skip ci] (
5183a0a)
- update CHANGELOG.md [skip ci] (
ac41b71)
- update CHANGELOG.md [skip ci] (
63c2e6e)
- update CHANGELOG.md [skip ci] (
2b2f80f)
- update CHANGELOG.md [skip ci] (
9815002)
- update CHANGELOG.md [skip ci] (
ddb385e)
- update CHANGELOG.md [skip ci] (
a04b614)
- update CHANGELOG.md [skip ci] (
f333638)
- update CHANGELOG.md [skip ci] (
8f3e933)
- update CHANGELOG.md [skip ci] (
6c4c488)
- update CHANGELOG.md [skip ci] (
8382dd7)
- update CHANGELOG.md [skip ci] (
061472c)
- update CHANGELOG.md [skip ci] (
902308c)
- update CHANGELOG.md [skip ci] (
3cc51a9)
- update CHANGELOG.md [skip ci] (
f3a406c)
- update CHANGELOG.md [skip ci] (
18927f8)
- update test report + coverage [skip ci] (
dc8c9af)
- update CHANGELOG.md [skip ci] (
8dc4f02)
- update CHANGELOG.md [skip ci] (
d6fcaa8)
- update CHANGELOG.md [skip ci] (
cc8ebf7)
- update CHANGELOG.md [skip ci] (
ff01b53)
- update CHANGELOG.md [skip ci] (
cea17c1)
- update CHANGELOG.md [skip ci] (
4304a55)
- update CHANGELOG.md [skip ci] (
94d2743)
- update CHANGELOG.md [skip ci] (
f0d1ce1)
- update CHANGELOG.md [skip ci] (
039880c)
- update CHANGELOG.md [skip ci] (
b8dcd79)
- update CHANGELOG.md [skip ci] (
dc87eb4)
- update CHANGELOG.md [skip ci] (
07893b0)
- update CHANGELOG.md [skip ci] (
f57b0dd)
- update CHANGELOG.md [skip ci] (
83c1305)
- update CHANGELOG.md [skip ci] (
8aca6ce)
- update CHANGELOG.md [skip ci] (
fc2faad)
- update test report + coverage [skip ci] (
27c6f6d)
- update CHANGELOG.md [skip ci] (
0a7368b)
- update CHANGELOG.md [skip ci] (
bc7588a)
- update CHANGELOG.md [skip ci] (
f66a12d)
- update CHANGELOG.md [skip ci] (
b646639)
- update CHANGELOG.md [skip ci] (
cbde341)
- update CHANGELOG.md [skip ci] (
0ee64ef)
- update CHANGELOG.md [skip ci] (
22f4982)
- update CHANGELOG.md [skip ci] (
4200687)
- update test report + coverage [skip ci] (
08496d1)
- update CHANGELOG.md [skip ci] (
06b9e5b)
- update CHANGELOG.md [skip ci] (
3c7e9bb)
- update test report + coverage [skip ci] (
a7c3a15)
- update CHANGELOG.md [skip ci] (
b86a29b)
- update test report + coverage [skip ci] (
1ea1601)
- update CHANGELOG.md [skip ci] (
82db615)
- update test report + coverage [skip ci] (
b4f05da)
- update CHANGELOG.md [skip ci] (
780e60e)
- update CHANGELOG.md [skip ci] (
3c111dd)
- update CHANGELOG.md [skip ci] (
fc09a1a)
- untrack src/network_drivers/application/ntp/ntp.h, which was swept in by a directory-wide git add. It is uncommitted work in progress and stays in the working tree. (
a697429)
- update CHANGELOG.md [skip ci] (
cffe683)
- update CHANGELOG.md [skip ci] (
ff02f5c)
- update CHANGELOG.md [skip ci] (
9372ec6)
- say how many envs built, so the step stops reading as if it did nothing (
856a679)
- update CHANGELOG.md [skip ci] (
2cd4767)
- update CHANGELOG.md [skip ci] (
452f48f)
- update CHANGELOG.md [skip ci] (
94c236e)
- ratchet the test-coverage floor to 16, closing mdns_service, network and route (
c493e2e)
- update CHANGELOG.md [skip ci] (
28256b3)
- update CHANGELOG.md [skip ci] (
2ada79a)
- bump actions/cache from 4 to 6 (
10de152)
- update test report + coverage [skip ci] (
5e388ff)
- update CHANGELOG.md [skip ci] (
cb14c58)
- the SonarCloud scan gets its own workflow, and its paths survive the tools/ move (
3d64732)
- update CHANGELOG.md [skip ci] (
5d6ad7d)
- update CHANGELOG.md [skip ci] (
8dd42d5)
- update CHANGELOG.md [skip ci] (
2251a0a)
- update CHANGELOG.md [skip ci] (
61a0978)
Changes
<<<<<<< Updated upstream
- Merge pull request #38 from dstroy0/dependabot/github_actions/github/codeql-action-4.38.2 (
9eb4ec5)
Stashed changes
- Merge pull request #40 from dstroy0/doug/laughing-davinci-stc796 (b10513a)
- Merge pull request #39 from dstroy0/doug/laughing-davinci-stc796 (
603f12a)
- Merge Dependabot #36: build(deps-dev): bump cspell from 10.3.1 to 10.3.3 (
e9958c4)
- housekeeping (
e79cbba)
- Merge Dependabot #35: build(deps): bump github/codeql-action from 4.38.0 to 4.38.1 (
d293f8d)
- Merge Dependabot #37: build(deps-dev): bump prettier from 3.9.6 to 3.9.9 (
e0108d0)
- housekeeping (
0f4c3df)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
4d1cefe)
- housekeeping (
f7ee7ed)
- Merge branch 'worktree-prose-compliance' (
8074b13)
- Merge branch 'worktree-docs-fixes' (
e8a52de)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
57becfe)
- deps mmgr feature (
23ad3ad)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
4907ac8)
- Merge Dependabot #32: build(deps-dev): bump cspell from 10.0.1 to 10.3.1 (
6545099)
- Merge Dependabot #33: build(deps): bump github/codeql-action from 4.37.7 to 4.38.0 (
0c6bc8a)
- repo licenses bugfix (
f8e0d24)
- repo licenses rewrite (
816a363)
- Merge remote-tracking branch 'origin/main' (
fd7d1fa)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
fcea3a7)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
44cf774)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
c346e8c)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
4923a9a)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
3545ad6)
- tools checkdocs feature (
5b41784)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
1ff87bc)
- deps smoltoml bugfix (
f10d243)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
c0cc846)
- src speedopt bugfix (
2b75c94)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
c7f04fb)
- src secure comment (
b19157a)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
ae79b80)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
9026969)
- src httpclient bugfix (
a60250d)
- tools gengroup feature (
0cede14)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
f59660f)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
1efe600)
- Merge remote-tracking branch 'origin/main' into worktree-docs-fixes (
03a54c3)
- tools checkdocs bugfix (
5b5f546)
- Merge remote-tracking branch 'origin/main' (
12416f7)
- merge origin (
ede0103)
- tools gate bugfix (
d9761b2)
- tools comment bugfix (
f8ba590)
- restrict is gone, because there is nothing left for it to promise (
a356bb0)
- an operand group is not always called <entry>args (
c1e1aa6)
- thread, 120 call sites (
24541a0)
- five more, on the fixes rather than on anything new (
624220e)
- a result local always declares, with a fresh name when that one is taken (
e28287b)
- a write of the result is not a read of it, and rewriting it returned garbage (
089244a)
- the result window ends at whichever comes first, not at whichever exists (
ccd2d16)
- an operand nobody restaged is still the one the last staging set (
c84088d)
- fold a call staged in a comma expression, and the sweep runner passes real paths (
fbac636)
- the operand group reaches the last pass that was still using the entry name (
a074054)
- the scanner asks the module what its operands are instead of guessing the names (
276381a)
- the gate decided nothing the include had not already decided (
9c2b1ec)
- a module cannot lose its gate while a header it depends on still has one (
a895fc4)
- the operand guard was reading the file the rewriter had not written yet (
e478def)
- a conversion that compiled, linked, and returned the wrong number (
1a54ebe)
- three ways the pass silently produced code that could not compile (
2b29a73)
- a result local belongs to its block, not to its function (
7d9a81e)
- the dispatch layout counts past 24, because six tables are longer than that (
1ef1408)
- six more modules, and the pass learns the other spelling of a call (
4c529a0)
- seven more modules on MMgr's shape, and two gaps the batch found (
e68596f)
- pull to head, and give it a build directory short enough to compile in (
6a23590)
- ns refuses a half-conversion instead of writing one (
794c7cf)
- the ns conversion rewrites its call sites, and sha256 is on MMgr's shape (
80db927)
- two convert entries did not reach the tool they name (
194208e)
- the -O level comes from CMake, not a pragma (
28e6863)
- apply MMgr's shape (
c6ea75d)
- one definition per entry in ssh/connection, and the namespace contract (
0163eca)
guarded stops asking modules that have no gate to have (67f3f8e)
- remove the vendor arms, which never resolved to an implementation (
71f731e)
- give PROTOCORE_ENABLE_X509 the parser to gate (
6c9a6c1)
- split the RAM disk out of the mount registry (
9d47e08)
- stop two TUs reaching in, gate the module over its whole body (
423eb31)
- isolate the Date header's clock, gate both clocks (
4caa2b8)
- drop PROTOCORE_NEED_*, state the dependency instead (
b17178c)
- one gate rule, not two (
d2ea5f8)
- wrap 135 sources in BEGIN_DECLS / END_DECLS (
b8c4779)
- thread one down to the last stand-in sites (
a596c5b)
- convert shape: say what it guesses and what it must not move (
924adb3)
- clang-format the vendor HAL headers (
b30003e)
- black over tools/ (
dbfa67e)
- clang-format the 77 files that had drifted (
a164ee8)
- retire the stand-in arrays, 663 sites (
e9cc5f6)
- only the config include above the gate, 195 files (
5928732)
- read the gate, and see a static with no initializer (
ccd315a)
- compare the golden's shape, not its size (
ec36cd7)
- hooks commit: say to single-quote the paragraphs (
fc5cc5e)
- no call spells one as null, 63 sites (
b03a90a)
- measure cap-sweep: compile the arm the host never answers (
4b12dfa)
- the no-bus arms of hmmd, ld2410 and pmbus never compiled (
2965ad1)
- read a module blind before judging it (
ce2dfa9)
- the protocol registry moves to the layer that owns the connection (
9095d18)
- a doc comment on an entry line hid six modules, and a header need not have a sibling .c (
8a2e702)
- a call does not reserve a name (
d2256ff)
- batch 12 of the handle reshape, 24 modules to 304 (
0b81033)
- batch 11 of the handle reshape, 29 modules to 280 of 308 (
6c268ef)
- ask whether a namespace is reached in one hop, and whether the table binds every entry (
64ec6d4)
- bind a wrapped table entry, and refuse a table that leaves one unbound (
9e6bdf5)
- (housekeeping): handle reshape, 251 modules; shared implementations and local aliases (
0d379f9)
- (housekeeping): handle reshape, 228 modules; a guarded entry keeps its guard (
4ce62a1)
- (housekeeping): handle reshape, 198 modules; the table is not always in the sibling .c (
5eb2b16)
- (housekeeping): handle reshape, 168 modules; the rename needs all three conditions (
b745c37)
- (housekeeping): handle reshape, 142 modules (
f6be0b4)
- (housekeeping): handle reshape, 112 modules, and the hint that carries what it cost (
7ea879c)
- (housekeeping): handle reshape, 82 modules; rename only where the bytes are code (
6049cf1)
- (housekeeping): handle reshape, 52 modules, and three defects the tests caught (
bd17fdb)
- (housekeeping): handle reshape, first 15 modules (
b462bf1)
- (housekeeping): revert the 302-module handle sweep, keep the verb (
4b602c8)
- (housekeeping): regenerate the three CMakeLists the module graph moved (
b6f1c44)
- (housekeeping): convert handle - extern table becomes a static const one (
4452162)
- (housekeeping): scan_vtable - the last entry of every table was dropped, and a header-defined table was not seen at all (
1ee0725)
- (housekeeping): goldenize - a macro or type the preprocessor CHOOSES is one arm, not one item (
6d3ad74)
- (housekeeping): goldenize - an empty entry set built a regex that matched everything (
4227d8e)
- (housekeeping): shape audit, region alignment asserts, dead borrow null-checks out (
bed4956)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
a899b96)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
d587617)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
06f023b)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
17825c1)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
f1b948a)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
a7541c7)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests, per module cmake (start removing ifdef soup) (
b8c61b8)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
3fa2286)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
d204265)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
5b23bbb)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
5ee3bf6)
- Merge Dependabot #27: build(deps): bump streetsidesoftware/cspell-action from 8 to 9 (
50622ba)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
77b7d67)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
7b35b3d)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
7b76817)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests, format (
3f238f9)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
51f77d2)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
50a22d0)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
88f18c9)
- Merge Dependabot #26: build(deps): bump github/codeql-action from 4.37.6 to 4.37.7 (
2a82821)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tests (
9fe8aee)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
ba1189a)
- (housekeeping): pimpl phase 3, public handles, internal ctx, fix tls tests (
898f4a8)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
728de1e)
- (housekeeping): pimpl phase 3, public handles, internal ctx (
2ba91fb)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
0f7f245)
- (housekeeping): pimpl phase 3, public handles, internal ctx (
934877c)
- (housekeeping): pimpl phase 3, public handles, internal ctx (
cfb01dd)
- (housekeeping): pimpl phase 3, public handles, internal ctx (
ebbc9ec)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
21366a9)
- (housekeeping): pimpl, alias hwcrypto registers+offsets+call order to public handles (
ed640bb)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
d68c18e)
- (ci): version tracking stamp now fires on release and file touch (
3de0506)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
bda8a8a)
- (test): test/harness.py single test entry point+sim entry point (
b294293)
- (test): RISC-V bare metal, linker alignment, QEMU setup, startup+reset __assert_func, RMW atomics (nonexclusivitey), protomem, gmtime_r (
8f3f441)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
cd99eb6)
- (test): ARM M4 bare runtime: reset path+startup __assert_func, RMW atomics (nonexclusivity) protomem, gmtime_r (
e9b7def)
- (test): QEMU integration for bare metal sim (
5d0b90e)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
aab883a)
- (test): extend to linker and os primitives (
30f2e1b)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
5326ee9)
- (housekeeping): move dirs, renames, pimpl as I work through (
657cdbb)
- (housekeeping): move dirs, renames, pimpl as I work through (
25917ca)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
deb8198)
- (housekeeping): move dirs, renames, pimpl as I work through (
9b84203)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
6cda996)
- (housekeeping): move dirs, renames, pimpl as I work through (
bb4a8fd)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
ee164ab)
- (housekeeping): move dirs, renames, pimpl as I work through (
4d2cd06)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
ff936c9)
- (housekeeping): move dirs, renames, pimpl as I work through (
a362e7d)
- (housekeeping): move dirs, renames, pimpl as I work through (
f140888)
- (housekeeping): move dirs, renames, pimpl as I work through (
408fb25)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
6f95945)
- (housekeeping): move dirs, renames, pimpl as I work through (
e4ce7b5)
- (housekeeping): move dirs, renames, pimpl as I work through (
000c58e)
- (housekeeping): move dirs, renames, pimpl as I work through (
61ea2e5)
- (housekeeping): dir moves, pimpl sweep half done (
7b2d34b)
- (housekeeping): move dirs, renames, pimple as I work through (
4ecbecf)
- (docs): rename literals/funcs (
7de0c7c)
- (docs): ssh suite first pass rfc correctness. (
836b2ba)
- ssh audit P0a/P0b/P1 in flight (
ed6f704)
- restore src/, core_setup/, tools/, ci and docs to c4368d386 (
23a24a7)
- Revert "fix(swar): the Ns table made every leaf an indirect always_inline call at -Og" (
41fc9a1)
- Revert "fix(nvs): the two backends gave different wrong answers for a blob and a string" (
ea49e97)
- Revert "test(config): the blob test pinned the host double's truncation, not the contract" (
2173298)
- Revert "fix(nvs): put_blob and put_str judged their bounds after committing, or not at all" (
1a13687)
- clang-format the tree (
a0cf205)
- Reapply "refactor(http2): the connection borrows its buffers and asserts its term" (
f401107)
- Revert "refactor(http2): the connection borrows its buffers and asserts its term" (
272c11b)
- KDF chain accumulates at an offset in the caller's region, not the stack (
12e317a)
- per-direction cipher/MAC, derived into the connection that owns the memory (
cdd1463)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
809e9c2)
- back out the flight sizing until the persistent-borrow contention is solved (
a054a8d)
- sha512 and md go back, they were not the file in hand (
38620e6)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
dcdbffe)
- rf work (
b79fe2b)
- rf work (
9f5751c)
- Bump version: 1.0.15 → 1.0.16 (
dcb836c)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
f64aaf3)
- Bump version: 1.0.14 → 1.0.15 (
582ed98)
- Bump version: 1.0.13 → 1.0.14 (
bd0dac9)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
cb597cd)
- Bump version: 1.0.12 → 1.0.13 (
ebef7c8)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
8713b54)
- Bump version: 1.0.11 → 1.0.12 (
bbaa1ff)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
cc80df2)
- Bump version: 1.0.10 → 1.0.11 (
a370fce)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
06995b6)
- Bump version: 1.0.9 → 1.0.10 (
01e1aef)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
748e497)
- Bump version: 1.0.8 → 1.0.9 (
8cbcc98)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
1c261c8)
- Bump version: 1.0.7 → 1.0.8 (
9701de6)
- Merge Dependabot #22: build(deps): bump actions/cache from 4 to 6 (
20c8979)
- Merge remote-tracking branch 'origin/main' (
02ffde5)
- Merge branch 'main' of https://github.com/dstroy0/ProtoCore (
a7b482b)
Documentation
- README status table reads the report's current env-count wording (
f07532d)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
e1efd78)
- docs generated restore (
bf13a60)
- docs prose bugfix (
efac2fd)
- docs prose bugfix (
78ca0d8)
- docs prose bugfix (
fec9b6a)
- docs prose bugfix (
7028f46)
- docs prose bugfix (
8e4fb9c)
- docs prefix bugfix (
33c1e8a)
- docs citation bugfix (
4c07769)
- docs generated regen (
aa46daf)
- docs security bugfix (
ccf6432)
- docs prose bugfix (
d946f28)
- docs prose bugfix (
bb1718c)
- docs citation bugfix (
a14a501)
- docs citation bugfix (
ab22766)
- docs prose bugfix (
3a70b9b)
- docs prose bugfix (
63d22a9)
- docs generated regen (
e970817)
- docs citation bugfix (
59c15f7)
- docs prose bugfix (
f332146)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
a665538)
- docs citation bugfix (
a0ccb3e)
- docs prose bugfix (
13b2a9d)
- docs generated regen (
5d6bcc8)
- docs formatting bugfix (
61cc7c8)
- docs generated regen (
08853b2)
- docs prose bugfix (
be76096)
- docs prose bugfix (
01693b8)
- docs prose bugfix (
1435047)
- docs prose bugfix (
8b686f3)
- docs prose bugfix (
2fa8991)
- docs prose bugfix (
ec26038)
- docs prose bugfix (
4f0f9b8)
- docs prose bugfix (
72c77da)
- docs prose bugfix (
5343f24)
- docs prose bugfix (
1679564)
- docs prose bugfix (
6ff2c11)
- docs prose bugfix (
46d21bb)
- docs prose bugfix (
59ef675)
- docs prose bugfix (
f42400c)
- docs prose bugfix (
b66542c)
- docs prose bugfix (
4e2eff1)
- docs prose bugfix (
d680bcd)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
d525738)
- docs prose bugfix (
c3bd06a)
- docs prose bugfix (
0a6d821)
- docs prose bugfix (
b6d4b83)
- docs prose bugfix (
714b992)
- docs prose bugfix (
5ca68ea)
- docs prose bugfix (
fe4a055)
- docs prose bugfix (
98b7f3d)
- docs prose bugfix (
0a753d4)
- docs prose bugfix (
42e223d)
- docs prose bugfix (
59711cb)
- docs prose bugfix (
87883f3)
- docs prose bugfix (
6581497)
- docs prose bugfix (
214fbc1)
- docs prose bugfix (
002aef9)
- docs prose bugfix (
be60eda)
- docs prose bugfix (
41ee0ba)
- docs prose bugfix (
cd66786)
- docs prose bugfix (
28d99a2)
- docs prose bugfix (
b94ac86)
- docs generated regen (
b96de0e)
- docs prose bugfix (
7ebf94c)
- docs prose bugfix (
93136ee)
- docs prose bugfix (
13d4b11)
- docs symbols bugfix (
7bbc628)
- docs and tooling adoption (
f3e96f6)
- take the conflict markers out of the changelog, format test/ (
0d62656)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
82d5884)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
c976fea)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
4b0073f)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
b33d8d0)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ef4d95c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
a554e00)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
6218af9)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f816acc)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
c0fdb0c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
26aa29c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
775c0d9)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
198daea)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f729fa7)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
49e6c0a)
- log the SFTP version-negotiation defect (
5d7aab9)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
033401c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f21cf7c)
- prune the pre-August bug log and fix stale .cpp references (
07984a8)
- the all-zero X25519 shared secret was accepted by all three TLS 1.3 sites (
bc865d9)
- an Arduino install cannot reach core_setup, which is outside the library src root (
f98d476)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
1d8bfe0)
- tcp_evt.h already drew this boundary; protocore.h crosses it (
0e54830)
- 330 host envs, none of them C++, and C++ is the consumption path (
d9cd11e)
- protocore.h wraps includes, not declarations, in extern C (
e376fca)
- the -Og inlining break is measured and closed (
a05cd27)
- the classic-die RSA tables were invented too (
5cc946d)
- the RSA tables contradicted the silicon they document (
835df5c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
372326b)
- the SWAR leaves cannot be reached through their Ns table at -Og (
72ae4dd)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
44417cb)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f79357d)
- 81 citations went stale when core_setup, the harnesses and ci_tooling moved (
7346901)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f131e5d)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ad2d73b)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
d4eb24a)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
c690b49)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
cc04af7)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
52b7504)
- the plaintext arena is a sum now; its placement and per-slot multiplier are not (
34d1e0e)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
6210b75)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
6bb4689)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
81998f4)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
d3a0207)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
e70bbb3)
- log the forged-datagram teardown and the legacy_record_version rejection (
3cea4c4)
- log the DTLS fragment-conflict overwrite (
7b26945)
- log the DTLS cookie alert, legacy_cookie and RFC 7250 outcome 2 (
cea07f6)
- log the tls_conn borrow leak and the unbuildable portable arm (
f60a13d)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
daf3083)
- log the HKDF-Expand vector gap (
e94e498)
- log the TLS record, ClientHello and HKDF bound fixes (
61a17d0)
- log the HTTP/3 state-machine and QUIC header-bit fixes (
7958ae2)
- log the frame-rule, CONTINUATION and content-length fixes (
48ac146)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
37bffbc)
- log the coaps_server double-address test defect (
beebc0d)
- log the HTTP/2 header-validation gap and the trailers conflation (
9fe1021)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
0b84890)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
1d1e182)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ae9621c)
- close the h2 idle-stream DATA and WINDOW_UPDATE findings (
c82be77)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
12f1553)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
b10f486)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
a867e73)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
289b418)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
cf16e2d)
- close the HPACK size-update clamp (
63327f7)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
c934425)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
dfd250d)
- close the HPACK prefix-integer overflow (
4eaeb4e)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
d7819ac)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
e15b083)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
371e62a)
- close the KEX-guess finding (
6a5f9d2)
- close the four ssh-transport-kex findings that are fixed (
fc00a07)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
aadd3e7)
- close the four ssh/telnet audit findings and the two unflagged SSH envs (
b891c89)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
35514d2)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
4acd507)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
9edb342)
- close #4 - telnet subnegotiation injection, host-verified (
5920335)
- close #3 (userauth service name) and #15 (telnet greeting), both host-verified (
f89c6c3)
- close F1 - the dropped SSH NEWKEYS pair, fixed and host-verified (
a5f6c02)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
7b3ac1c)
- close F3, the idle sweep reclaims the leaked channel in 5 s (
90c3f4e)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
8b8fa56)
- log the undeclared SSH plaintext draw and the env gap that hides it (
78b04a8)
- log the SSH send desync that reporting the failure does not cure (
25ec38b)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
6adbed5)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
5c6649b)
- the server's NEWKEYS is dropped by the one-packet-per-slot rule (
6c0d0ad)
- log native_coaps_server's CID failures as pre-existing, and the Unity exit-code artifact (
71ebdce)
- close F1/F2's overflow claim, the worker-stack floors are enforced (
2d78464)
- log the context-aliasing class and its three forms (
c46e7d1)
- log F11's remaining half, where the buffer and the clamp move together (
d87fe15)
- log F19, where crypto_opt.h prohibits what its own bench numbers reward (
77a11be)
- the context is a view, and a struct copy aliases it (
ae20425)
- log the null crypto_work class and the stale coaps AEAD test (
1ab644b)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
e6d2e8c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
9f2f075)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
6460cf6)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
4be7e49)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
cb7845d)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
bccef65)
Features
- src2png renders a directory tree, paged by size (
7dcfc7e)
- outbound handshake fragmentation against a per-connection PMTU (
bf613d6)
- application CONNECTION_CLOSE (0x1d), and the RFC 9114 H3 state rules (
c290112)
- RFC 9113 sec 8.2/8.3 request header validation, with a suite (
800c41d)
- password change (RFC 4252 sec 8) runs off the tick, not the worker (
428b7c8)
Refactor
- the host key validator moves into the KEX processor (
afdb3c5)
- drop the unused sec 7.2 derive wrapper, fix four .cpp comments (
b4312f2)
- the window adjust goes back to the signaling owner (
8cf64eb)
- one owner for the exchange-hash algorithm question (
f0b5036)
- one RFC 4253 sec 8 exchange hash for both roles (
2b46efc)
- reconcile the SSH tree against the control-flow audit (
63a3ea2)
- the connection borrows its handshake bytes; the secure arena sums the term (
881f0bd)
- the connection borrows its stream and CRYPTO bytes; the dead rx buffer goes (
da5c60d)
- the connection borrows its stream bytes; the caps move to the config (
9b7b41b)
- the connection borrows its buffers; the arena sums the terms (
57871e8)
- the connection borrows its buffers; the arena sums the terms (
2504974)
- the connection borrows its buffers and asserts its term (
8c71bb5)
- flight_add fragments in the file's own idiom (
b11b3a1)
- the dispatcher owns the one control-frame borrow, sized once at compile time (
b21dc18)
- delete ssh_kexdh_build_reply, dead since build_kex_reply took over (
1a2fd6d)
- the KEX derivation inputs travel by reference, not twelve arguments (
ff45f66)
- single findroot for the repo root, replacing hand-rolled walks (
4ed12a4)
- frame becomes protoframe, reached through a FrameNs like mem and str (
8498ec4)
- the frame engine takes a tagged value array, not an ellipsis (
6d4f7d7)
- the six unprefixed exports take the pc_ prefix (
ae289c7)
- a hash owns nothing, it works out of its caller's bytes (
408298d)
- the SNTP client is the client on every target (
0c8fa67)
- the mem Ns replaces every mem* call, and the TLS 1.3 key schedule borrows from the secure pool (
fa4589c)
- the codec frames and flags, the worker moves the bytes (
2db6b6b)
- non-blocking DNS and TCP client open, and the UDP send rings are gone (
0dbb22d)
- one wire format, read from RFC 5905 rather than copied per role (
8e34117)
- two paths, selected by capability - PROTOCORE_HOT is gone (
ada42af)
Testing
- report merge matches summary rows without code spans; smbus rows green (
eec34ee)
- test cryptobench bugfix (
d8c040d)
- test citation bugfix (
d1cb116)
- a build that did not happen stops looking like one that found nothing wrong (
883ed43)
- the generated env table catches up with the tree it describes (
c132524)
- the mirror is file granular, and cross-TU logic gets its own tree (
8e3895d)
- cover the ssh_conn.c logic no RFC section governs (
220757f)
- rewrite test_ssh_conn to the sections ssh_conn.c implements (
2fbda75)
- end-to-end handshake through the byte pump, to the RFC 4253 order (
446a66a)
- rewrite test_ssh_server to the RFC, labelled by section (
9b70ff3)
- label test_ssh_transport by specification section (
9bdc42a)
- repair test_ssh_transport - it did not compile, and its fixtures skipped the protocol (
f7bb381)
- label test_ssh_packet by RFC 4253 section and pin the sequence-number invariant (
b25ec2c)
- per-file coverage for the SCP server, the last SSH file no env compiled (
25d1e44)
- per-file coverage for the SFTP v3 server subsystem (
f014ab4)
- drop the duplicated AES-GCM counter test from the auth suite (
70cfa2a)
- label test_ssh_auth by RFC 4252 section (
38a340b)
- pin the RFC 4252 sec 5 abandon rule for keyboard-interactive (
c9538d7)
- label test_ssh_channel by RFC 4254 section and cover sec 6.6 (
a951021)
- per-file RFC 4254 sec 7 coverage for ssh_forward.c (
2fbc768)
- drop the pc_ct_is_zero case (
ca2bec9)
- a low-order key share must be refused, not keyed off (
d159378)
- the DigestInfo was checked against the constant that built it (
25a51a7)
- the continuity check compared the one-shot to the path it routes through (
a3ca678)
- the block loop and the rate-1 pad merge were unreached at every rate (
eaf91bf)
- use the file's own hex helper (
94ffc38)
- SHA-256 padding boundaries and the RFC 7748 masking MUST were unreached (
4a95d36)
- the aead runner sealed every vector, including the rejection ones (
51e1d43)
- regenerate kat_data.inc, which the corpus changes had not reached (
6092c2e)
- the ed25519 runner asserted vector metadata; RFC 8032 TEST 1024 was absent (
f60ab02)
- pc_ct_eq had no test; every tag and MAC check goes through it (
e465c91)
- the blob test pinned the host double's truncation, not the contract (
ffe68b0)
- host_nvs reaches str now, so its two envs compile protostr (
3c5dd8e)
- the cases share the connection slot (
7ec6716)
- the cases share two connection slots, the way the CoAPs server re-uses one (
3d9e027)
- the suite shares its two connection slots (
ef97ae8)
- the suite shares its two transports; the engine takes bytes where a stream is claimed (
a6ed68f)
- the two-connection cases get a second slot (
01d857a)
- the shared object rewrite caught a pointer deref in the finder (
be58831)
- the cases share one connection object, the way the server re-uses a slot (
6f9a72c)
- the cases share one connection object, the way a server re-uses a slot (
140c9ed)
- decode legal S=0 and L=0 records (
e13b02b)
- a path small enough that this flight actually splits (
5e8cd7d)
- the flight fragments to the connection's PMTU (
75c756f)
- zero the server config before filling it (
55b7b3f)
- drive the second peer to its own HRR before spending the cookie (
a444a71)
- a cookie minted for one peer is refused at another (
7bc4769)
- a record for an unkeyed epoch is discarded, not fatal (
de7416f)
- drop the test for a version branch that no longer exists (
4a440db)
- the PTO ladder is spelled out, not recomputed (
c0c3efc)
- the replay-window edge and the RFC 8410 published SPKI (
19089e9)
- a conflicting overlapping fragment is rejected (
a144c0a)
- a non-empty DTLS legacy_cookie aborts the parse (
89310eb)
- anchor the handshake secrets on the RFC 8448 sec 5 trace (
a72d6b4)
- one slot, re-initialised per case (
caf6c9e)
- the connection is a pool slot, zeroed before first use (
c16259a)
- drive the server half with a hand-built ClientHello (
909ee46)
- PC_TLS_SOFTWARE derives from PC_ENABLE_TLS on host (
8a24254)
- the per-file suite the driver never had (
d51f5e2)
- the ServerHello echoes a 32-byte legacy_session_id (
7d25ff0)
- anchor the dtls13 labels on the RFC structure (
7f5a177)
- the multi-block expand mirror names its external anchor (
392fa3b)
- pin HKDF-Expand against the RFC 5869 Appendix A vectors (
c9211ed)
- pin the HP mask widths and all four reserved settings ids (
f93df35)
- quic_frame.h for the transport error constants (
953174a)
- model a post-handshake connection, and pin the pre-1-RTT fallback (
9b091c6)
- the sec 4.1 / 6.2.1 / 7.2.4 rules the suite used to assert against (
244e7e5)
- pin the Fixed Bit rule and both sides of the 2^60 max_streams bound (
1861b3b)
- enumerate the Appendix A static table and the Appendix B Huffman code (
d3fe3ef)
- the idle-stream, frame-size and CONTINUATION-flood rules (
8db9f95)
- pin the SETTINGS accept-side bounds and an RFC-supplied request block (
f39219b)
- pin the RFC 7541 Appendix C vectors byte for byte (
810a31d)
- drop the h2_server wire probe now the seam is stated (
df6d2c5)
- native_h2server states PC_HAS_VENDOR_TLS so the suite owns the TLS seam (
963db3b)
- probe the h2_server wire to find why no frame reaches the callbacks (
7a2c404)
- pin the zero and overflow WINDOW_UPDATE rejections (
4bdf81b)
- DATA on an idle stream is refused, and after END_STREAM resets that stream (
ce4041f)
- native_h2conn links the arena under the plaintext allocator (
ca6d01d)
- native_h2conn compiles the plaintext arena it now borrows from (
6147de1)
- the interop matrix reads the negotiated MAC back out of the trace (
48f200f)
- pin client-preference for kex, host key and MAC, and make the cyclone repro fail-able (
b083e08)
- each RFC 4253 sec 7.2 label is pinned to its own direction and field (
5875798)
- pin the group-14 prime and generator against RFC 3526 sec 3 (
170db64)
- the GCM derive fixture takes the mpint sign-pad path its comment claimed (
6a7334b)
- two GCM packets on one key install prove the RFC 5647 counter advances (
315cad3)
- a losing KEX guess is dropped and the real KEXDH_INIT still lands (
1f3ae20)
- the re-key fixture states that the first KEX already sent EXT_INFO (
87dc1bc)
- the comp suite builds the KDF inputs struct too (
e6fc118)
- build the KDF inputs struct at the call sites (
0a09951)
- cover the three RFC 4252/4254 MUSTs the audit found uncovered (
2a1190d)
- the hardening ECDSA case models a completed KEX, so it sets have_session_id (
d2751a3)
- update the suites that pinned the four fixed behaviours (
fbf033e)
- migrate performance_benching to ESP-IDF CMake layout (
cf89b00)
- statsd host bench scaffold + shared bench_project/host_bench (
945dafb)
- the frame callers pass a tagged value array (
a1e8e7b)
- three envs link the secure pool now that ed25519 wipes (
a8ed1e3)
- audit_log links arena.c and smb links chacha20.c (
468b08b)
- the crypto entry points take their working bytes from the caller (
f7bc5d0)
- the envs that use the mem accessor link protomem.c (
0459341)
- the tail merges, so nothing past the span may move (
fac7b0c)
[1.0.7] - 2026-08-08
Show Changelog for version 1.0.7 - 2026-08-08
CI / Build
Changes
- Bump version: 1.0.6 → 1.0.7 (
dc77779)
- Merge Dependabot #25: build(deps): bump github/codeql-action from 4.37.4 to 4.37.6 (
fcc991f)
- Merge branch 'c11-target' into main (
1810f10)
- Merge pull request #24 from dstroy0/c11-target (
4d9b245)
Documentation
- update ESP32 build footprints [skip ci] (
2391111)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
8ad23ae)
[1.0.6] - 2026-08-08
Show Changelog for version 1.0.6 - 2026-08-08
Changes
- Bump version: 1.0.5 → 1.0.6 (
000a002)
Features
- the SSH host key comes from NVS, and TLS gets a software record layer (
a476eb7)
Refactor
- every backend pair selects on its capability, not on the build (
22d4e53)
- the RSA backends select on the capability, not on the build (
5184397)
[1.0.5] - 2026-08-08
Show Changelog for version 1.0.5 - 2026-08-08
Bug Fixes
- every buffer in these modules is borrowed, and ban 19 has no waiver (
ce65d0a)
Changes
- Bump version: 1.0.4 → 1.0.5 (
6d9549a)
Features
- a portable SNTP client, so the wall clock exists off the SDK's (
d8ef1ae)
[1.0.4] - 2026-08-07
Show Changelog for version 1.0.4 - 2026-08-07
Bug Fixes
- three shell scripts resolved the repo root one directory short (
cbb581f)
Changes
- Bump version: 1.0.3 → 1.0.4 (
3ede876)
Features
- a portable responder, so mDNS exists on a part with no vendor component (
5650016)
- one DNS name codec, and dns_server reads names through it (
2fcff15)
Refactor
- one path, and the UDP bind is covered on the wire (
29518f7)
[1.0.3] - 2026-08-07
Show Changelog for version 1.0.3 - 2026-08-07
Bug Fixes
- the QUIC server closes its port, and its tests drive the real listener (
f885604)
- sequence the finish before the strlen it is compared against (
1eb34c4)
- build_src_filter reaches core_setup with a step up (
9101e43)
- TcpListener bound add to stop's slot - positional init against a reordered struct (
c16e6d8)
- put the repo root on the include path so core_setup/ resolves from src/ (
04bbc72)
- repoint every board_drivers/ include at core_setup/, which the move left dead (
8ee96f8)
- the crypto vector generators resolved test/ relative to their own dir, which the move broke (
f64434d)
- drop baseline entries for core_setup, which is not source (
12913d8)
- two generators could not run, and three wrote the tree when asked to check it (
1b2dadf)
- the paths the move left behind - tools/crypto, core_setup, and the report the two runners disagreed on (
baae144)
- rx_feed include landed inside a feature guard in two suites (
552dfe0)
- unfuck the runners' hook and quic_tls's two dead relative includes (
6214032)
- the runners were reading Unity output for a tree that no longer exists (
3f142fe)
- a checker that scans nothing was exiting 0 (
31c2342)
- the code behind arms nothing compiles, which a rename rotted (
ca2cf36)
- the third wake site, which no build in the matrix compiles (
4278260)
- the target build of the tcp transport, which reached through the session join for a table it already had (
64934ac)
- each ssh table lands after its declaration region, and children before parents (
4b57ef0)
- rng's envs link protomem, and test_ssh_pqc finds the KAT the restructure moved (
be24170)
- dtls_conn forward-declares the one function it calls above its definition (
459363f)
- the OAuth2 form-body builder passed the address of its own parameter (
771b103)
- base64.h takes protocore_config.h, the entry point that sets the widths (
8635bf3)
- the workers suite names Workers, not the layer above it (
6101f95)
- a module's own policy list and suite name the module, not the layer root (
c66cb41)
- the preempt-queue header order, and two TUs naming Session without it (
e485fb0)
- Physical carries the interface registry it was silently handing the radio (
889c247)
- forward reset no longer clears a table it does not own (
dc441ec)
- restore the host busy_hold and busy_release my ps_get removal ate (
1202db5)
- physical is a layer, not a vendor seam, and carries eth and ip6 unconditionally (
4037f0a)
- physical.h names RadioNs instead of including it, so the dependency runs one way (
c691be3)
- forward-declare the two close helpers and take the join header in the listener (
4f6ea1b)
- forward-declare the two teardowns and take the join header for Tcp (
8372f26)
- forward.h drops the flat declarations its definitions no longer match (
e01684c)
- the generators and the CI drift gate follow the suites into the new tree (
02eff20)
- a stack base is a section, not an env, so nothing has to ignore tests (
1fc7f09)
- send_text measures its body with str.len, not a runops scan (
69f7d6d)
- response.c takes the runops include send_text needs (
ae31c0d)
- the guards the dispatch-chain move left behind in protocore.c (
e1b59c8)
- the env that builds protocore.c builds the mount registry it now resets (
4a910ea)
- the mount-point table empties with the routes it is indexed from (
537e6bf)
- the credential table empties with the routes it is indexed from (
b728733)
- the two long-lived tables take the arena end no mark walks, and declare their span (
c601ae9)
- the route table borrowed from an init nothing called, so every registration failed (
943d1ba)
- the presentation envs build protostr, which the layer's string ops come through (
3c79ba6)
- presentation.c includes runops.h for the header scan, and the route envs build protomem.c (
d84f016)
- every env that builds protocore.c builds the network table it reaches through (
9ffa670)
- native_stack_http never built network.c, whose network table protocore.c reaches through (
14e3ae3)
- auth.c closed its feature guard before check() and the Auth table, which need it (
1122998)
- native_client never built ip.c, whose Ip table the listener's allowlist matches through (
bf4d521)
- the worker-queue members gate with PC_WORKER_COUNT, and native_client builds the join (
f348ce3)
- an env that builds the Tcp join builds all three halves it names (
9d4ecfa)
- the moved tcp modules reach their siblings, and the observability trio gates with its flag (
a022535)
- the moved tcp headers reach tcp_evt.h one directory up (
e983163)
- rebinding a bound udp port reuses its slot, and the four suites assert the ring contract (
29e4220)
- pc_ip tags its family in .family, not .type (
cf58a0c)
- the udp envs never built ip.c, whose Ip table the halves parse and format through (
9422e02)
- native_stack_http never built protomem.c, so its 25 children failed to link (
73f0496)
- the two include breaks a full-matrix run turned up, and the stack bases it ran by mistake (
0278e26)
- the base flags that defeated PROTOCORE_HOT_FORCE, so the target path gets a test env (
8a7a743)
- the dns server takes the raw mover's header, not the span module's (
7ec4a3a)
CI / Build
- one example-discovery action instead of the same 29 lines in two workflows (
f19b5b5)
- build the platform the project ships on, and pull before committing to a tree CI writes (
3b0d362)
- drop the scratch bucket map that rode along with the test move (
300d62d)
- the byte ops and the libc string/stdio includes become enforced bans (
beadbf0)
- the exec bit on the 16 shell scripts that carry a shebang and never had one (
aee9c25)
Changes
- Bump version: 1.0.2 → 1.0.3 (
7e1854b)
- clang-format the tree, and pin the one macro run it cannot converge on (
c2d5301)
- clang-format the two rig sketches, and the hook's own package invocation (
13e8bda)
- back out the ssh table conversion until it carries per-member feature guards (
8b329ff)
- Revert "refactor: the listener registry moves to the listener that owns the pool" (
a4e4145)
Documentation
- name the crypto arms HW path and SW path, and stop calling the fallback a test path (
12d88ab)
- stop sending readers to hardware for what the host now covers (
447abcf)
- log the fieldbus audit findings incl. a verified out-of-bounds axis read (
81bb6ff)
- log the remaining audit findings, all ten scopes now reported (
d214d2d)
- log the security, storage and transport audit findings (
a851419)
- log the QUIC and HTTP/3 conformance findings (
fa1e87b)
- log the audit findings so far, and move the forwarding plane to L3 (
22b3490)
- log the HTTP/2 spec violations and the untested request bridge (
798767f)
- the runner comment matches how a base is emitted (
ed3fec2)
- drop the BUGS.md entry for a defect I introduced and logged (
8639666)
- SRCBANNED is the ban list (
b260cac)
- stdio is banned, and every header path in SRCBANNED now resolves (
2b1715f)
- cut the three law docs by 55 percent, and correct the type-name row (
9cfc4f8)
- log the arena sizing and id-table reset defects (
c881d70)
Features
- float_bits.h, and membuild reads IEEE-754 fields through it (
8d5acf4)
- the ring answers which slot, and what a held one keeps out (
6498e32)
Refactor
- one path through the SSH client, the H3 RNG, and the packet framer (
0f343c1)
- one path, and the DMA lane runs off the DMA driver (
aaa2547)
- one path for the worker tasks, and designate the table (
6858153)
- one path, the redundant host arm is gone (
9349a6e)
- size the outbound path from the secure pool (
dae9b42)
- designate the namespace tables, and cover net egress (
fda58d0)
- designate UdpListener's initializer (
ac33d37)
- one slot allocator - tcp's free_mask and udp's linear scan are pc_slot* (
9069585)
- one CCOUNT measurement, and the rig build scripts find the repo again (
c6ae4a2)
- one repo_root, and gen_theme_blobs imports gen_themes instead of exec'ing it (
8e0b9b1)
- board_drivers out of src/, the benching trees into test/, ci_tooling under tools/ (
3e59ead)
- one rx-feed helper instead of 24 private copies of the same loop (
8efdfdd)
- one package, so the tools import each other instead of guessing (
12af671)
- name the dns files after their subject, which their guards already did (
b141a61)
- one dma path, and the host drives the one the target takes (
8c0eecb)
- each ssh layer names its own message numbers, and a ring index wraps with a mask (
0425962)
- ssh reaches its functions through tables cut along RFC 4251's layering (
9951a49)
- crypto owns the generator, and a caller only ever asks for bytes (
b4d5399)
- telnet and the three dtls modules reach their functions through tables (
3dddfe1)
- the codec sub-tree reaches its functions through per-module tables (
a07e3b8)
- base64 reaches its four functions through Base64, and gets its C linkage back (
633285f)
- layer 5 gets its tables and its root (
3fbefd2)
- one enum for what an interface is and which one to match (
f808fd1)
- the interface registry moves to L1, which is what puts bytes on the wire (
3516c75)
- one enum for modem sleep (
b97ec7e)
- every caller above L1 reaches the physical interfaces through the handle (
369b676)
- layer 1 gets the namespace struct a device interface should have (
c57ea07)
- tcp_conn exports one symbol; alloc_free and sndbuf join the table (
790408c)
- tcp_listener exports one symbol; add and add_dynamic join the table (
a43155e)
- the forwarding plane exports one symbol and the network layer carries it (
af66f56)
- tcp_client drops the flat surface no caller was using (
d9337b9)
- the per-connection and per-listener DSCP marks move to the objects that own them (
276e5c5)
- session stops re-declaring the presentation functions it does not call (
6df2655)
- the HTTP route table leaves the network layer and takes an HTTP name (
4bfcef0)
- the HTTP/3 request bridge gets the TU its h2 twin has (
619e880)
- the HTTP poll pump moves to the HTTP root (
be71cfe)
- the response senders move to server/response.c (
32d062d)
- the QUIC running flag goes back to the QUIC server (
484ed74)
- the listener registry moves to the listener that owns the pool (
e85c964)
- auth and the no-match fallback move to the HTTP root (
cee6e7e)
- the request dispatch chain moves to the HTTP root (
4068015)
- HttpMethod is the presentation layer's, not the application layer's (
c1a761d)
- the HTTP root takes the version-agnostic surface out of the application layer (
c10e60e)
- keep-alive is an HTTP/1.1 header rule, so it moves down to presentation beside its tally (
52a8735)
- tcp splits into conn / listener / client under a Tcp join, and 865 call sites move (
3efeee8)
- the udp sends take an address, so a tag is serviced once by the service that owns it (
2719548)
- udp.h becomes the join, and every caller moves onto Udp.listener / Udp.client (
dabd807)
- diffserv becomes a table (
67f01c8)
- ip is a shared primitive, not a network-layer module (
75df9fd)
- ip becomes a table, reached through network (
0c16338)
- the dns server moves off implicit libc onto mem and str (
0c3a467)
- dns joins under network; Route carries ids, not other modules' state (
4e123fd)
Testing
- unwind a task entry, and honor the queue depth create asked for (
d23634c)
- the host platform can run a started task (
3563ce2)
- close two gaps in the DMA host mock (
3babdc4)
- per-file test groups under the owning layer (
a766764)
- a suite for the ring, and the shift it could not survive (
39caf49)
- give the multi-worker hot arm a witness (
24097ea)
- the host queue holds what is posted to it (
f375c11)
- the L1 interface registry gets its own suite, and the dead forward sizing goes (
14611df)
- native_forward links L1, the layer it now sends through (
4708320)
- native_net_egress links the radio the layer handle carries (
b1bb3e8)
- native_radio_power links the L1 core whose phy functions the radio table names (
850301f)
- native_tcp_hot links the arena that carries worker identity (
6c50d36)
- native_tcp_hot links the Tcp join and the worker its target arm calls (
6d0a4e5)
- native_tcp_hot drives the TCP target path through the mock harness (
4021535)
- the runner finds pio in the venv both Linux envs install it to (
266e436)
- a protocol's crypto suite sits with the protocol, not under crypto (
bab7762)
- the suite tree sorts by what a test stands up, then by the module it covers (
4d34ef3)
- a base env says it runs no suite instead of the runner blocklisting it (
4b47961)
- native_h3_server builds the bridge TU and calls it by its own name (
e1b2ac0)
- the v3 trap test asserts the refusal the service actually makes (
5a8a9ba)
- the suites hand the sends an address, and statsd is given one it can parse (
7aff713)
- the client-side suites read the client capture, after the poll that writes it (
49b318e)
[1.0.2] - 2026-08-05
Show Changelog for version 1.0.2 - 2026-08-05
Bug Fixes
- the four auth examples now enable PC_ENABLE_AUTH (
2eaec7a)
- five examples still calling the C++ default-argument forms, and WebTerminal's missing dependency flag (
98e6838)
- the coverage union aborted on a function with two build-time definitions (
1dd0cc0)
- declare pc_ntp_http_date where it is defined, not behind PC_ENABLE_NTP (
ad646a1)
- give the whole public API C linkage at the umbrella, not header by header (
4605ea5)
- extern C guards on the SHA headers (
33fd865)
- extern C guards on the five MAC and stream-cipher headers (
27bc4b0)
- extern C guard on aes128gcm.h, and drop the std includes types.h already owns (
75203df)
- three headers declared C functions with no extern C guard (
36f572a)
- esp_aes128gcm named C++ alignof in a C11 file (
6a82448)
- esp_aes128gcm used C++ alignof in a C11 file (
81e3039)
- the crypto bench's SecureScope use (
fa68f69)
- the crypto bench passes the DTLS record keys by pointer (
2af2fb2)
- the crypto bench's hkdf_expand_label arity (
7dae4a8)
- the crypto bench's scoped-enum uses, left over from the C11 conversion (
6237858)
- the crypto bench's stale mmgr include path (
8bddf97)
- bound the two RSA accelerator status polls (
99ba4e2)
- read the AES-GCM block through the raw accessors instead of a punned pointer (
5b047bd)
- nine dropped status returns in the SFTP and file-serving paths (
24a6f97)
- four signed-overflow parsers, an unbounded UART drain, and oidc's unwritten out-params (
b8c11bf)
- link the NVS backend into the codeql coverage env (
6c5a2f2)
- two CI gates, the clang-format blind spot, and config_io's missing backend (
f057523)
- run the peripheral drivers' real body wherever a bus seam exists (
52418a6)
- route every timing call through the library clock (
09e8d2b)
- include the header declaring pc_worker_set_self in worker.c (
c0a548e)
- read instruction bytes, and classify what each blob difference changes (
652052d)
- give the ESP-NOW radio callbacks C internal linkage (
ff4649e)
- define the SSH client identification frame spec (
1526bc4)
- name every omitted parameter, and move the I2C drivers onto the bus owner (
f3cf57d)
- the service headers give their declarations C linkage (
375a461)
- examples pointed at pre-migration header paths (
d704047)
- the conversion left .cpp paths in the asset generator and two docs (
fcf87ac)
CI / Build
- rename the format workflow, since clang-format is one step of several (
098c792)
- gate Python formatting, and keep vendored components out of the C style sweep (
225a20c)
- unblock the two formatting gates (
8660430)
- update CHANGELOG.md [skip ci] (
8a6e286)
- update test report + coverage [skip ci] (
bbb0215)
- update CHANGELOG.md [skip ci] (
c247de8)
- move to pioarduino so the toolchain is current (
3e1561d)
- unpin the espressif32 platform so the toolchain tracks latest (
349cbf9)
- the naming law stops demanding a C++ construct, and reads the enum's real name (
0eee3a2)
Changes
- Bump version: 1.0.1 → 1.0.2 (
cf46e12)
- Merge remote-tracking branch 'origin/main' into c11-target (
a2a5fff)
- Merge pull request #23 from dstroy0/c11-target (
3d74266)
- survey a JTAG DRAM dump for dispatch tables (
744ca7f)
Documentation
- the radio keep-awake note names Radio.busy_hold (
afe2fcd)
- regenerate what the two new feature flags feed, and name the stack idemIP (
c9587e6)
- regenerate the README feature tables for SMBus and PMBus (
5905026)
- the docs badge names ProtoCore, not the host it sits on (
1ec8834)
- state the namespace struct as the module's public surface (
20bcec8)
- state the C11 object as the endorsed shape in ban 22, and add the bench that prices it (
7fa7048)
- update ESP32 build footprints [skip ci] (
d3fde32)
- record the SMBus and PMBus flags, and the third .cpp exemption (
3a46de4)
- log three bugs the bus-owner work surfaced (
a106b19)
- inventory the radio functions that must stay in IRAM (
bdfef8e)
- diff the radio blobs' code between installs, function by function (
ebc29b6)
- compare the radio blob symbols between the Arduino and IDF installs (
8b92f56)
- extend radio blob parity to every ESP die IDF ships (
3f565c0)
- cross-reference the radio blobs across every ESP variant (
2969c14)
- decode the analog bus primitive out of libphy's own iram1 (
87a5ed2)
- capture the analog RF programming sequences from the radio blobs (
01f13e6)
- map the radio blobs' registers by function, and roadmap our own stack (
06e1168)
Features
- protomem, the byte-span module (
a24ded6)
- gate the comment law, and sweep the CRC history clause (
f64a89f)
- per-transfer log with timestamps in the host bus capture (
4b4e0a3)
- record the wire on host builds, so driver output is testable end to end (
af9fe85)
- capture the live PHY dispatch table off an ESP32-S3 (
affc928)
- the full I2C and SPI master protocol behind the bus owners (
411026f)
- a microsecond delay, measured on the raw counter (
0ef3ae6)
- a microsecond delay beside the millisecond one (
f33c51d)
- a shared SPI bus owner beside the I2C one (
f3f7e59)
Refactor
- mmgr owns the byte layer; auth owns its credentials (
a469bad)
- the route table lives in the secure pool (
3ef5c5a)
- route exports one symbol, carried as network.route (
b602404)
- network exports one symbol, Network (
3c36382)
- roaming moves its bytes through mem (
8179f74)
- roaming exports one symbol, Roam (
2a41dc3)
- datalink exports one symbol, Datalink (
ad3f5fd)
- radio_power exports one symbol, Radio (
7ee0de9)
- fold five copies of the hex digit table onto PC_HEX_LOWER (
9c0726a)
- move the last three drivers onto the bus owners (
6e5116a)
- split the xtensa-only radio tools into their own subdirectory (
0dd66cd)
- move the radio reverse-engineering tooling to reverse_engineering/esp32_mac (
2d7b324)
- the INA219 driver reaches the bus through the i2c owner (
4cf6985)
- the DMA submit moves its span through proto_raw_read (
4c2c420)
Testing
- pointer nesting instead of by value (
3a57057)
- does a layer object embed a module's struct by value across a TU (
72e1e29)
- roaming borrows its BTM hint instead of declaring it (
79a31df)
- native_roaming builds protomem (
7a8881a)
- a consumer TU for the converted radio module (
a8eb1be)
- keep the canary's build to the library and its own main (
ed37c2f)
- measure whether the namespace-struct fold survives a TU boundary (
3cfd435)
- a C ESP-IDF canary for the conversion (
339f235)
- price the namespace struct in C on the target toolchain (
4628a54)
- keep the bench leaves out of line so the strip is what gets measured (
1525354)
- assert the INA219 wire output instead of a host refusal (
0b3fc66)
- assert the drivers' wire output instead of a host refusal (
dfa44ac)
- assert the SMBus and PMBus wire output instead of a host refusal (
8bc0806)
- assert the INA219 register write per transaction, not across the stream (
9d3db6c)
[1.0.1] - 2026-08-04
Show Changelog for version 1.0.1 - 2026-08-04
Bug Fixes
- drop an unreachable release left behind the return in ssh_conn (
c48abc0)
- the RSA HAL reaches the entry point for the widths it is written in (
3824d55)
- protocore.h gives its declarations C linkage, so a C++ sketch can link them (
0a5950c)
- the last two bodies that inherited tcp.h now name it (
14514c8)
- the transport and session bodies include tcp.h themselves (
289f442)
- listener.h names the address type it uses instead of inheriting it (
2266af4)
- examples spell the cfg argument the C API no longer defaults, and Mnt carries its root (
f1c1abf)
- tls.h stubs had unnamed parameters and empty parameter lists (
b62eb53)
- crypto headers reach the entry point, not stdint and a board header (
fe142bf)
- crypto headers tested PROTOCORE_HOT before anything defined it (
1b229f7)
- physical_esp is C++ (Arduino WiFi/ETH), so it is .cpp again (
6bcb1fe)
- an OIDC arena leak that rejected every token, and two more lost scope guards (
713d3a7)
- the last of the test/ residue, and three envs that never linked their own deps (
fc0a924)
- brace assignment, lambdas, and six more defaulted arguments in test/ (
463ddae)
- restore the ESP mount adapter's extension, and three gaps behind it (
8472e1b)
- the scoped-enum residue in test/, resolved by the compiler not by guessing (
a2d479a)
- the C++ the native suites could not see, and the WAL's missing barrier (
f38924b)
CI / Build
Changes
Features
- an NVS seam in board_drivers; the core stops naming Preferences, String and FreeRTOS (
136c8df)
Refactor
- drop the rationale that only justified a coverage exclusion (
a05bf55)
- remove every gcovr exclusion marker from src/ (
bfd0d5f)
- the event record leaves tcp.h, so the sketches stop parsing the slots (
a798027)
- move stdatomic.h from types.h to ring.h (
26ea42b)
Testing
- the config-store env builds the host NVS backend it now sits on (
d553ce1)
[1.0.0] - 2026-08-04
Show Changelog for version 1.0.0 - 2026-08-04
Bug Fixes
- the GPIO direction enum a board profile's macro was rewriting (
6e9d561)
- the RAII scope guards and member initializers left in .c files (
6652612)
- the C++ residue the .c rename hid, and the API drift under it (
49543ac)
- -std=c11 hid strnlen from every native build (
262ab91)
- dma.c's byte_ring becomes free functions over a pointer (
1306696)
- static inline in the C headers (
52c571e)
- hand the listen pcb back to the stack on listener_stop (
b70bb7e)
- restore the SNMP_TAG_ prefix, WAL pointer params, and the BerEnc forward typedef (
88efecc)
- refuse to remove a mount root, at the layer that knows it is one (
a1d50e6)
- search the Allow buffer to its NUL, not to its capacity (
3a93744)
- do not drive the fixture volume to the block littlefs cannot recover from (
ca03735)
- close open files before unmounting the fixture volume (
52c5a07)
- a reserved handle must never reach littlefs (
3b64a8a)
- spell swar's width assert so C++ can parse it, and typedef MockHdr (
e8e3296)
- stop 404-ing a static mount that named no backend (
e407e63)
- stop two envs overriding the src filter they inherit (
94db75d)
- reset the middleware chain with the rest of the server (
48eccdd)
- give the host driver's state one instance instead of one per TU (
43f9c41)
- drop the leftovers of the query redesign (
d5698d2)
- restore the v0.0.1 query and path-parameter behavior (
6050ce4)
- route the session drain through the platform queue seam (
a8fa333)
- repoint the checker baselines the C conversion orphaned (
1476252)
- name the incomplete struct tag in the SSH GCM wipe casts (
770fa67)
- repoint the Sonar suppressions the C conversion orphaned (
20d73cb)
- link the clock TU into every native env that reads it (
183e693)
- convert four more owned-context structs out of C++ (
586cfd4)
- strip 772 verified scope qualifiers from test/ and examples/ (
eb59261)
- finish the C to C++ residue in the CoAP server (
bb25d76)
- drop the in-class initializers from OpcuaCtx and hoist proto_handler.h (
e398dfb)
- replace the pc_atomic template and in-class initializers in two servers (
fd1a387)
- spell the opaque H3Conn tag and hoist a lambda out of test_quic_server (
794cd33)
- strip 516 verified C++ scope qualifiers from code (
fb95b57)
- spell the opaque QuicConn tag and drop a missed reinterpret_cast (
03a3609)
- strip the QuicTp scope qualifier in quic_tp (
7428210)
- replace the SecureBorrow RAII in quic_crypto with the C pool API (
960430e)
- spell alignof and the opaque AEAD key the C way in the portable backend (
506a3d5)
- finish the C++ to C conversion in the QUIC/TLS handshake path (
f657d7e)
- restore constant names mangled by the C++ to C conversion (
2a639ea)
- emit binary_asset_blobs as C and drop the resurrected .cpp (
3da92d9)
- read .c sources in the checkers the C conversion left behind (
8eb81fa)
- give ip.h C linkage so C++ callers link against it (
c1ad16a)
- restore the enum widths the C conversion dropped (
6bc50b1)
- make the checkers agree with a C11 tree (
0c2bd52)
CI / Build
Changes
- Revert "test: copying onto the root collection is refused, not created" (
7cda282)
- Revert "test: remount after filling, so the fixture starts from the medium" (
e19b85f)
- Revert "fix: do not drive the fixture volume to the block littlefs cannot recover from" (
a348f72)
- Merge Dependabot #21: build(deps): bump github/codeql-action from 4 to 4.37.4 (
e587e2a)
- clang-format the two benches the layer move left unformatted (
2db2997)
Documentation
- log the HTTP/2 refusal that RSTs stream 0 (
58c2913)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
3d8b3c4)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
aaffcd0)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
b193396)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
a3760f2)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
0331ff5)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
823cc89)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
506e29c)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
18ca7d1)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
33e79ed)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
9a18380)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
97e73b6)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
aa3d2f2)
- correct what the SSH-mount entry claims is already tested (
95e96ce)
- roadmap the SSH mount and the multipoint mnt it needs (
39a1a99)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
cc3e721)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
d1cea96)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
e8a0034)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
0af15b8)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
4fc79d3)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
7ca75f0)
- repoint the BUGS.md citation of the presentation layer to its .c path (
c3cdaaa)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ac0ff85)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
5656c29)
- add pass-the-reference-down to the end of the roadmap (
fe124e7)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f50be82)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ec1fbd1)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
f48be9f)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
c25ce38)
- document the mmgr memory model (
a2b6c58)
- strip narrative from the i2c and proto_builtins comments (
8e303b5)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
29e3da9)
- describe diag as the runtime frame build it is (
2e4176f)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
5127742)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
7f88800)
Features
- add a mock vendor so the hot path is testable on a host (
a53832c)
Refactor
- finish the C11 conversion - the last seven .cpp files (
eb378e6)
- the member initializers the renamed files still carried (
b87038c)
- convert the last ten src/ .cpp files except ssh_transport (
667989a)
- drop the enum scope qualifiers and the last peripheral member initializers (
499751f)
- fifteen more src/ .cpp files that were already C become .c (
59d01c2)
- the file-local helpers take their owning context by pointer (
5e179c0)
- replace the C++ in-class member initializers (
59b92b8)
- write the C++ temporaries as compound literals (
1cdc9f6)
- drop the DTLS ciphertext default arguments, state them at every call (
e5cc867)
- spell the opaque handles as struct at every use (
f509479)
- the eight src/ .cpp files that were already C become .c (
ed97f45)
- convert SecureScope, the DTLS key references, and the opaque GCM handles (
4e1954c)
- replace the SecureBorrow RAII holder with the mark/span/release shape (
8d94018)
- convert the HTTP client to C and unblock the edge-cache suites (
01858c0)
- pass the config-store owner by pointer (
640069f)
- convert the web terminal to C (
4d6f64f)
- convert the chunked-send reference variables to pointers (
a5d1823)
- convert the SSE module to C (
a3f0813)
- convert the WebSocket module to C (
2de589f)
- convert the multipart codec to C (
4227997)
- convert the HTTP parser to C (
ef8dea4)
- convert the presentation layer entry to C (
b01e8ac)
- move stdatomic into types.h (
d7d2093)
- convert the session layer to C (
8eb49f4)
- rename pentesting/ to penetration_testing/ and analyze the repo's Python (
9cdad1a)
- drop the C++ default arguments from the SSH KDF entry points (
ef9541c)
- convert the remaining using-aliases to C typedefs (
13ebde2)
- move the upload service onto the mnt storage seam (
9a2bbaa)
- move mDNS, NTP, NTS and PTP into the L7 application layer (
bcf041b)
- restore internal linkage, bridge I2C, convert six files to C11 (
ef26ac7)
- split WebDAV into the L7 wire codec and the server handler (
593e45a)
- move HTTP authentication into the L7 application layer (
a602846)
- move the TLS 1.3 key schedule into network_drivers/tls (
ba1f6f2)
- mirror the layer each module moved to (
f575b3d)
- move exc_decoder and power_mgmt into server/ (
d14ca1e)
- move each module under the layer that owns it (
bddf3f4)
Testing
- copy the trace samples at their real width (
bc9bec9)
- trace_capture reads its window through a pointer (
33cc8a6)
- gateway and trace_capture record into fixed tables (
1c0133e)
- read the dma record payload directly (
30c79d2)
- dma records completions into a fixed table (
b012d3c)
- the last ikev2 element assignment as a compound literal (
60e8a41)
- ikev2's sized vectors become fixed arrays (
28e7aed)
- the KAT suite uses the keyed GCM handle and the explicit tag output (
53c3d6d)
- typedef the KAT structs, name ntlm's nibble lambda, restore SMB2_SIGN_ALGO_AES_CMAC (
a06f4da)
- name the hex-nibble lambdas, five more suites to C (
45046ce)
- call proto_tcp_conn_timeout_ms instead of comparing its address (
569d2c7)
- the transport helpers the qualifier strip left bare (
6a3dbe6)
- the host seam grows the one-shot failure hooks the transport suite drives (
9ebb0c2)
- give the host seam the one-shot close failure, pass the worker id to the sweep (
9d9d8be)
- transport reads the host seam's control-block and error types (
28caacf)
- restore the std:: qualifiers the sweep wrongly stripped, convert statsd + spa_router (
8c43357)
- drop the STL includes the C suites no longer need (
710f311)
- four more suites to C (coap, transport, spa_router, statsd) (
e681d79)
- enable keep-alive in native_range (
1267ccf)
- mount the store test_range serves from (
edfdef5)
- strip the verified scope qualifiers, typedef RamDisk (
aef4dbf)
- finish the six suites (
ec21e1a)
- count aborts on the host seam (
8b9e96e)
- serve test_range from the real filesystem instead of the Arduino FS mock (
b9856b2)
- fixed accumulators in place of the vectors, six more suites to C (
fbbd051)
- sweep the mechanical C++ tokens out of the suites (
53cfef4)
- hoist the dns_server resolver callback to file scope (
e73f033)
- name the lambdas and drop the heap from three suites (
72867d5)
- use the transport layer's C names (
111f9cc)
- index the hpack roundtrip table instead of a range-for (
8f4993c)
- finish the tier-1 suite conversions (
423c920)
- convert the low-residue suites from .cpp to .c (
b73b584)
- strip the default arguments from the suite-local helpers (
b64541a)
- take the address at the remaining DTLS record-key call sites (
ff461f5)
- pass the DTLS record keys by address now that the parameter is a pointer (
e696260)
- restore the DtlsCipher member prefix and the explicit AEAD tag argument (
ba56fd8)
- enable SSE in native_sse, drop the lwIP mock from two host suites (
a22dd37)
- stop tcp_capture_disable() from wiping the capture, build arena.c for native_workers (
227973e)
- give the host seam the write-failure hook the lwIP mock owned (
b763ab2)
- convert the workers suite to C (
b8ad778)
- drop the default arguments from build_v3_raw_scoped (
caae75e)
- restore the SnmpTag member prefix across the snmp suites (
3a3decc)
- typedef the struct tags the scope strip left bare (
2b43c6e)
- latch the PUT error on a real mid-stream refusal (
79215a3)
- refuse the abort-path PUT through the store, not a node table (
098343d)
- COPY onto the root collection answers 409, observed not assumed (
bd32327)
- temporary diagnostic on the COPY-onto-root response (
422f1b4)
- copying onto the root collection is refused, not created (
124b6b7)
- a real filesystem always has a root, so the bare mount resolves (
94115b5)
- stop a WebDAV delete through the write it needs, not a handle (
28620ea)
- add a medium that refuses every write (
1345032)
- WebDAV storage refusals now come from the medium (
5b0624b)
- refuse through the medium instead of through exhaustion (
5f6a8ce)
- remount after filling, so the fixture starts from the medium (
86bcc96)
- measure whether a larger fixture volume survives exhaustion (
b6eca8a)
- check the store still answers after a full fill (
464b6ee)
- check the fixture supports the concurrent handles a COPY needs (
ab2e29a)
- use the proven fill for the remaining WebDAV creation-refused cases (
4d3376b)
- prove the fill helper actually exhausts the store (
00c4ca1)
- fill the volume for the copy-destination-refused case (
3c89931)
- leave headroom so the 507 case fails on the write, not the open (
db8fbe1)
- express the WebDAV storage-failure cases as real conditions (
11eb59a)
- create the WebDAV mount root before serving from it (
8735ff7)
- force the WebDAV failure paths by causing them, not flagging them (
6d0cbf0)
- create the collections above a fixture write (
6bf5651)
- build the route table and signaling for the WebDAV suite (
4b5d1cf)
- build the accessor and mount seam for the WebDAV suite (
c17d8bb)
- include the littlefs fixture in the WebDAV suite (
0d0407b)
- move the WebDAV suite onto the littlefs fixture (
4a11475)
- back the host mount fixture with real littlefs (
26c6ba4)
- depend on littlefs, the filesystem the device runs (
ec4ec8b)
- build the signaling TU for the upload suite (
8f0555f)
- build the route table and mount seam for the upload suite (
21f6be5)
- move the upload suite onto the mount seam (
74f9f78)
- restore the SCP mode names after the scope strip (
48888d8)
- restore the hotswap state names after the scope strip (
9f745df)
- size the host send capture for a whole multi-window response (
392d378)
- mount the file-serving fixture (
0441bd0)
- build the filesystem accessor and mount seam in the http stack (
a528ad4)
- enable PC_ENABLE_FILE_SERVING for its own suite (
94413d8)
- set the mock send buffer through its setter (
b4b9a64)
- give the hoisted handlers their state and the defaulted mtime (
d7152c2)
- hoist the file-serving handlers out of lambdas (
22a0087)
- give the host a pc_mnt_backend fixture and move file serving onto it (
18a0c36)
- use on_http_iface for the interface-scoped overload (
93920a6)
- spell the infinite loop without the C++ keyword (
030b761)
- convert the defer and presentation suites to C (
b0d3177)
- enable PC_ENABLE_AUTH for the auth suites (
102cc67)
- finish the auth arity and give the host seam a settable send buffer (
84a9c6c)
- match the arities C left behind (
201dcb5)
- convert the remaining JSON writers to the C API (
2900695)
- move the JSON suite onto the C writer API (
5e95259)
- give the host seam the send-capture accessors, and build route + signaling (
25435d5)
- bind slots through the host seam and fix the value-init assignments (
fa14afe)
- enable the dependencies the feature gates require (
c7e7725)
- pass the tls flag listener_add no longer defaults (
d8048bc)
- convert test_session to C (
6d760e4)
- convert test_forward to C (
cd51377)
- build the clock TU in native_clock (
5ab8253)
- make the host mocks compile as C and restore the virtual clock (
940c3fd)
- restore packml enum member names after the C++ scope strip (
cfd42e8)
- give the remaining 134 suites the library's own truth type (
3661181)
- fix a missed ks_handshake call site and the Ext case table (
70f03b6)
- spell the local case-table structs as typedefs in test_tls13_msg (
98641c1)
- give the QUIC/TLS suites the library's own truth type (
c68d9a8)
- convert the mechanically-convertible suites to C11 (
79e56d1)
- assert the six enum widths at compile time (
4ef3417)
[0.0.7] - 2026-08-02
Show Changelog for version 0.0.7 - 2026-08-02
CI / Build
Changes
- Bump version: 0.0.6 → 0.0.7 (
4a6ac90)
Documentation
- state C11 in the law, and retire DONE as a status in the sweep notes (
0a52923)
[0.0.6] - 2026-08-02
Show Changelog for version 0.0.6 - 2026-08-02
Bug Fixes
- convert the C++ type declarations behind sqlite, aes128gcm and hkdf (
a437340)
CI / Build
Changes
- Bump version: 0.0.5 → 0.0.6 (
0b8de8e)
Documentation
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
90e44e7)
[0.0.5] - 2026-08-02
Show Changelog for version 0.0.5 - 2026-08-02
Bug Fixes
- restore the constant names the constexpr sweep truncated, and close the guard chain (
0e46ddf)
CI / Build
Changes
- Bump version: 0.0.4 → 0.0.5 (
df66a22)
Documentation
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
ab43d04)
[0.0.4] - 2026-08-02
Show Changelog for version 0.0.4 - 2026-08-02
Bug Fixes
- reattach the three envs left extending a base the rename deleted (
e7cb3db)
- pin LF in every generator that writes a text file (
2573320)
- unbreak the default link, and stop the tree walk storing every path ten times (
2602f75)
- stop protocore.h from defining a secret and declaring six symbols nobody can link (
e8e2853)
- native_ssh satisfies the SFTP/SCP guard through the mount, not FILE_SERVING (
8915c33)
CI / Build
Changes
- Bump version: 0.0.3 → 0.0.4 (
4619ab9)
- Merge remote-tracking branch 'origin/main' into refactor/lib-wide (
dd7a7a1)
- Merge pull request #20 from dstroy0/refactor/json-codec (
3103251)
- Merge remote-tracking branch 'origin/main' into refactor/json-codec (
f12ca3f)
Documentation
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
27a9294)
- move the CI badges to the top of the README (
75a9345)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
9346b62)
- publish features.html and the diagrams, and cut the README down (
5dca79b)
- update ESP32 build footprints [skip ci] (
f2dcdce)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
181b870)
- make every badge a link (
31fb989)
- interactive SVG diagrams, and a README that is not half feature table (
a452865)
- update ESP32 build footprints [skip ci] (
3f08774)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
8f56a71)
Features
- give the server's state one place to be read from (
10b5eba)
Refactor
- convert src/ to C11 and split the build into PROTOCORE_HOT / PROTOCORE_HOST (
40d217a)
- split swar into an access layer and bounded-run operations (
d5d947e)
- finish removing the PC class, and default every feature off (
65a3886)
- give the filesystem accessor the tree operations, and mnt back its blindness (
09227b6)
- delete the PC class and give the vfs/mnt split its boundary back (
8b089bb)
[0.0.3] - 2026-07-31
Show Changelog for version 0.0.3 - 2026-07-31
Bug Fixes
- reject a wire length that overflows the bounds check on 32-bit targets (
ae8cad2)
- derive forced feature dependencies instead of rewriting the user's flags (
88e22b3)
CI / Build
Changes
- Bump version: 0.0.2 → 0.0.3 (
bb17397)
- Bump version: 0.0.1 → 0.0.2 (
2c6672b)
- drop the clip mode; logging takes the one contract (
6195264)
- delete the duplicate web_assets copy that broke every example link (
7df281f)
- close ban 20 - the three printf APIs take a frame spec (
6505d73)
- build the last fixed-shape frames with pc_sb, not snprintf (
114a275)
- ban nondeterministic dispatch, retire the last format-string appender (
210dd35)
- pin LF checkout on every platform (
692024f)
Documentation
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
7f8fed4)
- update ESP32 build footprints [skip ci] (
c80866d)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
5b76ba0)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
b79f161)
- update ESP32 build footprints [skip ci] (
2389946)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
1d9135c)
- update ESP32 build footprints [skip ci] (
61e6e03)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
fae0bdb)
- close out the Sphinx entries in the delivery record (
49ea705)
- rebuild the Doxygen theme, group the sidebar, drop the Sphinx site (
8cf35ee)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
486bef5)
- update ESP32 build footprints [skip ci] (
494a04f)
- regenerate feature tables + configurator + build_opt.h + example index [skip ci] (
10bac7c)
Refactor
- give storage one owner and take the vendor out of the file-transfer servers (
5081912)
- take the codec's tag byte out of the shared read cursor (
d4956d8)
- collapse the codec cursors onto pc_span and give SSH signaling an owner (
e2d0b4e)
[0.0.1] - 2026-07-31
Show Changelog for version 0.0.1 - 2026-07-31
Changes