Skip to content

Verify Windows daemon mutation acceptance and restart persistence against a real graphcoded process - #507

Merged
coneilen merged 2 commits into
mainfrom
coneilen-microsoft-daemon-persistence-acceptance
Sep 29, 2026
Merged

coneilen merged 2 commits into
mainfrom
coneilen-microsoft-daemon-persistence-acceptance

Conversation

@coneilen

Copy link
Copy Markdown
Collaborator

Summary

Add headless Windows evidence that production DaemonClient mutations reach a real graphcoded.exe, are accepted, and survive daemon restart. This closes the daemon acceptance/persistence residual for five parity rows; all five remain Partial.

Changes

  • Add a real-process harness using a unique named pipe and disposable support directory; verify correlated V2 graphChanged replies, persisted graph readback, clean restarts, and the production-derived lifetime mutex.
  • Exercise production node create/update/rename, edge create/edit, and sketch-promotion senders; retain edge identity/configuration and node identity across reload.
  • Register the Zig helper test with a positive executed-test-count assertion and update only the five owned rows in the current-main parity ledger.

Test plan

RED: Existing unstarted-client queue tests -> they proved command construction and queueing only; with no real-daemon round-trip, daemon acceptance and save/reload could not be asserted.
GREEN: Tools\windows\Tests\DaemonRoundTrip.Live.Tests.ps1 -> REAL_DAEMON_ROUNDTRIP: PASS; correlated replies confirmed mutation acceptance and a fresh daemon process read back persisted identities/configuration.
REGRESSION: Pinned Zig helper filter -> All 1 tests passed; PowerShell parser checks -> both test scripts parsed successfully; git diff --check origin/main...HEAD -> exit 0.

The live harness also observed the production-derived Global\graphcode-daemon-… mutex while each real daemon was running and ERROR_FILE_NOT_FOUND after clean shutdown. It used isolated support state and left the default support tree unchanged. No foreground/UIA, modal, keyboard, app-launch, or native-input evidence is established. The session-ID marker was synthetic, so this verifies mapping-file preservation, not a live backend session. The five ledger rows remain Partial for those missing UI and platform-runtime proofs. The Windows workflow is expected to run because this PR adds a Zig test root and changes Tools/windows/Tests; full make test and make check were not run locally.

Checklist

  • I have read the Contributing Guidelines
  • I have signed off my commits per the DCO
  • Tests pass locally (make test)
  • Code follows the existing style (make check)
  • I added the test/contract before the implementation and observed the intended behavioral RED failure

coneilen and others added 2 commits September 28, 2026 20:09
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen force-pushed the coneilen-microsoft-daemon-persistence-acceptance branch from 6550e43 to c072128 Compare September 29, 2026 03:09
@coneilen
coneilen merged commit b802e7f into main Sep 29, 2026
18 of 19 checks passed
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.

1 participant