Repository navigation
fix(cli): expose project transfer progress while awaiting receipt - #1748
Draft
luokerenx4 wants to merge 1 commit into
Draft
luokerenx4 wants to merge 1 commit into
luokerenx4 wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
A text-mode AliceProject transfer prints its plan and then stays silent while files stream. This Draft addresses that observable part of #1284 by exposing the progress the existing SSH transport already produces. It does not claim to resolve the reported Railway throughput problem or implement repeat sync.
flowchart LR subgraph Before A[Review plan] --> B[Existing SSH sender streams files] B --> C[FAIL: CLI ignores progress callbacks] C --> D[Long silence until receipt] end subgraph After E[Review plan] --> F[Same SSH sender and receiver] F --> G[CLI reports bounded file and byte progress] G --> H[Stream sent: wait for verified receipt] H --> I[Existing atomic publication confirms completion] endReuse the transport callback in the text CLI; report file/byte counts, average MiB/s and stream ETA on stderr at most once per second plus the final update. Sent bytes are explicitly distinguished from remote verification/publication. JSON keeps its single result. The sender injection type now reuses the actual transport signature instead of repeating it. No protocol, permission, credentials, planner or publication changes.
The narrow tradeoff is deliberate: these are sender-side estimates, not remote phase telemetry. The TUI already subscribes to this callback. A compression layer or incremental destination replacement should not be designed around an unverified local bottleneck. Current transfer explicitly refuses occupied destinations; repeat synchronization needs an accepted replacement/conflict boundary.
Measurement on current dev, before this change: an isolated 10,000-file / 250 MiB fixture (60% 4 KiB, 36% 48 KiB, 4% 148 KiB, plus product stamp) ran the real planner, bounded stream, receiver verification and atomic publication three times. Every published file was independently SHA-256 checked.
This is local PassThrough transport, not SSH or WAN acceptance. No retained Railway host or live user project was accessed. It does not reproduce the historical 650-second transfer or establish the issue's 90-second target. A fixture-only loopback SSH attempt was also unavailable: OpenSSH rejected public-key authentication because the cloud filesystem root ownership fails StrictModes. A containerized alternative could not start because no image was cached and Docker Hub rejected the image pull at its unauthenticated rate limit. No host permissions or SSH security policy were changed. Neither failure is evidence of an Alice transfer bug.
The next useful measurement needs an authorized remote fixture destination (or a working isolated SSH fixture): time planning separately, compare the same fixture through the actual SSH stream against a raw payload baseline, and retain the verified receipt plus independent destination hashes. Without that comparison, changing compression or file concurrency would be speculative. Representative SSH/WAN measurements remain the blocker to a justified data-plane optimization; compression, TUI throughput/ETA, stable benchmark tooling and unchanged/incremental sync remain unresolved in #1284.
Validation: 52 tests passed across command integration, planner, stream safety and SSH transport. CLI TypeScript check and diff check passed. The new command integration exercises 100 progress callbacks, verifies throttling and rate/ETA, receipt completion ordering, and clean JSON/stdout. Existing checksum failure/retry, source-change rejection, private credential handling and publication tests remain green. Real remote/packaged CLI acceptance was not run; the native payload downloads are unavailable here.