2026-05-14 - 2026-08-14

Overview

52 Active Pull Requests
138 Active Issues
Excluding merges, 2 authors have pushed 16 commits to dev and 318 commits to all branches. On dev, 55 files have changed and there have been 5351 additions and 2489 deletions.

52 Pull requests merged by 1 user

Merged #210 Evaluation of codebase by human 2026-08-11 21:24:38 +02:00

Merged #209 Remove unimplemented CLI options 2026-08-11 21:17:52 +02:00

Merged #208 fix: complete issues #201-#206 remediation 2026-08-11 21:06:49 +02:00

Merged #207 fix: validate delta output and integration test skips 2026-08-08 20:17:38 +02:00

Merged #200 refactor: extract CLI parser helpers, fix validation bugs 2026-08-08 20:02:10 +02:00

Merged #199 docs: rsync feature compatibility matrix 2026-08-02 09:20:37 +02:00

Merged #198 Batch fix: security, bugs, quality, and features (v2) 2026-07-30 19:38:26 +02:00

Merged #173 Comprehensive fix: security, bugs, refactoring, tests, and rsync parity features 2026-07-30 18:13:15 +02:00

Merged #148 Merge all 5 batch PRs: security, CLI features, protocol, performance, tests/docs 2026-07-29 18:21:20 +02:00

Merged #145 Revert PR #143 merge to main 2026-07-29 18:10:43 +02:00

Merged #143 Merge all 5 batch PRs: security, CLI features, protocol, performance, tests/docs 2026-07-29 18:09:05 +02:00

Merged #144 feat: add --fastsync-server-path flag to configure remote server binary path 2026-07-21 18:17:36 +02:00

Merged #94 docs: add batch PR workflow and CI troubleshooting to AGENTS.md 2026-07-21 16:18:47 +02:00

Merged #93 Merge remaining 4 PRs: memory safety, refactoring, test coverage, integration cleanup 2026-07-21 16:08:39 +02:00

Merged #88 Fix logic/correctness bugs (#73, #68, #67, #66, #59, #58, #54, #48, #53) 2026-07-21 15:00:48 +02:00

Merged #90 Features and enhancements (#70, #36, #34, #33, #32, #57, #40, #37) 2026-07-21 15:00:32 +02:00

Merged #86 Revert all 6 merged PRs (#80-#85) 2026-07-20 19:37:24 +02:00

Merged #85 Fix integration issues: ssl_ctx init + test API updates 2026-07-20 19:34:21 +02:00

Merged #84 Features and enhancements (#70, #36, #34, #33, #32, #57, #40, #37) 2026-07-20 19:31:59 +02:00

Merged #83 Add unit test coverage (#71, #63, #62, #56, #55) 2026-07-20 19:13:35 +02:00

Merged #82 Fix logic/correctness bugs (#73, #68, #67, #66, #59, #58, #54, #48, #53) 2026-07-20 19:05:03 +02:00

Merged #81 Fix refactoring and portability issues (#61, #51, #52) 2026-07-20 18:59:19 +02:00

Merged #80 Fix memory/null safety bugs (#74, #72, #69, #64, #60, #50, #49, #65) 2026-07-20 18:56:45 +02:00

Merged #47 Fix 11 Gitea issues — bugs, quality, security, and refactoring 2026-07-20 17:51:22 +02:00

Merged #75 ci: fix double CI runs on PR pushes 2026-07-20 17:32:04 +02:00

Merged #25 testing: add comprehensive test suite for test-driven development 2026-07-20 17:05:44 +02:00

Merged #28 Improve agentic workflow — CI rules, branch strategy, deprecation rules, and new agents 2026-07-20 14:44:36 +02:00

Merged #26 feat: update AI automation agents, add reviewer agent, enhance CI 2026-07-20 14:38:52 +02:00

Merged #27 docs: add AGENTS.md with custom-image dependency install rule 2026-07-19 22:57:16 +02:00

Merged #24 ci: add static analysis, sanitizers, and formatting enforcement 2026-07-19 18:10:07 +02:00

Merged #22 feat: add delta transfer for incremental sync 2026-07-19 15:51:27 +02:00

Merged #21 refactor: split test.py into modular pytest integration tests + benchmark tool 2026-07-19 15:11:30 +02:00

Merged #23 feat: add opencode agents and skills for development workflows 2026-07-19 14:54:47 +02:00

Merged #20 docs: update README with TLS, incremental sync, server CLI, and corrected build requirements 2026-07-18 18:27:34 +02:00

Merged #13 TLS transport: OpenSSL-based encrypted TCP 2026-07-18 17:54:26 +02:00

Merged #14 Incremental sync: --incremental to skip unchanged files 2026-07-18 17:36:26 +02:00

Merged #18 test: add --full flag for lightweight default mode 2026-07-18 16:33:02 +02:00

Merged #19 refactor: merge sendfile and single_calls _no_path variants with send_path bool 2026-07-18 16:29:23 +02:00

Merged #17 ci: add build and unit test pipeline 2026-07-18 15:52:07 +02:00

