Skip to content

feat: live stage elapsed durations, pipeline archive progress and ETA, and multi-hour duration formatting - #11

Closed
eduardomozart wants to merge 3 commits into
Bium23:mainfrom
eduardomozart:bium/porting-duration-hours
Closed

eduardomozart wants to merge 3 commits into
Bium23:mainfrom
eduardomozart:bium/porting-duration-hours

Conversation

@eduardomozart

@eduardomozart eduardomozart commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Formats stage elapsed times taking 1 hour or more (such as Mac shaders) as h:mm:ss (e.g. 4:12:45) instead of overflowing into hundreds of minutes (252:45).
  • Formats live porting ETA estimates exceeding 1 hour in hours and minutes (e.g. Shaders: about 4 hr 13 min or About 4 hr 15 min left).
  • Displays live elapsed duration on the currently running stage row, counting up every second (0 s, 1 s, …, 1:00, …) on stage.elapsedSeconds instead of leaving the row blank until the stage completes.
  • Displays live progress, completed pipeline counts (e.g. 16,468 / 34,815 pipelines), and time-remaining estimates during the Pipeline archive stage without modifying upstream nxnative, and advances the tile percentage smoothly across the stage.
  • Appends stage completion percentages (Z%) to the step counter (X / Y <unit> (Z%)) for Shader split (files), Mac shaders (shaders), and Pipeline archive (pipelines).

Verification

  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter BuildEventParserTests passed (3/3 tests).
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter PortingPresentationTests passed (18/18 tests).
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter PortingProgressTests passed (15/15 tests).
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --filter PipelineArchiveProgressTests passed (5/5 tests).
  • DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test passed (1,135/1,135 tests).
  • bash scripts/build_app.sh built ~/Applications/NXLibrary Dev.app.
  • codesign --verify --deep --strict "$HOME/Applications/NXLibrary Dev.app" passed.
  • python3 scripts/check_publication.py passed.

Stage durations of 1 hour or more in the Porting list now format
as h:mm:ss instead of minutes overflowing into hundreds of minutes
(e.g. 4:12:45 instead of 252:45). Porting ETA estimates of 1 hour
or more format with hours and minutes (e.g. 4 hr 13 min).
Update running stage elapsedSeconds directly on active stages in AppViewModel
via a 1-second timer and engine progress events so active actions count up
live (0 s, 1 s, ..., 1:00, ...) instead of remaining blank until finished.
@eduardomozart eduardomozart changed the title fix: format multi-hour porting stage durations and ETAs fix: format multi-hour porting durations and show live elapsed time on running stages Nov 9, 2026
@eduardomozart eduardomozart changed the title fix: format multi-hour porting durations and show live elapsed time on running stages feat: live stage elapsed durations, pipeline archive progress and ETA, and multi-hour duration formatting Nov 9, 2026
@eduardomozart
eduardomozart force-pushed the bium/porting-duration-hours branch from a96645e to ec2addf Compare November 9, 2026 04:36
@Bium23

Bium23 commented Nov 9, 2026

Copy link
Copy Markdown
Owner

I reviewed the implementation against the current engine and have incorporated the elapsed-time, hour-formatting and counter-percentage work into the local 0.1.4.2 preparation, with credit to @eduardomozart.

I replaced the pipeline progress scanner with a reader of the current build's pso_offline_mac.log. It counts a batch only after the engine reports ready (compiled) or ready (reused), uses actual batch sizes, and does not infer completion from cached keys or temporary compiler files. It also handles parallel-worker messages joined on a line and rejects results from an earlier stage/build after cancellation. The estimate is explicitly for pipeline compilation, not the entire remaining build.

Automated checks include replaying a real log to 34,815 / 34,815 confirmed pipelines. The full local suite passes 1,166 tests; an interactive build/progress check is still pending.

This PR remains open while the adapted hotfix is local. Once the integration commit is available, I will link it here and reconcile this PR with that result rather than merge the original scanner on top of the replacement. No release is published from this work yet.

@Bium23 Bium23 mentioned this pull request Nov 9, 2026
Bium99 pushed a commit that referenced this pull request Nov 9, 2026
Release NX Library 0.1.4.2 with the reviewed upstream 79741184 pin.

Includes session recap and Xcode requirements fixes, disk/keyless error
classification, live elapsed/hour/percentage build feedback, confirmed
pipeline log progress, independent icon source/location, original icon
restoration and missing-art reporting, cancellable Play while signing,
Title DB caching and 120 FPS persistence coverage. Update documentation,
version and release notes; preserve the documented manual-check limits.

PR #13 is retained and PR #11 adapted with co-author attribution to
Eduardo Mozart de Oliveira; their original branches are reconciled after
release rather than reported as merged unchanged.

Co-Authored-By: Eduardo Mozart de Oliveira <2974895+eduardomozart@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Bium23

Bium23 commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Included in NX Library 0.1.4.2 through the release integration PR #14.

The elapsed-time, hour formatting and percentage work is retained with attribution and co-author credit to @eduardomozart. Pipeline tracking uses the reviewed replacement: confirmed ready records from the current engine log, actual batch sizes, reused batches and protection against stale results after cancellation/another stage. Temporary/cache file counts from this PR are not used.

Closing this contribution PR as incorporated in adapted form, rather than merging the original scanner over the replacement. Automated release checks passed; the release record keeps the interactive checks not explicitly reported separate from that evidence.

@Bium23 Bium23 closed this Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants