<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/tests/core, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-11-03T13:46:37+00:00</updated>
<entry>
<title>tests: compare the socket receive count without a sign mismatch</title>
<updated>2026-11-03T13:46:37+00:00</updated>
<author>
<name>kraibse</name>
<email>33869366+kraibse@users.noreply.github.com</email>
</author>
<published>2026-11-03T13:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b1e5c7ec68c9fd444a5615a18ce434cdfd782bba'/>
<id>urn:sha1:b1e5c7ec68c9fd444a5615a18ce434cdfd782bba</id>
<content type='text'>
Recv reports a signed int count and payload.size() is size_t, which trips
-Werror=sign-compare and stops the tests target from building.

Assisted-by: DeepSeek V4.1 Flash (diagnosis and patch)
</content>
</entry>
<entry>
<title>tests: cover room packet matching and size-checked ZSTD decompression</title>
<updated>2026-11-03T00:39:55+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-03T00:39:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=d8d16713b891245fd786b27d375f68d695c76d0e'/>
<id>urn:sha1:d8d16713b891245fd786b27d375f68d695c76d0e</id>
<content type='text'>
Assisted-by: Claude Opus 5.5 (investigation and implementation)
</content>
</entry>
<entry>
<title>tests: queue decompressed packets in the room socket tests</title>
<updated>2026-11-03T00:15:30+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-03T00:15:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=fdeecea52df593d6d2a1ce6e1977e3aab1bb9135'/>
<id>urn:sha1:fdeecea52df593d6d2a1ce6e1977e3aab1bb9135</id>
<content type='text'>
HandleProxyPacket now receives data that bsd has already decompressed.

Assisted-by: Claude Opus 5.5 (investigation and implementation)
</content>
</entry>
<entry>
<title>tests: cover room ProxySocket receives and the LDN join handshake</title>
<updated>2026-11-03T00:08:49+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-03T00:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=01090e8e44d8d64bb5839f8d842bdd3028447608'/>
<id>urn:sha1:01090e8e44d8d64bb5839f8d842bdd3028447608</id>
<content type='text'>
Add unit tests for the room LAN fixes in this branch. The socket tests
check datagram truncation, TCP remainders and peeks, timeouts, wakeups on
close and on a new packet, and stream behavior with the default protocol.
The LDN tests check that a join waits for the host's reply, rejects bad or
duplicate joins, ignores late replies and uses fresh identities.

Assisted-by: Sol (LDN join tests)
Assisted-by: Claude Opus 5.5 (room socket tests)
</content>
</entry>
<entry>
<title>Merge pull request #327 from daniel-cabral/fix/nup-writer-msvc</title>
<updated>2026-11-02T23:26:17+00:00</updated>
<author>
<name>Jonas</name>
<email>104419015+jojo-chaechae@users.noreply.github.com</email>
</author>
<published>2026-11-02T23:26:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8c6539b564adf7b5c595b4dd543bc5b504db17a1'/>
<id>urn:sha1:8c6539b564adf7b5c595b4dd543bc5b504db17a1</id>
<content type='text'>
tests when building on Windows: compare FindBestUpdatePackage with a size_t</content>
</entry>
<entry>
<title>Merge pull request #334 from snowstormxd/codex/upstream-mkw-test</title>
<updated>2026-11-02T22:36:01+00:00</updated>
<author>
<name>Jonas</name>
<email>104419015+jojo-chaechae@users.noreply.github.com</email>
</author>
<published>2026-11-02T22:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8362c44ff835d7be73d2adad9ce3e2d4467a6aeb'/>
<id>urn:sha1:8362c44ff835d7be73d2adad9ce3e2d4467a6aeb</id>
<content type='text'>
MKW performance improvements</content>
</entry>
<entry>
<title>file_sys: reject NUP tables with wrapping bounds or cyclic directories</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T16:25:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=089105ab44c87f1ef0526221144a1979c56558e6'/>
<id>urn:sha1:089105ab44c87f1ef0526221144a1979c56558e6</id>
<content type='text'>
31b901b93b checked the TOC with unchecked arithmetic on counts and
offsets read from the file. The record-table size (u64 count times
record size) and u32 first_child + child_count can wrap, so the bounds
checks pass and later reads go out of bounds; the same holds for the
TOC range, name ranges, file extents and the meta range. A directory
that lists its own ancestor as a child also made BuildDirTree recurse
until the stack overflowed.

Bound the counts by the TOC size before multiplying, compare ranges by
subtraction, and widen the child range to u64. Walk the directory graph
once after parsing with an explicit stack and reject cycles and nesting
deeper than 128, so BuildDirTree can no longer recurse without bound.
The file is rejected with ErrorNUPBadFormat.

Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
</content>
</entry>
<entry>
<title>file_sys: decompress large NUP zstd members once</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T16:23:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8748fbd542a00ab7bbfbf17210b29f8d51c3c4b5'/>
<id>urn:sha1:8748fbd542a00ab7bbfbf17210b29f8d51c3c4b5</id>
<content type='text'>
31b901b93b only cached a zstd member while it fit the 512 MiB cache.
Anything larger was never cached, so every Read() allocated the full
uncompressed size and decompressed the whole extent again, which makes a
multi-GB RomFS read in small chunks unusably slow. Members between 256
and 512 MiB evicted each other on alternate reads, and Insert copied the
vector so memory briefly doubled. Two threads decompressing the same
member also left a duplicate LRU entry and a wrong byte count.

The writer emits one zstd frame per member, so there are no frame
boundaries to seek by. Members larger than half the cache are now
streamed once into a temporary file under the cache directory and read
from there, using bounded memory. The file is removed when the
container is released. Smaller members stay in the LRU, which now moves
the vector in and ignores a duplicate insert.

Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
</content>
</entry>
<entry>
<title>loader: find mixed-case loose RomFS directories consistently</title>
<updated>2026-11-02T19:42:01+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-02T19:42:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6cdf4c28a77af1f3a4431c129bed11895630d83f'/>
<id>urn:sha1:6cdf4c28a77af1f3a4431c129bed11895630d83f</id>
<content type='text'>
Linux missed base version metadata for Base/RomFS while Windows included it. Use a case-insensitive fallback for the loose directory and check the version and resulting archive checksum.

Assisted by Codex.
</content>
</entry>
<entry>
<title>tests: restore batched page accounting and isolate timer fixtures</title>
<updated>2026-11-02T19:36:34+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T19:02:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6a0d50bcca77987d27857b029f5e3f90dd3d141c'/>
<id>urn:sha1:6a0d50bcca77987d27857b029f5e3f90dd3d141c</id>
<content type='text'>
Apply batch updates in the rasterizer mock, check cached writes do not untrack twice, and reset callback state between timer cases.

Assisted-by: Codex (implementation, review and automated validation)
(cherry picked from commit 225ad4e5d1da4ec9883b17aea7273b6c8f76fe17)
</content>
</entry>
</feed>
