Commit graph

20 commits

Author SHA1 Message Date
trvon
73e5d3831c
fix(cli): decode compressed content in yams get
Since v0.7.3 'yams get' has requested compressed transfers
(acceptCompressed), and the daemon has answered with a framed payload: a
CompressionHeader followed by a Zstandard body. Only the MCP server
decoded it; 'yams get' wrote the frame itself to stdout or -o, so users
saw the 'CNRK' header and a zstd frame instead of the document. 'yams cat'
was unaffected because it does not request compression.

- Move the frame format into compression/framed_payload
  (encodeFramedPayload/decodeFramedPayload). DocumentService encodes with
  it; 'yams get' and MCP decode with it.
- The decoder checks the header, body size and CRC, and the decoded size
  and CRC. A payload that fails is an error; MCP used to fall back to
  returning the framed bytes as content.

Verified end to end: 'yams get' output (stdout and -o) is byte-identical
to the added file while the transfer stays compressed (51.75x).

Signed-off-by: trvon <me@trevon.dev>
2026-09-26 21:10:00 -06:00
trvon
15f3e3db73
refactor(compression): remove the never-built LZMA compressor
lzma_compressor.cpp targets the 7-Zip LZMA SDK (LzmaEnc.h/Alloc.h), but
the build only finds xz/liblzma, which does not ship those headers, so
every build (release logs: 'Has header "LzmaEnc.h" ... NO') compiled it
out. No build could read or write LZMA blocks, and its decoder never
bounded output by the expected size.

The policy still chose LZMA for cold/archival and large inactive data;
compression then failed ('Compressor not available') and batch stores
kept those blocks uncompressed. Select Zstandard, which already uses the
archive level for old data.

Remove the compressor, its test, the enable-lzma option and the build
flags that passed it. The LZMA algorithm id stays in the header format,
and compression.lzma_level remains accepted in config (now unused).
2026-09-23 19:31:37 -06:00
trvon
f5e29366bf
fix(compression): check stored zstd sizes against the frame before allocating
decompress() trusted a caller-provided expected size (from the stored
block header, which has no checksum of its own) and allocated that many
bytes, up to 16 GB, before decoding. A corrupt size field could therefore
drive a huge allocation.

When the frame records its content size, the expected size must match
it. When it does not (streaming compressor output), decode incrementally
so the buffer grows with the real output and fail once it passes the
expected size.
2026-09-23 18:05:05 -06:00
trvon
b2ede10e54
fix: stabilize CI release gates
Fix DB vacuum, compression gates, fuzzy search, temp dirs.
   Repair release packaging: Bash 3.2, Arch containers,
   package validation defaults, artifact names, matrix metadata.

   Local tests + release act lane pass.
2026-07-03 22:40:05 -04:00
trvon
69f6f63f55
fix(security): harden fold-flagged guards
Signed-off-by: trvon <me@trevon.dev>
2026-05-17 23:50:32 -04:00
trvon
2d5c6625eb
fix: download logic improvements and ci test fixes. Stagging download fixes seperate from search features 2026-05-04 13:29:17 -04:00
trvon
c49f0ba759
feat: optimizations based on profile runs in hashing and work coordinator. test updates and correctness fixes 2026-02-24 21:06:43 -05:00
trvon
29b5172e07
fix: test updates and benchmark updates for grep 2026-02-21 21:51:45 -05:00
trvon
2360828eb7
feat: bug fixes in daemon lifecycle, cleaning up tests and resolving test failures 2026-02-17 11:04:22 -05:00
trvon
b912ea0b83
compression bug fix 2026-01-03 22:38:28 -05:00
trevon
48dc0dfa89
removing gtest migrated tests and continuing with test migration 2025-12-16 10:50:18 -05:00
trvon
aacd7af41f
running linter 2025-12-13 16:27:07 -05:00
trevon
239d37ed24
continued test migration, grammar download support on windows. debugging embedding deadlock 2025-12-12 18:37:27 -05:00
trevon
708d9076b8
continued test migration, updating symbol extraction plugin to address plug, search improvements 2025-12-12 15:23:44 -05:00
trvon
83fa1ad1ba
v0.7.5 staging and license updates 2025-10-13 17:07:31 -04:00
Trevon
54f1364502
test flakiness improvements, ci improvements and fixes documented for v0.7.1 2025-09-26 06:40:48 -04:00
Trevon
43699f99a3
v0.7.0-prerelease 2025-09-20 22:55:34 -04:00
Trevon
abdbd68e06
build system improvements, clang-tidy integration for warnings equals errors (need to continue). POSIX socket legacy code removal 2025-09-03 13:22:30 -04:00
Trevon
3defa60de5
v0.3.3 clang-format now in use 2025-08-15 15:51:18 -04:00
Trevon
917aecf514
yams 2025-08-10 23:41:49 -04:00