Skip to content

fix(cli): expose project transfer progress while awaiting receipt - #1748

Draft
luokerenx4 wants to merge 1 commit into
devfrom
codex/1284-transfer-measurement
Draft

luokerenx4 wants to merge 1 commit into
devfrom
codex/1284-transfer-measurement

Conversation

@luokerenx4

@luokerenx4 luokerenx4 commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

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]
  end
Loading

Reuse 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.

Run Planning Stream + verify + publish Total
1 1.606 s 2.839 s 4.445 s
2 1.612 s 2.863 s 4.475 s
3 1.654 s 2.690 s 4.344 s

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.

@luokerenx4 luokerenx4 added workflow:parallel Autonomous parallel contribution; leave open for later acceptance theme:reliability Failure recovery, retries, loading, or resilience area:devtools Developer tools, logs, or diagnostic surfaces labels Oct 2, 2026
@vercel

vercel Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
openalice-demo Ready Ready Preview Oct 2, 2026 10:27am UTC

Request Review

@luokerenx4 luokerenx4 added theme:reliability Failure recovery, retries, loading, or resilience area:devtools Developer tools, logs, or diagnostic surfaces labels Oct 2, 2026

This branch was successfully deployed

1 active deployment
Preview — c026e58c Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:devtools Developer tools, logs, or diagnostic surfaces theme:reliability Failure recovery, retries, loading, or resilience workflow:parallel Autonomous parallel contribution; leave open for later acceptance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants