Skip to content

fix: integrate reviewed PRs and repair restart and queue handling - #57

Merged
JamesLinYJ merged 32 commits into
mainfrom
codex/merge-prs-20261109
Nov 9, 2026
Merged

JamesLinYJ merged 32 commits into
mainfrom
codex/merge-prs-20261109

Conversation

@JamesLinYJ

@JamesLinYJ JamesLinYJ commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Integrates #42, #44, #45, #46, #47, #48, #49, #50, #51, #52, #53, #54, #55, and #56 while preserving their commit ancestry.

Fixes five remaining review findings:

  • Service restart follows checkpoint/state progress rather than sleeping once for the initial wait hint. Stalled progress and the overall wait have bounded deadlines.
  • A pre-stop Running state cannot count as a successful restart; START is reached only after STOPPED.
  • Restart polling observes cancellation and service worker teardown does not join on the UI thread.
  • Startup teardown closes UI notifications, retains accepted/current/pending writes, and drains them after UI teardown but before diagnostics shutdown and process exit.
  • Every confirmed session message stays queued, including deliberate repeated messages. Duplicate disconnect/logoff commands remain coalesced.

Validation of head 0788278:

  • Combined CI passed all three jobs: formatting/whitespace, all-target checks, strict Clippy, resource tests, and release builds for x64, x86, and ARM64. x64 passed 439 Rust tests; x86 passed 438. Four pre-existing environment-dependent tests remain ignored per target. All three build-script failure-handling tests passed.
  • Native ARM64 execution on Windows build 10.0.29698.0, Rust 1.99.0: targeted service, startup, queue, messaging, and affinity regressions passed, followed by all 439 Rust tests (four pre-existing ignores). Extracted sources were checked against SHA-256 hashes of every tracked file.
  • No production services or user sessions were modified. No new hands-on GUI, physical GPU, or multi-processor-group hardware acceptance is claimed.

Merge with a merge commit to retain the original PR heads and mark the integrated PRs merged.

cursoragent and others added 30 commits November 3, 2026 04:43
EndTask can block in the target window's queue. Submit the selected
window identities and the Ctrl force flag to a persistent single-flight
worker, re-check the window before the call, and report only the first
real failure on the existing completion path.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
Append the already sampled counter strings to the networking list after IPv4.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
Restart runs on the existing SCM worker. It stops the service, waits
once within the published status hint, and starts only after the
service is stopped. A failed stop or a failed start is reported and
is not treated as success.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A second End Task click while one is running was merged with replace_pending,
so the earlier selection never ran. Append each accepted command and run the
queue in order, still re-checking the window before every EndTask.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
Accepted startup toggles stay in order while the worker is busy. A later
refresh no longer replaces that queue, and a toggle is not dropped when a
refresh is already pending. Each command re-checks the stored entry identity
immediately before the registry or startup-folder write.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
The panic hook flushes diagnostics and captures a backtrace before the
collector can publish the failure. Poll for 30 seconds so that report
and the reinitialized follow-up can arrive.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A zero physical memory limit is a missing measurement, not an empty
machine. Leave the previous memory history point in place, label the
meter with the existing Not Available text, and still record a later
real 0% sample when the limit is known.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A missing or zero dedicated or shared limit is not measured 0% usage.
Leave the previous history point, and still record a real zero once a
non-zero limit is available.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
An accepted CPU sample cleared the stale flag before the usage delta was
checked. When that delta is invalid and a previous percent exists, keep
the percent, skip history, and report the page stale until a later valid
sample, including a real 0%, replaces it.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A zero query interval now stores the current counters and stays NoRate,
so bytes that moved while the clock was frozen are not counted on the
next real interval.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
Drop a later Users-page command when the same kind and session identities
are already pending. A different session, kind, or logon time stays queued,
and a coalesced refresh still does not erase those actions.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A second logoff or disconnect can become the first pending request
without passing through merge. Remember commands still outstanding and
do not submit the same kind and session identities again until that
work finishes.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
Exercise a full group of usize::BITS processors and an active count
of usize::BITS + 1 on every pointer width. Masks shift only when the
bit index is below usize::BITS, and a wider group returns
OutOfRangeAffinityMask.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
The affinity dialog stays on the UI thread. After confirmation, the
process identity and selected group masks are queued on the existing
process-action worker. That worker re-opens the target with
open_process_for_identity before SetProcessAffinityMask or
SetProcessDefaultCpuSets. An unknown identity, a mask that does not fit
the native KAFFINITY, or a group that cannot be expressed fails without
writing a truncated mask. A later failure is not reported as success.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A missing or zero interval set valid before the elapsed check, and a failed
detail counter returned before that check ran. Leave valid false, report
InvalidElapsedTime, and do not publish processor percents from that interval.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
A successful NtQuerySystemInformation result with a zero returned length is not a sample. Return an error and drop the default-zero counters instead of treating them as idle time.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
IsWow64Process2 reports IMAGE_FILE_MACHINE_UNKNOWN for every non-WOW64
process. Without a reported machine, return an error on every host
instead of labeling that unknown process native.

Co-authored-by: jameslincn <jameslincn@outlook.sg>
@JamesLinYJ
JamesLinYJ marked this pull request as ready for review November 9, 2026 01:44
@JamesLinYJ
JamesLinYJ merged commit 7003888 into main Nov 9, 2026
3 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T01:45:50.443910Z 0788278 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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