Conversation
…how it ended (BE-16046) Nothing measured an upload before this, in the CLI or the portal. One build:push_upload event per push that had something to upload: count, bytes, seconds, outcome, and on success how many were sent against how many the builder already held. No filename; a private model's name is the customer's.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 4 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthrough
ChangesPush upload tracking
Suggested reviewers: Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to This change adds upload telemetry while preserving push success and failure behavior. Focused tests cover the reported outcomes, so it is mergeable with normal checks. 🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
wei-hai
left a comment
There was a problem hiding this comment.
Reviewed upload success/error reporting, dedup counts, and omission of private filenames. No blocking findings. All three new event tests pass locally on Python 3.10.
The GPU CI job remains red: its log shows the two uv-compile conflict-message tests failing, the same failures across these four PRs in code outside these changes. Other reported checks pass. I did not rerun GPU E2E or live analytics/provider operations.
james00012
left a comment
There was a problem hiding this comment.
Approving. Reads as: a push sends one event with its upload count, bytes, seconds and outcome. Head eb0199c, judged as comfy-cli's owner.
Optional
- Correctness: the derived upload rate is inflated whenever the builder already held a file
comfy_cli/command/build.py:2143. The bytes count skipped files too; return the bytes actually sent. - Contract: a person pressing Ctrl-C counts as a failed upload
comfy_cli/command/build.py:2006. The portal half, platform#1107, reports cancelled separately, so the two halves disagree. - Tests: the event can be unhooked from the push with every test green
tests/comfy_cli/command/test_build_push_event.py:27. One push with a failing upload would prove the promised failure path. - Modularity: the upload counts are computed in three places
comfy_cli/command/build.py:2138. The event and the JSON output will drift. - Verbosity: two comments record history
comfy_cli/command/build.py:2132. The line that nothing measured uploads before goes stale on merge.
Clean: Scope, Resilience, Access, Reachability, Rollout.
Native review: 8 findings, folded into the list above.
Checked: removing both calls from the push left 636 build tests green; a real push sent the same counts as its JSON output.
Bots: the automated review missed the rate and the cancel.
Swarmhost agentic reviewAn internal review is in progress. Detailed evaluations are not published on public repositories. Updated by Swarmhost's agentic review process. |
Description
TL;DR:
comfy build pushreports how much it uploaded, how long that took and how it ended, as onebuild:push_uploadevent.Why: nothing measured an upload before this, in the CLI or the portal: not size, not seconds, not how it ended. The push already computes every number but the time (
upload_count,upload_bytes,uploaded,dedupedare in its--jsonpayload today).Before / After: after the uploads, one event with
upload_count,upload_bytes,seconds,outcome, and on successuploadedanddeduped(After). On a push that dies mid-upload the event still goes out withoutcome: errorand no guessed split. A push with nothing to upload sends nothing. No filename, ever: a private model's name is the customer's. Today: nothing (Before).Rate is not sent; it is
upload_bytes / seconds.Part of BE-16046, whose portal half is https://github.com/Comfy-Org/platform/pull/1107.
How has this been tested?
pytest: 7858 passed (7861 on the tracker branch), 2 failed, 38 skipped. Both failures are not from this change:test_node_deps.py::test_non_pep440_installed_version_is_unknown_not_a_crashandtest_http.py::test_an_unloadable_supplement_falls_through_to_the_platform_rootsfail identically on an unmodifiedmaincheckout in a fresh environment (Python 3.12; CI targets 3.10).ruff checkandruff format --checkclean. The "Test CLI Tool on GPU runners" job fails on every PR in this repo today (10 of the last 10 runs, five authors) ontests/e2e/test_e2e_uv_compile.py, which this does not touch.Three new tests on the event: a finished push, a push that died mid-upload, a push with nothing to upload.
Not run: against real PostHog.
Documentation
Screenshots or screen capture
n/a