Merged #15 Bandwidth throttling: --bwlimit <KB/s> with token bucket 2026-07-17 10:22:46 +02:00

Merged #16 Add custom opencode agents for FastSync development 2026-07-17 10:02:04 +02:00

Merged #11 Multi-client server, protocol versioning, streaming decompression 2026-07-16 15:15:20 +02:00

Merged #12 Fix exit() in library code, add --include/--max-size/--min-size 2026-07-16 15:03:38 +02:00

Merged #10 Fair benchmark: random data, exclude dry run from metrics 2026-07-16 13:46:27 +02:00

Merged #8 Rsync-compatible flags: -a, -n, -p, --exclude, --delete 2026-07-16 13:38:20 +02:00

Merged #9 Update README and add feature tests for rsync-compatible flags 2026-07-16 13:38:14 +02:00

Merged #7 Streaming zstd: switch to ZSTD_compressStream2 / ZSTD_decompressStream 2026-07-16 12:31:49 +02:00

Merged #6 Quick wins: ControlMaster, -z alias, --progress, fix write warning 2026-07-16 12:30:13 +02:00

Merged #5 Performance tuning: test data, SSH buffer, and configurable chunk size 2026-07-16 12:24:45 +02:00

Merged #4 Phase 1+2: bug fixes and dead code cleanup 2026-07-16 12:11:31 +02:00

Merged #1 refactor: split monolithic modules and extract shared components 2026-07-16 11:58:38 +02:00

Merged #3 fixup: address PR review comments 2026-07-16 11:58:27 +02:00

138 Issues closed from 1 user

Closed #202 Harden receiver cancellation, deadlines, and manifest validation 2026-08-11 21:12:30 +02:00

Closed #203 Implement checksum-aware incremental synchronization 2026-08-11 21:12:30 +02:00

Closed #204 Make CI exercise dev and execute meaningful integration/fuzz coverage 2026-08-11 21:12:30 +02:00

Closed #205 Use descriptor-relative no-follow writes for destination confinement 2026-08-11 21:12:30 +02:00

Closed #206 Make parsed receiver and scanner options affect behavior or fail explicitly 2026-08-11 21:12:30 +02:00

Closed #201 Require server-side authorization for destination and deletion 2026-08-11 21:12:29 +02:00

Closed #174 Feature: Partial/incomplete transfer resumption (--partial, --partial-dir, --inplace) 2026-07-30 19:38:28 +02:00

Closed #175 Feature: Rich filter rules and file lists (--filter, --files-from, --exclude-from) 2026-07-30 19:38:28 +02:00

Closed #176 Feature: Transfer statistics output (--stats) 2026-07-30 19:38:28 +02:00

Closed #177 Feature: Preserve symlinks, hard links, and special files (-l, -H, -D) 2026-07-30 19:38:28 +02:00

Closed #178 Feature: Backup and versioning (--backup, --backup-dir, --suffix) 2026-07-30 19:38:28 +02:00

Closed #179 Feature: Delete policies and ordering (--delete-before, --delete-after, --delete-excluded, --max-delete) 2026-07-30 19:38:28 +02:00

Closed #180 Feature: Connection timeouts, retries, and keepalive 2026-07-30 19:38:28 +02:00

Closed #181 Feature: IPv6 and bind-address support 2026-07-30 19:38:28 +02:00

Closed #182 Feature: Daemon/server mode equivalent to rsyncd 2026-07-30 19:38:28 +02:00

Closed #183 Feature: Checksum-based whole-file comparison (-c, --checksum) 2026-07-30 19:38:28 +02:00

Closed #184 Feature: Compression algorithm negotiation (not just zstd) 2026-07-30 19:38:28 +02:00

Closed #185 Feature: SSH key/agent options and remote shell customization 2026-07-30 19:38:27 +02:00

Closed #186 Feature: Sparse file handling (--sparse) 2026-07-30 19:38:27 +02:00

Closed #187 Security: Unbounded network allocation allows denial-of-service 2026-07-30 19:38:27 +02:00

Closed #188 Security: Path traversal in received file paths 2026-07-30 19:38:27 +02:00

Closed #189 Security: TLS client does not verify server hostname 2026-07-30 19:38:27 +02:00

Closed #190 Security: No connection limits or timeouts enables fork-bomb / slowloris 2026-07-30 19:38:27 +02:00

Closed #191 Security: SUID/SGID bits preserved via metadata can escalate privileges 2026-07-30 19:38:27 +02:00

Closed #192 Security: Scanner follows symlinks and can traverse outside source tree 2026-07-30 19:38:27 +02:00

Closed #193 Bug: --progress output is missing in multithreaded mode 2026-07-30 19:38:27 +02:00

Closed #194 Bug: TCP client only accepts IPv4 addresses, not hostnames 2026-07-30 19:38:27 +02:00

Closed #195 Quality: Replace strcpy/strcat with bounded string functions 2026-07-30 19:38:26 +02:00

Closed #196 Quality: Refactor long sender functions and duplicated dry-run logic 2026-07-30 19:38:26 +02:00

Closed #168 Bug/Performance: sendfile() loop treats EAGAIN / EINTR as fatal errors 2026-07-30 18:17:32 +02:00

Closed #169 Bug/Security: chown() failures during metadata restoration are silently ignored 2026-07-30 18:17:32 +02:00

Closed #170 Security: Delta and chunk deserialization don't validate array counts/sizes from network 2026-07-30 18:17:32 +02:00

Closed #158 Bug: Server leaks Config in non-multithreaded handler path 2026-07-30 18:17:31 +02:00

Closed #159 Security: zstd decompression may allocate ZSTD_CONTENTSIZE_UNKNOWN bytes 2026-07-30 18:17:31 +02:00

Closed #160 Security: TLS I/O doesn't handle SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE 2026-07-30 18:17:31 +02:00

Closed #161 Security: TLS client lacks hostname verification 2026-07-30 18:17:31 +02:00

Closed #162 Security: --delete follows symlinks and may delete outside destination tree 2026-07-30 18:17:31 +02:00

Closed #163 Bug: --delete manifest sending ignores send_status / send_int / send_str failures 2026-07-30 18:17:31 +02:00

Closed #164 Bug: Transfer functions return -1, causing implementation-defined exit status 2026-07-30 18:17:31 +02:00

Closed #165 Bug/Quality: Protocol layer uses global I/O state; io_ssl is not thread-local 2026-07-30 18:17:31 +02:00

Closed #166 Bug: client_cli.c may free() a string literal for server_host 2026-07-30 18:17:31 +02:00

Closed #167 Bug: Server receive_thread doesn't propagate file_receive / chunk receive errors 2026-07-30 18:17:31 +02:00

Closed #134 Testing: missing end-to-end integration tests for delta, multiprocessing, and server pipeline 2026-07-30 18:17:30 +02:00

Closed #135 Testing: fuzz targets exist but are never run — no CI integration 2026-07-30 18:17:30 +02:00

Closed #136 Testing: no coverage data for client_cli.c and server.c — CLI and server entry points untested 2026-07-30 18:17:30 +02:00

Closed #137 Testing: multiprocessing.c has only 42% coverage — server thread functions untested 2026-07-30 18:17:30 +02:00

Closed #149 Refactor: main() in client_cli.c is a 277-line god function 2026-07-30 18:17:30 +02:00

Closed #150 Refactor: config_create() 11-parameter constructor is unmaintainable 2026-07-30 18:17:30 +02:00

Closed #151 Refactor: send_files() and send_files_multithreaded() share massive code duplication 2026-07-30 18:17:30 +02:00

Closed #152 Bug: Missing NULL-checks and weak input validation in CLI argument parsing 2026-07-30 18:17:30 +02:00

Closed #156 Security: Unbounded wire sizes enable OOM denial of service 2026-07-30 18:17:30 +02:00

Closed #157 Security: Metadata restoration applies arbitrary mode bits including setuid/setgid 2026-07-30 18:17:30 +02:00

Closed #121 Rsync parity: extended metadata preservation (hard links, ACLs, xattrs, devices, sparse files) 2026-07-30 18:17:29 +02:00

Closed #122 Rsync parity: output and logging options (--itemize-changes, --out-format, --info, --debug, --list-only, --files-from, --human-readable) 2026-07-30 18:17:29 +02:00

Closed #127 Rsync parity: update/inplace/append transfer modes 2026-07-30 18:17:29 +02:00

Closed #128 Rsync parity: extended delete options 2026-07-30 18:17:29 +02:00

Closed #129 Rsync parity: advanced file selection (--filter, --files-from, --cvs-exclude, --prune-empty-dirs, --relative) 2026-07-30 18:17:29 +02:00

Closed #130 Rsync parity: remote shell and connection options 2026-07-30 18:17:29 +02:00

Closed #131 Testing: transport layer has 0% unit test coverage (TCP, TLS, SSH) 2026-07-30 18:17:29 +02:00

Closed #132 Testing: file.c has only 21% coverage — many critical functions untested 2026-07-30 18:17:29 +02:00

Closed #133 Testing: config.c has only 33% coverage — protocol serialization untested 2026-07-30 18:17:29 +02:00

Closed #120 Rsync parity: symlink handling flags (--links, --copy-links, --safe-links, --copy-unsafe-links) 2026-07-30 18:17:28 +02:00

Closed #154 Security: Path traversal allows writes/deletes outside destination root 2026-07-30 18:13:15 +02:00

Closed #39 quality: no unit tests for transport modules (TCP, SSH, TLS, Protocol) 2026-07-29 18:27:47 +02:00

Closed #123 Rsync parity: update/inplace/append transfer modes 2026-07-29 18:27:25 +02:00

Closed #124 Rsync parity: extended delete options 2026-07-29 18:27:25 +02:00

Closed #125 Rsync parity: advanced file selection (--filter, --files-from, --cvs-exclude, --prune-empty-dirs, --relative) 2026-07-29 18:27:25 +02:00

Closed #126 Rsync parity: remote shell and connection options 2026-07-29 18:27:25 +02:00

Closed #147 Agents must never merge PRs onto main — use tea CLI instead 2026-07-29 18:27:25 +02:00

Closed #102 Missing atomic file writes on receiver (write-then-rename) 2026-07-29 18:27:17 +02:00

Closed #106 Incremental check causes per-file network round-trip -- batch it 2026-07-29 18:27:17 +02:00

Closed #107 Loader thread loads all file data into memory causing high memory usage 2026-07-29 18:27:17 +02:00

Closed #108 Fixed queue capacity 100 may cause pipeline stalls for varied file sizes 2026-07-29 18:27:17 +02:00

Closed #109 Single-threaded BFS scanner is a bottleneck for large directory trees 2026-07-29 18:27:17 +02:00

Closed #110 Static compression level wastes CPU on incompressible files 2026-07-29 18:27:17 +02:00

Closed #111 Bandwidth limiter uses nanosleep causing jitter, and SSL thread-local limits threading 2026-07-29 18:27:17 +02:00

Closed #119 Update README for new features, missing flags, and stale content 2026-07-29 18:27:17 +02:00

Closed #100 Missing heartbeat/keep-alive messages in protocol 2026-07-29 18:27:16 +02:00

Closed #101 Missing cancellation/abort mechanism in protocol 2026-07-29 18:27:16 +02:00

Closed #97 Missing --backup / --backup-dir flags for safe destructive operations 2026-07-29 18:27:15 +02:00

Closed #98 Missing --stats flag for transfer statistics summary 2026-07-29 18:27:15 +02:00

Closed #99 Missing --exclude-from / --include-from for pattern files 2026-07-29 18:27:15 +02:00

Closed #103 Missing --max-depth directory traversal limit flag 2026-07-29 18:27:15 +02:00

Closed #104 Missing --log-file option for persistent logging 2026-07-29 18:27:15 +02:00

Closed #105 Hardcoded queue capacity 100 should be configurable via --queue-size 2026-07-29 18:27:15 +02:00

Closed #95 Missing --timeout / --contimeout CLI flags for connection and I/O timeouts 2026-07-29 18:27:14 +02:00

Closed #96 Missing --quiet / --silent flag to suppress non-error output 2026-07-29 18:27:14 +02:00

Closed #115 Fixed 512-byte stack buffer for SSH user@host can truncate silently 2026-07-29 18:27:14 +02:00

Closed #116 No per-message receive timeout allows slow loris / hang DoS 2026-07-29 18:27:14 +02:00

Closed #117 MAX_DATA_SIZE = 1GB allows large memory allocation from network input 2026-07-29 18:27:14 +02:00

Closed #118 TLS client disables certificate verification when no CA is provided 2026-07-29 18:27:14 +02:00

Closed #112 strstr(..) path traversal check is weak and has false positives 2026-07-29 18:27:13 +02:00

Closed #113 No connection limit on server creates fork bomb DoS vector 2026-07-29 18:27:13 +02:00

Closed #114 Integer overflow in delta_signature_deserialize allocation 2026-07-29 18:27:13 +02:00

Closed #37 feature: no partial transfer resume or --partial support 2026-07-21 16:10:36 +02:00

Closed #32 security: TLS does not verify server certificate when no CA is provided 2026-07-21 16:10:35 +02:00

Closed #33 enhancement: TCP transport only supports IPv4, no IPv6 support 2026-07-21 16:10:35 +02:00

Closed #34 feature: no symbolic link handling (ignored or broken) 2026-07-21 16:10:35 +02:00

Closed #36 feature: no network timeout handling — operations can hang indefinitely 2026-07-21 16:10:35 +02:00

Closed #40 performance: entire file content loaded into RAM -- no streaming for large files 2026-07-21 16:10:35 +02:00

Closed #48 data_compress() ignores compression_level parameter — always uses zstd default (3) 2026-07-21 16:10:35 +02:00

Closed #53 log_message() format parameter should be const char* 2026-07-21 16:10:35 +02:00

Closed #54 Duplicate file receive logic in delta fallback path in file.c 2026-07-21 16:10:35 +02:00

Closed #57 Exclude/include patterns and size filters not transmitted over wire to server 2026-07-21 16:10:35 +02:00

Closed #58 Return values of chmod() and chown() in file_restore_metadata() are ignored 2026-07-21 16:10:35 +02:00

Closed #59 atoi() used for ssh_port and server_port without error validation 2026-07-21 16:10:35 +02:00

Closed #51 FILE_METADATA_WIRE_SIZE is not portable between 32-bit and 64-bit systems 2026-07-21 16:10:34 +02:00

Closed #52 Add --version flag to both client and server binaries 2026-07-21 16:10:34 +02:00

Closed #55 No unit tests for transport modules (TCP, SSH, TLS) 2026-07-21 16:10:34 +02:00

Closed #56 Scanner exclude/include pattern tests lack edge case coverage 2026-07-21 16:10:34 +02:00

Closed #61 data.h includes <stdlib.h> via quotes instead of angle brackets 2026-07-21 16:10:34 +02:00

