v0.15.1: ARCH-1 step 1 — extract RcloneClient collaborator#42
Merged
Conversation
First incremental step toward the audit's ARCH-1. No user-visible changes. Changed: - New src/RcloneClient.cs owns "invoke rclone, return ProcessResult". Methods: Run(args, timeoutMs), Run with envOverrides, RunWithStdin. Constructor takes Func<string> path provider so it always reads the latest rclonePath value (which mutates over app lifetime). - TrayContext.RunRcloneCapture* wrappers delegate to RcloneInvoker (lazy RcloneClient field). Public API unchanged; existing callers unchanged. New code should take RcloneClient as a dependency. - SEC-1 stdin path uses RcloneInvoker.RunWithStdin instead of reaching into RunCaptureCore. The remaining ARCH-1 sub-extractions (SettingsStore, DependencyProbe, MountManager) are intentionally NOT done here — the audit calls this work incremental and the rest can land as needed. 53/53 tests green, FileVersion 0.15.1.0. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First incremental step toward the audit's ARCH-1 ("`TrayContext` is a ~6 k-line god object"). Pulls all rclone process invocation behind a single `RcloneClient` class so future code can take it as a dependency without dragging in the rest of `TrayContext`.
No user-visible behavior changes — public API unchanged, every existing caller still works.
Changed
The remaining ARCH-1 sub-extractions (`SettingsStore`, `DependencyProbe`, `MountManager`) are intentionally not done here. The audit calls this work "incremental"; the rest can land in later releases as the natural shape of each collaborator emerges.
This closes the last finding from the audit — 17 of 17 audit items resolved or explicitly deferred-by-incremental-design.
Test plan
🤖 Generated with Claude Code