2026-07-14 - 2026-08-14

Overview

52 Active Pull Requests
138 Active Issues
Excluding merges, 1 author has pushed 3 commits to dev and 247 commits to all branches. On dev, 6 files have changed and there have been 273 additions and 222 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