Closed #62 No unit tests for the logging module (log.c/log.h) 2026-07-21 16:10:34 +02:00

Closed #63 No dedicated unit tests for multiprocessing module 2026-07-21 16:10:34 +02:00

Closed #66 Global g_server variable in server.c is not thread-safe for signal handling 2026-07-21 16:10:34 +02:00

Closed #67 glob_match() does not support double-star (**) recursive glob patterns 2026-07-21 16:10:34 +02:00

Closed #68 Potential integer overflow in bandwidth throttling timing calculation 2026-07-20 19:34:25 +02:00

Closed #70 TCP connections lack timeout/keepalive configuration 2026-07-20 19:34:25 +02:00

Closed #71 No test coverage for sendfile zero-copy transfer path 2026-07-20 19:34:25 +02:00

Closed #73 send_n_data SSL path does not handle SSL_ERROR_WANT_WRITE properly 2026-07-20 19:34:24 +02:00

Closed #49 chunk_size truncated to int during wire transfer — values > 2GB silently corrupted 2026-07-20 18:44:16 +02:00

Closed #50 mkdir_r() has potential buffer overflow in path construction loop 2026-07-20 18:44:16 +02:00

Closed #60 SSH transport uses fixed-size argv array that may overflow with more options 2026-07-20 18:44:16 +02:00

Closed #64 Scanner stores pointers to exclude/include patterns without ownership 2026-07-20 18:44:16 +02:00

Closed #65 Compression module may truncate decompressed size on 32-bit platforms 2026-07-20 18:44:16 +02:00

Closed #69 send_str() will segfault if passed NULL pointer 2026-07-20 18:44:16 +02:00

Closed #72 receive_str() has no size limit — potential memory exhaustion DoS 2026-07-20 18:44:16 +02:00

Closed #74 data_create_empty with size 0 calls malloc(0) — undefined behavior per C standard 2026-07-20 18:44:16 +02:00

Closed #43 bug: delete_extras_walk unconditionally calls rmdir on directories 2026-07-20 17:51:46 +02:00

Closed #44 quality: server_host and server_port are mutable global variables (not thread-safe) 2026-07-20 17:51:46 +02:00

Closed #45 security: SSH transport uses fixed-size buffers in parse_remote_dest 2026-07-20 17:51:46 +02:00

Closed #46 quality: send_chunk has deeply nested if-else with duplicated file-sending loops 2026-07-20 17:51:46 +02:00

Closed #29 bug: compression_level parameter silently ignored in data_compress() 2026-07-20 17:51:45 +02:00

Closed #30 bug: chunk_size truncated from 64-bit to 32-bit on send and receive 2026-07-20 17:51:45 +02:00

Closed #31 bug: chmod() and chown() return values silently ignored in metadata restore 2026-07-20 17:51:45 +02:00

Closed #35 bug: mkdir_r uses strtok() which is not thread-safe 2026-07-20 17:51:45 +02:00

Closed #38 bug: open_next_directory returns 0 for both empty queue and opendir failure 2026-07-20 17:51:45 +02:00

Closed #41 bug: file_send_sendfile accepts compression_level parameter but ignores it 2026-07-20 17:51:45 +02:00

Closed #42 bug: to_disk uses dirname() which may modify its argument (POSIX undefined) 2026-07-20 17:51:45 +02:00

138 Issues created by 0 users

Opened #29 bug: compression_level parameter silently ignored in data_compress() 2026-07-20 14:57:31 +02:00

Opened #30 bug: chunk_size truncated from 64-bit to 32-bit on send and receive 2026-07-20 14:57:36 +02:00

Opened #31 bug: chmod() and chown() return values silently ignored in metadata restore 2026-07-20 14:57:41 +02:00

Opened #32 security: TLS does not verify server certificate when no CA is provided 2026-07-20 14:57:46 +02:00

Opened #33 enhancement: TCP transport only supports IPv4, no IPv6 support 2026-07-20 14:57:51 +02:00

Opened #34 feature: no symbolic link handling (ignored or broken) 2026-07-20 14:57:57 +02:00

Opened #35 bug: mkdir_r uses strtok() which is not thread-safe 2026-07-20 14:58:02 +02:00

Opened #36 feature: no network timeout handling — operations can hang indefinitely 2026-07-20 14:58:09 +02:00

Opened #37 feature: no partial transfer resume or --partial support 2026-07-20 14:58:20 +02:00

Opened #38 bug: open_next_directory returns 0 for both empty queue and opendir failure 2026-07-20 14:58:26 +02:00

Opened #39 quality: no unit tests for transport modules (TCP, SSH, TLS, Protocol) 2026-07-20 14:58:32 +02:00

Opened #40 performance: entire file content loaded into RAM -- no streaming for large files 2026-07-20 14:58:39 +02:00

Opened #41 bug: file_send_sendfile accepts compression_level parameter but ignores it 2026-07-20 14:58:49 +02:00

Opened #42 bug: to_disk uses dirname() which may modify its argument (POSIX undefined) 2026-07-20 14:58:55 +02:00

Opened #43 bug: delete_extras_walk unconditionally calls rmdir on directories 2026-07-20 14:59:02 +02:00

