Skip to content

Expose daemon wrapper metadata to wrappers#2089

Merged
oferchen merged 1 commit into
masterfrom
implement-oc-rsync-branding-and-functionality-standards
Nov 8, 2025
Merged

Expose daemon wrapper metadata to wrappers#2089
oferchen merged 1 commit into
masterfrom
implement-oc-rsync-branding-and-functionality-standards

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented Nov 8, 2025

Summary

  • extend the branding profile and manifest to surface optional daemon wrapper names directly from the workspace metadata
  • expose a Brand::daemon_wrapper_program_name accessor and include wrapper aliases in BrandSummary
  • ensure the oc-rsyncd/rsyncd entrypoints rely on the branded wrapper name when synthesising daemon invocations

Testing

  • cargo test --package oc-rsync-core --lib

Codex Task

@oferchen oferchen merged commit 1c6e9d8 into master Nov 8, 2025
@oferchen oferchen deleted the implement-oc-rsync-branding-and-functionality-standards branch November 8, 2025 21:20
oferchen added a commit that referenced this pull request May 15, 2026
Adds INC_RECURSE diagnostic counter I1 (#2196): the elapsed time from
send_file_list() entry to the first wire byte the receiver can observe.

A lightweight FirstByteWriter wraps the wire writer for the duration of
send_file_list. It samples Instant::now() once on the first non-empty
write and records the elapsed Duration. Per-entry overhead is one
already-set Option check; there is no per-entry sampling.

The latency is exposed through:

- TransferTiming.flist_first_byte_latency (internal field)
- GeneratorStats.flist_first_byte_latency (public API)
- info_log!(Flist, 1, ...) and info_log!(Stats, 3, ...) for human output
- debug_log!(Flist, 2, ...) with entry count context
- tracing::info!(target = "rsync::flist", ...) when the tracing feature
  is enabled

Two unit tests cover the populated-list and empty-list paths and assert
that the recorded Duration is Some and non-zero.

upstream: flist.c send_file_list / send_dir_name first-byte timing

Refs #2089
oferchen added a commit that referenced this pull request May 17, 2026
Audit the sender-side INC_RECURSE capability gate, document the
current disable mechanism, summarise the perf instrumentation that
landed under tasks #2196-#2200, cross-reference the SSH and daemon
push perf verification from #2209, and lay out the re-enable
criteria for the eventual flip of inc_recursive_send from false to
true.

Recommendation: defer the flip until a 1M-file Mode C push profile
run publishes I1-I5 totals alongside hyperfine wall-clock, and the
gating criteria from docs/investigations/inc-recurse-sender-regression.md
section 5 are met on two consecutive nightly runs.

Includes a five-step plan for the eventual flip PR; the flip itself
is out of scope here.
oferchen added a commit that referenced this pull request May 18, 2026
Adds INC_RECURSE diagnostic counter I1 (#2196): the elapsed time from
send_file_list() entry to the first wire byte the receiver can observe.

A lightweight FirstByteWriter wraps the wire writer for the duration of
send_file_list. It samples Instant::now() once on the first non-empty
write and records the elapsed Duration. Per-entry overhead is one
already-set Option check; there is no per-entry sampling.

The latency is exposed through:

- TransferTiming.flist_first_byte_latency (internal field)
- GeneratorStats.flist_first_byte_latency (public API)
- info_log!(Flist, 1, ...) and info_log!(Stats, 3, ...) for human output
- debug_log!(Flist, 2, ...) with entry count context
- tracing::info!(target = "rsync::flist", ...) when the tracing feature
  is enabled

Two unit tests cover the populated-list and empty-list paths and assert
that the recorded Duration is Some and non-zero.

upstream: flist.c send_file_list / send_dir_name first-byte timing

Refs #2089
oferchen added a commit that referenced this pull request May 18, 2026
Audit the sender-side INC_RECURSE capability gate, document the
current disable mechanism, summarise the perf instrumentation that
landed under tasks #2196-#2200, cross-reference the SSH and daemon
push perf verification from #2209, and lay out the re-enable
criteria for the eventual flip of inc_recursive_send from false to
true.

Recommendation: defer the flip until a 1M-file Mode C push profile
run publishes I1-I5 totals alongside hyperfine wall-clock, and the
gating criteria from docs/investigations/inc-recurse-sender-regression.md
section 5 are met on two consecutive nightly runs.

Includes a five-step plan for the eventual flip PR; the flip itself
is out of scope here.
oferchen added a commit that referenced this pull request May 18, 2026
Adds INC_RECURSE diagnostic counter I1 (#2196): the elapsed time from
send_file_list() entry to the first wire byte the receiver can observe.

A lightweight FirstByteWriter wraps the wire writer for the duration of
send_file_list. It samples Instant::now() once on the first non-empty
write and records the elapsed Duration. Per-entry overhead is one
already-set Option check; there is no per-entry sampling.

The latency is exposed through:

- TransferTiming.flist_first_byte_latency (internal field)
- GeneratorStats.flist_first_byte_latency (public API)
- info_log!(Flist, 1, ...) and info_log!(Stats, 3, ...) for human output
- debug_log!(Flist, 2, ...) with entry count context
- tracing::info!(target = "rsync::flist", ...) when the tracing feature
  is enabled

Two unit tests cover the populated-list and empty-list paths and assert
that the recorded Duration is Some and non-zero.

upstream: flist.c send_file_list / send_dir_name first-byte timing

Refs #2089
oferchen added a commit that referenced this pull request May 18, 2026
Audit the sender-side INC_RECURSE capability gate, document the
current disable mechanism, summarise the perf instrumentation that
landed under tasks #2196-#2200, cross-reference the SSH and daemon
push perf verification from #2209, and lay out the re-enable
criteria for the eventual flip of inc_recursive_send from false to
true.

Recommendation: defer the flip until a 1M-file Mode C push profile
run publishes I1-I5 totals alongside hyperfine wall-clock, and the
gating criteria from docs/investigations/inc-recurse-sender-regression.md
section 5 are met on two consecutive nightly runs.

Includes a five-step plan for the eventual flip PR; the flip itself
is out of scope here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant