Skip to content

Correct the Dev Box Stop qualification contract - #637

Merged
coneilen merged 1 commit into
mainfrom
coneilen-attachment-task
Oct 6, 2026
Merged

coneilen merged 1 commit into
mainfrom
coneilen-attachment-task

Conversation

@coneilen

@coneilen coneilen commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

The beta9 Dev Box run failed section 6A because the runbook required Stop loop
to end the loop's zmx session. Stop is the reversible verb. For a reachable
session, GraphStore.requestStop types MessageBus.stopRequest into it — a
request that tells the agent to stay in the session — and kills the session only
when it cannot be reached. This PR replaces that expectation with the contract
the product actually implements, and makes the daemon's memory-log claim the
thing that is checked.

Changes

  • investigation/windows-preview-devbox-qualification-plan.md: add a Stop
    contract
    under D7.
    • Stop passes when the loop reaches stopped, no other loop changes state,
      owned sentinel sessions (one unprefixed and one graphcode- decoy) keep
      their PIDs and receive no input, and the shell and daemon stay responsive.
    • The loop's memory-log entry must match what is observed: "asked to stop
      looping" means the session survives and shows the request; "could not be
      reached, so it was killed" means the session is gone within 15 s.
    • A log that claims a kill while the session survives is a
      TerminalSessionOwnership failure. That is the beta9 result, caused by the
      packaged daemon not locating zmx, which is a separate product fix.
  • investigation/windows-preview-release-plan.md: note that the beta9
    prompt's "Stop must end the session" step is superseded by this contract.

The immutable beta9 handoff copy of the plan is unchanged; the next handoff
should ship this version. The plan file keeps its existing CRLF line endings, so
git diff --check reports CR on its added lines by convention; the release
plan is clean.

Test plan

Documentation only; no product code or test changed. Evidence is a check that
the contract is absent on the base and present on this branch, plus a link check.

RED: git show origin/main:investigation/windows-preview-devbox-qualification-plan.md, Select-String for the Stop contract heading and the asked-to-stop-looping path -> 0 matching lines
GREEN: same Select-String against HEAD -> 2 matching lines
REGRESSION: Select-String for the stop-contract anchor heading plus git diff --check on investigation/windows-preview-release-plan.md -> 1 heading, exit 0

The underlying behaviour was observed on the beta9 Dev Box:

  • shipped layout: the memory log said the session was killed, yet it survived
    with the same PID;
  • with zmx reachable (diagnostic): the log said the session was asked to stop
    looping, and it survived as designed.

make test and make check were not run; nothing they cover changed.

Checklist

  • I have read the Contributing Guidelines
  • I have signed off my commits (git commit -s) per the DCO
  • Tests pass locally (make test) — not run: documentation-only change, macOS-only target
  • Code follows the existing style (make check) — not run: no Swift changed
  • I added the test/contract before the implementation and observed the intended RED failure — the RED line above is a base-revision check, not a test written first

Stop is reversible: a reachable loop session receives the daemon's stop request and stays alive, and only an unreachable session is killed. Require the memory-log path to match the observed session state, protect owned sentinel sessions, and stop requiring a reachable session to end.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen merged commit 197b59d into main Oct 6, 2026
22 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