This website requires JavaScript.
eefbd1e849
Merge feat/ref-supermode: SuperMode enum
TapTap
2026-09-12 20:43:42 +02:00
1fd462cca8
refactor(config): replace SUPER_MODE_* macros with SuperMode enum
TapTap
2026-09-12 20:43:24 +02:00
4ac37c4d8a
refactor(dir-times): extract dir_times_should_capture predicate
TapTap
2026-09-12 20:42:47 +02:00
08af945bd6
Merge main back into dev after v2.19.0 release
TapTap
2026-09-12 20:22:54 +02:00
378d881ca7
Merge release/v2.19.0 into main: FastSync v2.19.0
v2.19.0
TapTap
2026-09-12 20:22:50 +02:00
cc27ee1b83
Release v2.19.0
TapTap
2026-09-12 20:22:46 +02:00
d653c3e151
Merge feat/tls-dummy-integration: verified/Local-only transport for daemon auth + persistent dummy key
TapTap
2026-09-12 19:55:28 +02:00
1b90ee2449
fix(review): close loopback TLS auth bypass; align docs and wrong-CN test
TapTap
2026-09-12 19:50:52 +02:00
89b967f29a
Merge feat/dummy-key: persist anti-enumeration dummy key across restarts
TapTap
2026-09-12 19:30:35 +02:00
8f06ae5262
Merge feat/tls-auth: require verified/local transport for daemon auth modules
TapTap
2026-09-12 19:29:35 +02:00
ac3c4c7c72
fix(a7-auth): harden dummy-key temp creation
TapTap
2026-09-12 19:29:23 +02:00
d53614d06b
fix(a7-3/s1): fail closed on non-loopback peers; require plaintext opt-in before challenge
TapTap
2026-09-12 19:18:29 +02:00
f0381a6b8e
fix(a7-auth): publish dummy-key sidecar atomically and harden reads
TapTap
2026-09-12 19:16:11 +02:00
a7a1930e88
fix(a7-3/s1): require TLS or local transport for daemon auth
TapTap
2026-09-12 19:02:05 +02:00
42f01c0968
fix(a7-auth): persist dummy key in owner-only sidecar
TapTap
2026-09-12 18:40:21 +02:00
2489d422e5
Merge feat/a7-integration: SCRAM-SHA-256 daemon auth + lazy protocol debug escaping
TapTap
2026-09-12 18:21:13 +02:00
e2ddc0c07f
Merge feat/hardening-misc: lazy protocol debug escaping, log_debug_enabled
TapTap
2026-09-12 18:08:56 +02:00
1480716304
Merge feat/a7-auth: SCRAM-SHA-256 daemon auth replacing replayable static digest
TapTap
2026-09-12 18:08:56 +02:00
1de1376e54
fix(a7-auth): final hardening pass on SCRAM auth
TapTap
2026-09-12 18:08:46 +02:00
eaf67f6257
fix(a7-auth): address SCRAM auth review findings A-G
TapTap
2026-09-12 17:56:52 +02:00
8c94ec9886
feat(a7): SCRAM-SHA-256 daemon auth to replace replayable digest
TapTap
2026-09-12 17:19:33 +02:00
87585e9881
perf(protocol): skip string debug escaping when proto debug is off
TapTap
2026-09-12 16:54:43 +02:00
1ba6372017
Merge feat/p8-integration: P8 hardening batch (fs/transport, identity/server, CLI quality, fuzz)
TapTap
2026-09-12 15:55:49 +02:00
9f74b21c64
test(p8h): assert a --no-super daemon still refuses client --super
TapTap
2026-09-12 15:55:44 +02:00
108fee1e41
fix(p8h): restore daemon --super refusal, race-free secret-file check, remaining log escapes
TapTap
2026-09-12 15:50:14 +02:00
e1bb2e9233
chore(p8h): reconcile ssh old-args docs, secret-file perms docs; fix test cppcheck
TapTap
2026-09-12 15:33:54 +02:00
81fed86748
Merge branch 'feat/p8h-fuzz' into feat/p8-integration
TapTap
2026-09-12 15:22:00 +02:00
5844648fb2
Merge branch 'feat/p8h-cli' into feat/p8-integration
TapTap
2026-09-12 15:22:00 +02:00
4331bc4a8d
Merge branch 'feat/p8h-core' into feat/p8-integration
TapTap
2026-09-12 15:22:00 +02:00
d97e3982b4
test(fuzz): add config-frame receive and identity parser fuzz targets
TapTap
2026-09-12 15:21:33 +02:00
6d32bc795b
fix(p8h-core): escape log paths, fail closed on identity activation, tidy server gate
TapTap
2026-09-12 15:03:54 +02:00
abad1664ba
security(shared): fix -K TOCTOU, ssh old-args quoting, TLS opts, secret-file perms, sparse dedup
TapTap
2026-09-12 15:01:48 +02:00
7e45891257
refactor(cli): dedupe server/client option parsing and tighten CLI tests
TapTap
2026-09-12 14:54:47 +02:00
b8db810ee5
Merge feat/p8-security: P8 security hardening (daemon ownership opt-in, fake-super gating, no implicit numeric-ids, copy-as fail-fast)
TapTap
2026-09-12 14:33:47 +02:00
ea0a0e2eaf
fix(p8-security): make --copy-as directory ownership airtight; harden tests/logs
TapTap
2026-09-12 14:33:42 +02:00
b216ed31fb
fix(p8-security): close review gaps in the ownership gate and copy-as failure propagation
TapTap
2026-09-12 14:18:03 +02:00
e3840c8326
fix(p8-security): enforce daemon ownership policy, gate fake-super replay, drop implicit numeric-ids, make copy-as failures per-entry
TapTap
2026-09-12 14:00:55 +02:00
58409cee10
test(p7-privilege): skip copy-as refusal test when workspace is not traversable by the unprivileged uid
TapTap
2026-09-12 13:08:22 +02:00
549a23993f
Merge feat/p7-privilege: Phase 7 Wave E (privilege: --super/--no-super + --copy-as safe subset; PROTOCOL 2.18.0; all rsync rows implemented)
TapTap
2026-09-12 12:55:55 +02:00
a5f6899590
docs(p7-privilege): recount Summary to 143/0/4/0/0/0; Wave E shipping note
TapTap
2026-09-12 12:55:47 +02:00
938886829e
fix(p7-privilege): close re-review gaps (implicit dir ownership, daemon --super, write-devices gate)
TapTap
2026-09-12 12:54:45 +02:00
fdc0f238c9
fix(p7-privilege): harden copy-as/super gates, own dirs/specials
TapTap
2026-09-12 12:34:43 +02:00
e6a65d0980
Merge branch 'feat/p7-copy-as' into feat/p7-privilege
TapTap
2026-09-12 12:14:44 +02:00
a785ec13c4
feat(p7-super): implement --super/--no-super safe-subset privilege gate (protocol 2.18.0)
TapTap
2026-09-12 12:01:19 +02:00
80dd64aae6
feat(identity): implement --copy-as USER[:GROUP] safe subset (P7 Wave E)
TapTap
2026-09-12 11:58:37 +02:00
f64d252faf
docs: recount RSYNC_COMPAT to 141/0/4/0/0/2 after Phase 7 Waves B-D; refresh README short-option note
TapTap
2026-09-12 11:30:06 +02:00
003a5e8f2f
Merge feat/p7-times: Phase 7 Wave D (real dir/symlink time preservation making -O/-J meaningful; secluded-args -> Impossible/Divergence; PROTOCOL 2.17.0)
TapTap
2026-09-12 11:22:23 +02:00
9d97e1d3c0
Merge feat/p7-devices: Phase 7 Wave C (device/special statuses; --copy-devices --sendfile non-regular fallback)
TapTap
2026-09-12 11:21:09 +02:00
402e829fef
docs(p7-times): re-review nits (chunked STATUS_DIR_TIMES comment; -M/--metadata -> --preserve; -m sink -> -j/--threads)
TapTap
2026-09-12 11:20:40 +02:00
9749c7878c
fix(p7-times): dir-time entries only record (never create dirs); bound/chunk dir-time frames; harden list add; docs+tests
TapTap
2026-09-12 11:06:05 +02:00
8ca2b74e79
fix(p7-devices): sendfile falls back to buffered read for non-regular sources (--copy-devices no longer hangs); test/doc hardening
TapTap
2026-09-12 11:00:26 +02:00
04514c5b70
Merge feat/p7-output-fs: Phase 7 Wave B (sparse hole preservation, partial retention, fake-super replay, block-size; crtimes/stderr -> Impossible/Divergence)
TapTap
2026-09-12 10:32:03 +02:00
a539d8b2ba
docs(p7-output-fs): align fake-super comments with silent EPERM/EACCES skip (re-review nit)
TapTap
2026-09-12 10:31:56 +02:00
f1a447bb4a
feat(p7-times): real directory/symlink time preservation; -O/-J meaningful
TapTap
2026-09-12 10:31:20 +02:00
227d001092
feat(p7-devices): finalize device/special-file statuses (devices/copy/write -> implemented, specials -> Impossible/Divergence for sockets) + coverage
TapTap
2026-09-12 10:10:21 +02:00
f2ba8211ce
fix(p7-output-fs): address c-review (fake-super mode sanitization HIGH; sparse/preallocate precedence; partial no_replace guard; stronger tests)
TapTap
2026-09-12 09:55:40 +02:00
47de05d215
feat(p7-output-fs): sparse hole preservation (-S), partial retention (-P), fake-super replay; block-size verified; crtimes/stderr -> Impossible/Divergence (Wave B)
TapTap
2026-09-11 15:58:20 +02:00
f34eb34f87
Merge feat/p7-cli-namespace: Phase 7 Wave A CLI-namespace parity (renames colliding short flags to rsync parity)
TapTap
2026-09-11 14:44:58 +02:00
560ed601f9
docs(p7-cli-namespace): sweep remaining -m-as-multithreading refs to -j/--threads
TapTap
2026-09-11 14:37:48 +02:00
d39ddab42c
fix(p7-cli-namespace): address c-review (setfacl -m mangled to --threads; two -s tests lost intent; label/doc sweeps)
TapTap
2026-09-11 14:34:03 +02:00
66e82f9384
feat(p7-cli-namespace): rename colliding short flags to rsync parity (Wave A)
TapTap
2026-09-11 14:20:15 +02:00
15363c0018
docs: add Phase 7 plan (CLI namespace parity, output/filesystem completion, privilege) toward full rsync flag parity
TapTap
2026-09-11 13:47:44 +02:00
c1eac6321c
docs: recount RSYNC_COMPAT to 129/2 after --batch (Wave D); Phase 6 complete
TapTap
2026-09-10 22:07:10 +02:00
f43f236f66
Merge feat/p6-batch: residual batch --write-batch/--only-write-batch/--read-batch
TapTap
2026-09-10 22:06:23 +02:00
fc2d144492
fix(p6-batch): reject clean EOF on record read; add traversal/EOF security tests
TapTap
2026-09-10 22:05:18 +02:00
c026176bb3
feat(p6-batch): residual-batch write/read driver + codec
TapTap
2026-09-10 21:40:07 +02:00
4930127312
feat(p6-batch): CLI/config plumbing for --write-batch/--only-write-batch/--read-batch
TapTap
2026-09-10 21:14:30 +02:00
52f45692b9
docs: recount RSYNC_COMPAT to 126/5 after --protocol (Wave C)
TapTap
2026-09-10 20:45:32 +02:00
40b0870514
Merge feat/p6-protocol: --protocol version-force flag (client-only)
TapTap
2026-09-10 20:44:44 +02:00
5262cc2597
test(p6-protocol): harden validation null-check; cover missing-arg --protocol
TapTap
2026-09-10 20:44:33 +02:00
9fe6d6c748
test(p6-protocol): unit + integration coverage for --protocol
TapTap
2026-09-10 20:36:05 +02:00
2b7bb2d523
feat(p6-protocol): --protocol version-force flag (client-only)
TapTap
2026-09-10 20:36:05 +02:00
bb27b2af50
docs: correct RSYNC_COMPAT selection/update rows to implemented (no code change)
TapTap
2026-09-10 20:16:03 +02:00
a2ac599298
docs: recount RSYNC_COMPAT to 121/10 after Phase 6 waves A-B (--stop-after/--stop-at, --iconv)
TapTap
2026-09-10 18:18:17 +02:00
282aebb7f5
Merge feat/p6-stop: --stop-after/--stop-at deadline stop
TapTap
2026-09-10 18:16:55 +02:00
b2afcf2c65
Merge feat/p6-iconv: --iconv charset conversion + PROTOCOL 2.16.0
TapTap
2026-09-10 18:16:51 +02:00
09a07179c9
fix(p6-stop): init -m scan_stopped_early; gate delete warning; stabilize partial-stop test
TapTap
2026-09-10 18:16:35 +02:00
cac805b661
fix(p6-iconv): prevent convert buffer overflow; validate both directions; reset on error; more tests
TapTap
2026-09-10 17:49:29 +02:00
ac7e9e3bc1
fix(p6-stop): block delete-manifest on early stop; sync -m manifest access; overflow guard
TapTap
2026-09-10 17:39:34 +02:00
7d6665633d
test(p6-iconv): iconv unit, config wire-roundtrip, integration tests
TapTap
2026-09-10 17:13:06 +02:00
6e02a24232
feat(p6-iconv): --iconv charset conversion + PROTOCOL 2.16.0
TapTap
2026-09-10 17:13:01 +02:00
37cff96537
test(p6-stop): unit and integration tests for stop deadlines
TapTap
2026-09-10 16:27:49 +02:00
24d1448246
feat(p6-stop): --stop-after/--stop-at deadline transfer stop
TapTap
2026-09-10 16:27:49 +02:00
6bb63c6f21
docs: recount RSYNC_COMPAT to 118/13 after daemon Wave C (--no-motd + MOTD)
TapTap
2026-09-10 13:59:15 +02:00
61eb08023a
Merge feat/d5-daemon-motd: daemon MOTD display + --no-motd
TapTap
2026-09-10 13:59:07 +02:00
0c35cf2b82
test(d5-daemon-motd): assert no banner when no config key
TapTap
2026-09-10 13:58:21 +02:00
cf5f730940
feat(d5-daemon-motd): daemon MOTD display + --no-motd
TapTap
2026-09-10 13:52:24 +02:00
8330f275a6
docs: recount RSYNC_COMPAT to 117/14 after daemon Wave B auth (--password-file, --early-input)
TapTap
2026-09-10 13:27:39 +02:00
d3c9f1d218
Merge feat/d5-daemon-auth: daemon password auth (--password-file, --early-input)
TapTap
2026-09-10 13:27:27 +02:00
accd34ad60
fix(d5-daemon-auth): address auth review findings (Wave B)
TapTap
2026-09-10 13:20:42 +02:00
dd5ae60459
feat(d5-daemon-auth): password auth, --password-file, --early-input
TapTap
2026-09-10 12:50:56 +02:00
958eddf414
docs: recount RSYNC_COMPAT to 115/16 after daemon Wave A (--daemon/--config/--dparam/--no-detach)
TapTap
2026-09-09 18:40:06 +02:00
8440dbfdb8
Merge feat/d5-daemon-core: daemon lifecycle, module config, ::dest (PROTOCOL 2.15.0)
TapTap
2026-09-09 18:39:37 +02:00
7c55409a6b
fix(d5-daemon-core): cppcheck const-correctness, wire module length cap, daemonize chdir/umask, daemon confinement tests
TapTap
2026-09-09 18:30:52 +02:00
b3d7d64347
feat(d5-daemon-core): daemon lifecycle, module config, ::dest, PROTOCOL 2.15.0
TapTap
2026-09-09 17:48:07 +02:00
9d17e951f1
docs: recount RSYNC_COMPAT to 111/20 after Phase 5 waves A-C; clang-format 18 reflow
TapTap
2026-09-09 14:37:52 +02:00
1e02ebcd32
Merge feat/p5-remote-option: --remote-option, --trust-sender
TapTap
2026-09-09 14:35:26 +02:00
b1c63ff947
Merge feat/p5-socket: --address, -4/-6, --sockopts, server bind options
TapTap
2026-09-09 14:30:36 +02:00
35f4297538
Merge feat/p5-rsh: --rsh/-e, --rsync-path, --blocking-io, --outbuf
TapTap
2026-09-09 14:29:58 +02:00
f86ba7a556
fix(p5-socket): clang-format 18 reflow + cppcheck const-correctness
TapTap
2026-09-09 14:23:59 +02:00