TapTap
10b18ab2d2
Merge Wave 5a: dead-code removal, scanner options embed, shared config invariants, bounded metadata API
CI / lint (push) Successful in 1m31s
CI / sanitizers (undefined) (push) Successful in 1m0s
CI / sanitizers (address) (push) Successful in 1m7s
CI / fuzz-build (push) Successful in 30s
CI / coverage (push) Successful in 51s
CI / valgrind (push) Successful in 3m12s
CI / build-and-test (push) Successful in 5m32s
2026-09-13 05:48:32 +02:00
TapTap
dcc78c14c5
docs,fuzz: fix ownership/alloc comments; fuzz chunk metadata path
2026-09-13 05:48:27 +02:00
TapTap
5a829adb85
Merge branch 'fix/w5-scanner' into fix/w5-integration
2026-09-13 05:28:50 +02:00
TapTap
42c72030fb
Merge branch 'fix/w5-config' into fix/w5-integration
2026-09-13 05:28:50 +02:00
TapTap
99f8045105
refactor(scanner,send): embed scanner options; unify stats and config ownership
2026-09-13 05:28:32 +02:00
TapTap
eea66a7848
refactor(config,metadata): shared invariants; length-bounded metadata parser
2026-09-13 05:24:23 +02:00
TapTap
c944787e03
refactor: remove dead file_store subsystem and unused wrappers
2026-09-13 05:19:18 +02:00
TapTap
57ce6d04f0
Merge Wave 4: performance (packed metadata 2.20.0, indexed lookups, zstd reuse, byte-bounded queues)
CI / lint (push) Successful in 1m30s
CI / sanitizers (undefined) (push) Successful in 1m1s
CI / sanitizers (address) (push) Successful in 1m7s
CI / fuzz-build (push) Successful in 29s
CI / coverage (push) Successful in 50s
CI / valgrind (push) Successful in 3m12s
CI / build-and-test (push) Successful in 5m22s
2026-09-13 05:01:21 +02:00
TapTap
3cf2e2c91f
docs(version): align 2.20.0 artifacts; fix protocol-bump rationale
2026-09-13 05:01:15 +02:00
TapTap
301cb0dbaf
fix(utils,file-list): bound keep/files-from indexes to O(M) memory
2026-09-13 04:52:10 +02:00
TapTap
a4f4110397
Merge branch 'fix/w4-queue' into fix/w4-integration
2026-09-13 04:19:12 +02:00
TapTap
24fe8c5583
Merge branch 'fix/w4-compress' into fix/w4-integration
2026-09-13 04:19:12 +02:00
TapTap
d274bdff4e
Merge branch 'fix/w4-hash' into fix/w4-integration
2026-09-13 04:19:12 +02:00
TapTap
6c636a19e6
perf(compression,tcp): reuse zstd contexts; enable TCP_NODELAY
2026-09-13 04:18:55 +02:00
TapTap
1a83e284c4
perf(utils,file-list): index delete keep-set and --files-from lookups
2026-09-13 04:16:28 +02:00
TapTap
317d5d081a
perf(protocol): pack metadata into one frame (PROTOCOL 2.20.0)
2026-09-13 04:08:36 +02:00
TapTap
69fe7f3c9f
perf(send,scanner): byte-bound sender queues; drop redundant stat
2026-09-13 04:06:30 +02:00
TapTap
ddc71a7df5
Merge Wave 3b: configurable protocol timeout and idle/session bounds
CI / lint (push) Successful in 1m31s
CI / sanitizers (undefined) (push) Successful in 1m1s
CI / sanitizers (address) (push) Successful in 1m8s
CI / fuzz-build (push) Successful in 30s
CI / coverage (push) Successful in 50s
CI / build-and-test (push) Successful in 4m37s
CI / valgrind (push) Successful in 3m12s
2026-09-13 03:46:25 +02:00
TapTap
ffa1d24625
fix(receiver): harden idle-progress definition, single error frame, sendfile timeout
2026-09-13 03:46:20 +02:00
TapTap
b16349b81e
fix(protocol): honor --timeout for protocol I/O; bound idle/session time
2026-09-13 03:29:01 +02:00
TapTap
4bc84fe954
Merge Wave 3a: daemon host ACL, configurable max connections, peer audit, auth-failure delay
CI / lint (push) Successful in 1m31s
CI / sanitizers (undefined) (push) Successful in 57s
CI / sanitizers (address) (push) Successful in 1m5s
CI / fuzz-build (push) Successful in 29s
CI / coverage (push) Successful in 49s
CI / build-and-test (push) Successful in 4m35s
CI / valgrind (push) Successful in 3m10s
2026-09-13 02:51:11 +02:00
TapTap
fc560246c1
fix(daemon): close ACL fail-opens (v4-mapped peers, invalid patterns) and cap auth delay
2026-09-13 02:51:07 +02:00
TapTap
dff6609976
feat(daemon): host ACL, configurable max connections, peer audit, auth-failure delay
2026-09-13 02:36:15 +02:00
TapTap
1acb66628d
Merge Wave 2: thread-safety fixes (signals, fd ownership, handler epilogue, logging, scanner leak)
CI / lint (push) Successful in 1m30s
CI / sanitizers (undefined) (push) Successful in 59s
CI / sanitizers (address) (push) Successful in 1m6s
CI / fuzz-build (push) Successful in 28s
CI / coverage (push) Successful in 49s
CI / build-and-test (push) Successful in 4m31s
CI / valgrind (push) Successful in 3m10s
2026-09-13 02:13:27 +02:00
TapTap
ba1c7a369f
fix(server,log): non-socket shutdown fallback, drop redundant delay cleanup, unlock logging I/O
2026-09-13 02:13:22 +02:00
TapTap
d28489d83c
Merge branch 'fix/w2-scan' into fix/w2-integration
2026-09-13 01:49:44 +02:00
TapTap
312ed05170
Merge branch 'fix/w2-log' into fix/w2-integration
2026-09-13 01:49:44 +02:00
TapTap
fecbe2c90c
fix(server): child-safe signals, single fd owner, handler cleanup epilogue
2026-09-13 01:49:27 +02:00
TapTap
c8f5d80fcb
fix(log): serialize message emission; clear log_fp before close; use logger
2026-09-13 01:44:59 +02:00
TapTap
8147ff7b50
fix(scanner): free chunk_data on chunk-create failure
2026-09-13 01:36:51 +02:00
TapTap
b7fbb56289
test(file): silence cppcheck constVariablePointer in empty-path test
CI / lint (push) Successful in 1m32s
CI / sanitizers (undefined) (push) Successful in 57s
CI / sanitizers (address) (push) Successful in 1m4s
CI / fuzz-build (push) Successful in 30s
CI / coverage (push) Successful in 49s
CI / build-and-test (push) Successful in 4m28s
CI / valgrind (push) Successful in 3m10s
2026-09-13 01:25:29 +02:00
TapTap
08063b6d73
Merge Wave 1: critical/High fixes (UAF, DoS caps, leaks, hardening)
CI / lint (push) Failing after 1m32s
CI / build-and-test (push) Skipped
CI / sanitizers (address) (push) Skipped
CI / sanitizers (undefined) (push) Skipped
CI / fuzz-build (push) Skipped
CI / coverage (push) Skipped
CI / valgrind (push) Skipped
2026-09-13 01:18:58 +02:00
TapTap
ea2f76cd7a
fix(receiver): charge per-entry DirTimeList cost; cap client --skip-compress
2026-09-13 01:18:54 +02:00
TapTap
76eeba1773
Merge branch 'fix/w1d-hardening' into fix/w1-integration
2026-09-13 00:59:35 +02:00
TapTap
b72ab298ab
Merge branch 'fix/w1c-wire' into fix/w1-integration
2026-09-13 00:59:35 +02:00
TapTap
446a714ef8
Merge branch 'fix/w1b-receiver' into fix/w1-integration
2026-09-13 00:59:35 +02:00
TapTap
a90e234eb3
harden: overflow guards, auth-user validation, TLS1.3 policy, build hardening
2026-09-13 00:59:21 +02:00
TapTap
f8252cf3e7
fix(protocol): bound pre-auth config string memory
2026-09-13 00:57:32 +02:00
TapTap
4557924972
fix(receiver): cap DirTimeList growth and fix placeholder Data leaks
2026-09-13 00:57:32 +02:00
TapTap
59ce174d22
fix(client-send): UAF in basis preflight and missing_args leak
2026-09-13 00:57:09 +02:00
TapTap
2a8941ee5c
Merge feat/ref-integration: SuperMode enum, dir-time gate dedup, parse_args/server_module_gate splits
CI / lint (push) Successful in 1m30s
CI / sanitizers (undefined) (push) Successful in 59s
CI / sanitizers (address) (push) Successful in 1m6s
CI / fuzz-build (push) Successful in 29s
CI / coverage (push) Successful in 49s
CI / valgrind (push) Successful in 2m9s
CI / build-and-test (push) Successful in 4m31s
2026-09-12 21:11:03 +02:00
TapTap
37037a6ee7
refactor(client-cli): drop unused CliParseCtx positional fields (cppcheck)
2026-09-12 21:07:14 +02:00
TapTap
061e9ad43f
Merge feat/ref-modulegate: split server_module_gate into helpers
2026-09-12 20:56:43 +02:00
TapTap
f928879755
Merge feat/ref-parseargs: split parse_args into focused helpers
2026-09-12 20:56:43 +02:00
TapTap
84b7cb0de3
refactor(server): split server_module_gate into ordered helper stages
2026-09-12 20:56:33 +02:00
TapTap
921472b8b3
refactor(client-cli): split parse_args into focused option handlers
...
Break the ~700-line parse_args god function into cohesive static helpers
grouped by concern: output controls, pre-negation, range/time options, the
OPTION_TABLE dispatcher, flag/meta handlers, IO/network options, filter and
logging options, checksum/socket options, remote/basis/identity options,
positional handling, and a final lowering step.
A file-local CliParseCtx carries the config, cursor, positional buffers and
the mutable parse flags, so each handler stays focused. The dispatcher calls
the handlers in the original recognition order and preserves the exact
return contract (0/1/negative), error messages, log levels and control flow.
Behavior preserved; no functional changes.
2026-09-12 20:55:04 +02:00
TapTap
082ac2645d
Merge feat/ref-dirtime: dir-time capture gate dedup
2026-09-12 20:43:42 +02:00
TapTap
eefbd1e849
Merge feat/ref-supermode: SuperMode enum
2026-09-12 20:43:42 +02:00
TapTap
1fd462cca8
refactor(config): replace SUPER_MODE_* macros with SuperMode enum
...
Type Config.super_mode as SuperMode (a proper C enum) instead of a bare
int. The wire boundary still carries the mode as an int: send casts the
enum explicitly and receive reads a temporary int, validates the
AUTO..OFF range, then casts. Emitted bytes and accepted values are
unchanged. ModuleGateContext.super_mode_override keeps its -1 sentinel
as int with an explicit cast at the apply site.
Behavior preserved.
2026-09-12 20:43:24 +02:00
TapTap
4ac37c4d8a
refactor(dir-times): extract dir_times_should_capture predicate
...
Deduplicate the repeated directory-time capture gate
(`config->use_metadata && !config->omit_dir_times`) used by the
sender-side (multiprocessing.c) and receiver-side (receiver.c) sinks
into a single predicate declared next to the DirTimeList machinery in
file_receive.h and defined in file_receive.c.
Behavior preserved: identical short-circuit condition and semantics,
no signature or protocol changes.
2026-09-12 20:42:47 +02:00