Opened #44 quality: server_host and server_port are mutable global variables (not thread-safe) 2026-07-20 14:59:07 +02:00

Opened #45 security: SSH transport uses fixed-size buffers in parse_remote_dest 2026-07-20 14:59:14 +02:00

Opened #46 quality: send_chunk has deeply nested if-else with duplicated file-sending loops 2026-07-20 14:59:20 +02:00

Opened #48 data_compress() ignores compression_level parameter — always uses zstd default (3) 2026-07-20 17:12:47 +02:00

Opened #49 chunk_size truncated to int during wire transfer — values > 2GB silently corrupted 2026-07-20 17:12:55 +02:00

Opened #50 mkdir_r() has potential buffer overflow in path construction loop 2026-07-20 17:13:07 +02:00

Opened #51 FILE_METADATA_WIRE_SIZE is not portable between 32-bit and 64-bit systems 2026-07-20 17:14:07 +02:00

Opened #52 Add --version flag to both client and server binaries 2026-07-20 17:14:08 +02:00

Opened #53 log_message() format parameter should be const char* 2026-07-20 17:14:08 +02:00

Opened #54 Duplicate file receive logic in delta fallback path in file.c 2026-07-20 17:14:08 +02:00

Opened #55 No unit tests for transport modules (TCP, SSH, TLS) 2026-07-20 17:14:08 +02:00

Opened #56 Scanner exclude/include pattern tests lack edge case coverage 2026-07-20 17:14:08 +02:00

Opened #57 Exclude/include patterns and size filters not transmitted over wire to server 2026-07-20 17:14:08 +02:00

Opened #58 Return values of chmod() and chown() in file_restore_metadata() are ignored 2026-07-20 17:14:08 +02:00

Opened #59 atoi() used for ssh_port and server_port without error validation 2026-07-20 17:14:08 +02:00

Opened #60 SSH transport uses fixed-size argv array that may overflow with more options 2026-07-20 17:14:08 +02:00

Opened #61 data.h includes <stdlib.h> via quotes instead of angle brackets 2026-07-20 17:14:08 +02:00

Opened #62 No unit tests for the logging module (log.c/log.h) 2026-07-20 17:14:08 +02:00

Opened #63 No dedicated unit tests for multiprocessing module 2026-07-20 17:14:08 +02:00

Opened #64 Scanner stores pointers to exclude/include patterns without ownership 2026-07-20 17:14:08 +02:00

Opened #65 Compression module may truncate decompressed size on 32-bit platforms 2026-07-20 17:14:08 +02:00

Opened #66 Global g_server variable in server.c is not thread-safe for signal handling 2026-07-20 17:14:08 +02:00

Opened #67 glob_match() does not support double-star (**) recursive glob patterns 2026-07-20 17:14:08 +02:00

Opened #68 Potential integer overflow in bandwidth throttling timing calculation 2026-07-20 17:14:08 +02:00

Opened #69 send_str() will segfault if passed NULL pointer 2026-07-20 17:14:37 +02:00

Opened #70 TCP connections lack timeout/keepalive configuration 2026-07-20 17:14:37 +02:00

Opened #71 No test coverage for sendfile zero-copy transfer path 2026-07-20 17:14:37 +02:00

Opened #72 receive_str() has no size limit — potential memory exhaustion DoS 2026-07-20 17:14:37 +02:00

Opened #73 send_n_data SSL path does not handle SSL_ERROR_WANT_WRITE properly 2026-07-20 17:14:37 +02:00

Opened #74 data_create_empty with size 0 calls malloc(0) — undefined behavior per C standard 2026-07-20 17:14:37 +02:00

Opened #95 Missing --timeout / --contimeout CLI flags for connection and I/O timeouts 2026-07-21 16:19:49 +02:00

Opened #96 Missing --quiet / --silent flag to suppress non-error output 2026-07-21 16:19:53 +02:00

Opened #97 Missing --backup / --backup-dir flags for safe destructive operations 2026-07-21 16:19:55 +02:00

Opened #98 Missing --stats flag for transfer statistics summary 2026-07-21 16:19:56 +02:00

Opened #99 Missing --exclude-from / --include-from for pattern files 2026-07-21 16:19:57 +02:00

Opened #100 Missing heartbeat/keep-alive messages in protocol 2026-07-21 16:20:03 +02:00

Opened #101 Missing cancellation/abort mechanism in protocol 2026-07-21 16:20:04 +02:00

Opened #102 Missing atomic file writes on receiver (write-then-rename) 2026-07-21 16:20:06 +02:00

Opened #103 Missing --max-depth directory traversal limit flag 2026-07-21 16:20:08 +02:00

Opened #104 Missing --log-file option for persistent logging 2026-07-21 16:20:12 +02:00

Opened #105 Hardcoded queue capacity 100 should be configurable via --queue-size 2026-07-21 16:20:13 +02:00

Opened #106 Incremental check causes per-file network round-trip -- batch it 2026-07-21 16:20:16 +02:00

