Skip to content

v0.6.4

Choose a tag to compare

@mangokingTW mangokingTW released this 09 Sep 04:25
· 8 commits to main since this release
d5cc5a2

Added

  • A discovery wait now says what the process was doing. launch_and_discover
    samples the launched process while its window is awaited -- alive, CPU seconds,
    and every top-level window it owns, hidden ones included -- every 5s
    (wait_for_new(..., watch_pid=, sample_every=)). The samples go to the session
    journal as discovery_wait events and end the timeout message. A process that
    exits before its window appears ends the wait at once with its exit code
    instead of after the whole timeout. When the wait gives up, Windows itself is
    asked what it knows (one PowerShell call): the process's threads and what they
    wait on, whether the PowerShell engine in it reached "Available" (event 400),
    Defender scan events, CAPI2 revocation-check records when that log is on,
    FontCache service starts, Application Hang reports -- and the answer ends the
    message. SessionConfig(etw_trace=True) records a wpr GeneralProfile trace
    for the session and keeps etw_trace.etl when it closes on an exception, for
    WPA's wait analysis. wintegrate.procwatch is the instrument.
    Measured on a hosted arm64 runner: a WPF fixture showed nothing after 90s on
    one launch and came up in 18s on the next, and nothing recorded said whether
    the process had been working, idle, or gone -- this would have. The two WPF
    fixtures in the test suite now launch through it, and wpf_grid_app.ps1
    stamps its phases to stderr.

Changed

  • The report says what happened, not where the code was. In the pytest-html
    row: the frame per step is taken at the end of the step (its result, or the
    moment it failed) rather than its start; the error line is the exception's
    message, not file:line: Type; a failed step shows the message too (the
    journal's step_failed now carries detail); the steps table has a header,
    fixed columns, a video-time column, and events summarised as sentences with
    the raw lines on demand; frames are decoded at 720 px and enlarge in place on
    click (the previous <a href="data:..."> zoom opened nothing: Chromium refuses
    top-frame navigation to data: URLs); rows carrying sessions are marked and
    listed in the summary; the artifact line names the folder in the uploaded
    artifacts instead of a runner-local path.
  • GitHub Step Summary reads like the run. Steps are listed in run order with
    their nesting (they were ordered by completion, child before parent); the
    failure callout is one line and names the step; the error is no longer printed
    twice; the file list is gone; the window-leak warning ignores message-only,
    IME, tooltip and shell windows, which made every passing test look leaky.
    wintegrate.evidence holds the shared shaping so the report and the summary
    cannot disagree.