Skip to content

Generate CLI parity matrix from help output#2134

Merged
oferchen merged 1 commit into
masterfrom
conduct-full-parity-audit-with-rsync-3.4.1
Nov 13, 2025
Merged

Generate CLI parity matrix from help output#2134
oferchen merged 1 commit into
masterfrom
conduct-full-parity-audit-with-rsync-3.4.1

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • replace the parity options document with an automatically generated table derived from rsync --help vs oc-rsync --help
  • regenerate the machine-readable parity-options.yml so tooling shares the same status dataset

Testing

  • not run

Codex Task

@oferchen oferchen merged commit 2b774b8 into master Nov 13, 2025
@oferchen oferchen deleted the conduct-full-parity-audit-with-rsync-3.4.1 branch November 13, 2025 15:44
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/parity-options.md
| --version | -V | --version | general | off | implemented | Available in oc-rsync CLI help output. |
| --help | -h (*) | --help | general | off | implemented | Available in oc-rsync CLI help output. |
| --connect-program=COMMAND | | --connect-program=COMMAND | oc-rsync-only | n/a | divergent | Present in oc-rsync CLI but not listed in upstream rsync --help output. |
| --remote-option=OPTION | -M | --remote-option=OPTION | oc-rsync-only | n/a | divergent | Present in oc-rsync CLI but not listed in upstream rsync --help output. |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Normalize option names before diffing CLI help

The row for --remote-option=OPTION (line 157) claims this flag is “oc-rsync-only”, yet the same file already lists --remote-option=OPT as implemented (line 135) and rsync --help in this repo (rsync --help | rg -- '--remote-option') clearly exposes the option. The generator compared the entire help string (including the argument placeholder) rather than the option name, so any cosmetic difference (OPT vs OPTION, RATE vs RATE[:BURST], FMT vs FORMAT, etc.) creates duplicate entries that simultaneously mark the upstream option as “missing” while adding a divergent oc-only version (see also lines 142↔167 and 138↔183, and the corresponding entries in docs/parity-options.yml). This contradicts the actual CLIs and corrupts the machine-readable dataset automation relies on. Please normalize the option tokens before comparing the two help outputs so shared options aren’t misclassified.

Useful? React with 👍 / 👎.

oferchen added a commit that referenced this pull request May 17, 2026
…ases (#2134) (#4208)

Survey the six state machines in the protocol and daemon negotiation
paths (SessionState, DynamicProtocolState, ProtocolState<P>,
NegotiationPipeline<S>, setup_protocol, handle_legacy_session) with
file:line citations, sketch a DaemonConnection<S> shape for the
legacy handshake, and recommend selective adoption: type-state the
daemon connection lifecycle and the setup_protocol negotiation
prologue, keep the runtime enums as registry/observability mirrors,
and reject for the multi-thread transfer phase.
oferchen added a commit that referenced this pull request May 17, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
oferchen added a commit that referenced this pull request May 18, 2026
…ases (#2134) (#4208)

Survey the six state machines in the protocol and daemon negotiation
paths (SessionState, DynamicProtocolState, ProtocolState<P>,
NegotiationPipeline<S>, setup_protocol, handle_legacy_session) with
file:line citations, sketch a DaemonConnection<S> shape for the
legacy handshake, and recommend selective adoption: type-state the
daemon connection lifecycle and the setup_protocol negotiation
prologue, keep the runtime enums as registry/observability mirrors,
and reject for the multi-thread transfer phase.
oferchen added a commit that referenced this pull request May 18, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
oferchen added a commit that referenced this pull request May 18, 2026
…ases (#2134) (#4208)

Survey the six state machines in the protocol and daemon negotiation
paths (SessionState, DynamicProtocolState, ProtocolState<P>,
NegotiationPipeline<S>, setup_protocol, handle_legacy_session) with
file:line citations, sketch a DaemonConnection<S> shape for the
legacy handshake, and recommend selective adoption: type-state the
daemon connection lifecycle and the setup_protocol negotiation
prologue, keep the runtime enums as registry/observability mirrors,
and reject for the multi-thread transfer phase.
oferchen added a commit that referenced this pull request May 18, 2026
…2136) (#4210)

Reframe the actor-pattern evaluation around supervised tokio tasks
(Erlang/Akka style with bounded mailboxes and a supervisor that
restarts crashed actors) to match the post-async-migration target
the migration plan commits us to.

The recommendation stays: reject the actor reshape for the
production hot path because rsync's wire protocol is sequential
with no resume primitive, so supervisor restart is a no-op; adopt
the actor surface only for multi-host fan-out and fault-injection
tests, behind --features async-pipeline.

Cross-references #4186 (async migration plan), #4196 (spawn_blocking
bridge), #2134 (type-state for protocol phases, recently merged),
and #1935 (async daemon listener).
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