Opened #107 Loader thread loads all file data into memory causing high memory usage 2026-07-21 16:20:18 +02:00

Opened #108 Fixed queue capacity 100 may cause pipeline stalls for varied file sizes 2026-07-21 16:20:24 +02:00

Opened #109 Single-threaded BFS scanner is a bottleneck for large directory trees 2026-07-21 16:20:25 +02:00

Opened #110 Static compression level wastes CPU on incompressible files 2026-07-21 16:20:27 +02:00

Opened #111 Bandwidth limiter uses nanosleep causing jitter, and SSL thread-local limits threading 2026-07-21 16:20:30 +02:00

Opened #112 strstr(..) path traversal check is weak and has false positives 2026-07-21 16:20:35 +02:00

Opened #113 No connection limit on server creates fork bomb DoS vector 2026-07-21 16:20:38 +02:00

Opened #114 Integer overflow in delta_signature_deserialize allocation 2026-07-21 16:20:40 +02:00

Opened #115 Fixed 512-byte stack buffer for SSH user@host can truncate silently 2026-07-21 16:20:42 +02:00

Opened #116 No per-message receive timeout allows slow loris / hang DoS 2026-07-21 16:20:47 +02:00

Opened #117 MAX_DATA_SIZE = 1GB allows large memory allocation from network input 2026-07-21 16:20:50 +02:00

Opened #118 TLS client disables certificate verification when no CA is provided 2026-07-21 16:20:52 +02:00

Opened #119 Update README for new features, missing flags, and stale content 2026-07-21 16:22:04 +02:00

Opened #120 Rsync parity: symlink handling flags (--links, --copy-links, --safe-links, --copy-unsafe-links) 2026-07-21 16:23:06 +02:00

Opened #121 Rsync parity: extended metadata preservation (hard links, ACLs, xattrs, devices, sparse files) 2026-07-21 16:23:17 +02:00

Opened #122 Rsync parity: output and logging options (--itemize-changes, --out-format, --info, --debug, --list-only, --files-from, --human-readable) 2026-07-21 16:23:39 +02:00

Opened #123 Rsync parity: update/inplace/append transfer modes 2026-07-21 16:23:57 +02:00

Opened #124 Rsync parity: extended delete options 2026-07-21 16:23:58 +02:00

Opened #125 Rsync parity: advanced file selection (--filter, --files-from, --cvs-exclude, --prune-empty-dirs, --relative) 2026-07-21 16:23:59 +02:00

Opened #126 Rsync parity: remote shell and connection options 2026-07-21 16:23:59 +02:00

Opened #127 Rsync parity: update/inplace/append transfer modes 2026-07-21 16:24:03 +02:00

Opened #128 Rsync parity: extended delete options 2026-07-21 16:24:03 +02:00

Opened #129 Rsync parity: advanced file selection (--filter, --files-from, --cvs-exclude, --prune-empty-dirs, --relative) 2026-07-21 16:24:04 +02:00

Opened #130 Rsync parity: remote shell and connection options 2026-07-21 16:24:05 +02:00

Opened #131 Testing: transport layer has 0% unit test coverage (TCP, TLS, SSH) 2026-07-21 16:26:50 +02:00

Opened #132 Testing: file.c has only 21% coverage — many critical functions untested 2026-07-21 16:26:50 +02:00

Opened #133 Testing: config.c has only 33% coverage — protocol serialization untested 2026-07-21 16:26:50 +02:00

Opened #134 Testing: missing end-to-end integration tests for delta, multiprocessing, and server pipeline 2026-07-21 16:26:50 +02:00

Opened #135 Testing: fuzz targets exist but are never run — no CI integration 2026-07-21 16:26:50 +02:00

Opened #136 Testing: no coverage data for client_cli.c and server.c — CLI and server entry points untested 2026-07-21 16:26:50 +02:00

Opened #137 Testing: multiprocessing.c has only 42% coverage — server thread functions untested 2026-07-21 16:26:50 +02:00

Opened #147 Agents must never merge PRs onto main — use tea CLI instead 2026-07-29 18:12:07 +02:00

Opened #149 Refactor: main() in client_cli.c is a 277-line god function 2026-07-29 18:21:26 +02:00

Opened #150 Refactor: config_create() 11-parameter constructor is unmaintainable 2026-07-29 18:21:33 +02:00

Opened #151 Refactor: send_files() and send_files_multithreaded() share massive code duplication 2026-07-29 18:21:37 +02:00

Opened #152 Bug: Missing NULL-checks and weak input validation in CLI argument parsing 2026-07-29 18:21:43 +02:00

Opened #154 Security: Path traversal allows writes/deletes outside destination root 2026-07-29 18:33:47 +02:00

Opened #156 Security: Unbounded wire sizes enable OOM denial of service 2026-07-29 18:34:28 +02:00

Opened #157 Security: Metadata restoration applies arbitrary mode bits including setuid/setgid 2026-07-29 18:34:58 +02:00

Opened #158 Bug: Server leaks Config in non-multithreaded handler path 2026-07-29 18:34:59 +02:00

