@@ -334,9 +334,23 @@ require(
334334 and 'STALE_CMD="$UPDATE_DRIVER"' in smoke_test,
335335 "POSIX Phase 14 must refresh from positive running-image identity without probing config paths",
336336)
337- require(
338- 'STALE_CMD="$UPDATE_HOME/retired-install/codebase-memory-mcp.exe"' in smoke_test,
339- "Windows Phase 14 must test a literal missing executable, not an ambiguous extensionless command",
337+ # This used to pin the retired path so Windows Phase 14 carried a config entry
338+ # naming a missing executable. Two things retired that intent. The fixture now
339+ # COPIES a binary to the retired path, so it stopped being missing regardless of
340+ # what this string says -- the requirement was only ever checking the string,
341+ # never the property. And Windows update is a handoff to install.ps1 now, so
342+ # nothing rewrites this entry in-process the way the launcher-managed update
343+ # did: an entry naming a foreign path simply survives to uninstall, which
344+ # correctly refuses to remove a config entry owned by a DIFFERENT installation,
345+ # and 14f would then be demanding the one thing uninstall must never do.
346+ #
347+ # The missing-executable classification lives on in named unit tests instead of
348+ # here: cli_editor_mcp_preserves_unrecorded_posix_absolute_entries_without_probe
349+ # and cli_editor_mcp_preserves_unsafe_windows_drive_probe (tests/test_cli.c),
350+ # the latter covering the Windows missing-drive case specifically.
351+ require(
352+ 'STALE_CMD="$UPDATE_HOME/.local/bin/codebase-memory-mcp.exe"' in smoke_test,
353+ "Windows Phase 14 must seed the MCP command at the binary uninstall will own",
340354)
341355for changed_path in (
342356 "install\\.(sh|ps1)",
0 commit comments