Opened #159 Security: zstd decompression may allocate ZSTD_CONTENTSIZE_UNKNOWN bytes 2026-07-29 18:34:59 +02:00

Opened #160 Security: TLS I/O doesn't handle SSL_ERROR_WANT_READ / SSL_ERROR_WANT_WRITE 2026-07-29 18:35:44 +02:00

Opened #161 Security: TLS client lacks hostname verification 2026-07-29 18:35:45 +02:00

Opened #162 Security: --delete follows symlinks and may delete outside destination tree 2026-07-29 18:35:46 +02:00

Opened #163 Bug: --delete manifest sending ignores send_status / send_int / send_str failures 2026-07-29 18:35:47 +02:00

Opened #164 Bug: Transfer functions return -1, causing implementation-defined exit status 2026-07-29 18:35:48 +02:00

Opened #165 Bug/Quality: Protocol layer uses global I/O state; io_ssl is not thread-local 2026-07-29 18:36:29 +02:00

Opened #166 Bug: client_cli.c may free() a string literal for server_host 2026-07-29 18:36:31 +02:00

Opened #167 Bug: Server receive_thread doesn't propagate file_receive / chunk receive errors 2026-07-29 18:36:32 +02:00

Opened #168 Bug/Performance: sendfile() loop treats EAGAIN / EINTR as fatal errors 2026-07-29 18:36:33 +02:00

Opened #169 Bug/Security: chown() failures during metadata restoration are silently ignored 2026-07-29 18:36:34 +02:00

Opened #170 Security: Delta and chunk deserialization don't validate array counts/sizes from network 2026-07-29 18:36:36 +02:00

Opened #174 Feature: Partial/incomplete transfer resumption (--partial, --partial-dir, --inplace) 2026-07-30 18:30:24 +02:00

Opened #175 Feature: Rich filter rules and file lists (--filter, --files-from, --exclude-from) 2026-07-30 18:31:43 +02:00

Opened #176 Feature: Transfer statistics output (--stats) 2026-07-30 18:31:43 +02:00

Opened #177 Feature: Preserve symlinks, hard links, and special files (-l, -H, -D) 2026-07-30 18:31:44 +02:00

Opened #178 Feature: Backup and versioning (--backup, --backup-dir, --suffix) 2026-07-30 18:32:17 +02:00

Opened #179 Feature: Delete policies and ordering (--delete-before, --delete-after, --delete-excluded, --max-delete) 2026-07-30 18:32:17 +02:00

Opened #180 Feature: Connection timeouts, retries, and keepalive 2026-07-30 18:32:18 +02:00

Opened #181 Feature: IPv6 and bind-address support 2026-07-30 18:32:54 +02:00

Opened #182 Feature: Daemon/server mode equivalent to rsyncd 2026-07-30 18:32:55 +02:00

Opened #183 Feature: Checksum-based whole-file comparison (-c, --checksum) 2026-07-30 18:32:55 +02:00

Opened #184 Feature: Compression algorithm negotiation (not just zstd) 2026-07-30 18:33:35 +02:00

Opened #185 Feature: SSH key/agent options and remote shell customization 2026-07-30 18:33:37 +02:00

Opened #186 Feature: Sparse file handling (--sparse) 2026-07-30 18:33:38 +02:00

Opened #187 Security: Unbounded network allocation allows denial-of-service 2026-07-30 18:34:13 +02:00

Opened #188 Security: Path traversal in received file paths 2026-07-30 18:34:14 +02:00

Opened #189 Security: TLS client does not verify server hostname 2026-07-30 18:34:16 +02:00

Opened #190 Security: No connection limits or timeouts enables fork-bomb / slowloris 2026-07-30 18:34:43 +02:00

Opened #191 Security: SUID/SGID bits preserved via metadata can escalate privileges 2026-07-30 18:34:45 +02:00

Opened #192 Security: Scanner follows symlinks and can traverse outside source tree 2026-07-30 18:34:46 +02:00

Opened #193 Bug: --progress output is missing in multithreaded mode 2026-07-30 18:35:02 +02:00

Opened #194 Bug: TCP client only accepts IPv4 addresses, not hostnames 2026-07-30 18:35:03 +02:00

Opened #195 Quality: Replace strcpy/strcat with bounded string functions 2026-07-30 18:35:05 +02:00

Opened #196 Quality: Refactor long sender functions and duplicated dry-run logic 2026-07-30 18:35:07 +02:00

Opened #201 Require server-side authorization for destination and deletion 2026-08-08 20:09:22 +02:00

Opened #202 Harden receiver cancellation, deadlines, and manifest validation 2026-08-08 20:09:22 +02:00

Opened #203 Implement checksum-aware incremental synchronization 2026-08-08 20:09:22 +02:00

Opened #204 Make CI exercise dev and execute meaningful integration/fuzz coverage 2026-08-08 20:09:22 +02:00

Opened #205 Use descriptor-relative no-follow writes for destination confinement 2026-08-08 20:09:33 +02:00

Opened #206 Make parsed receiver and scanner options affect behavior or fail explicitly 2026-08-08 20:09:33 +02:00