Skip to content

test(cli): temporary Windows diagnostic, do not merge - #888

Closed
blafourcade wants to merge 9 commits into
nextfrom
diag/windows-marketplace-sync
Closed

blafourcade wants to merge 9 commits into
nextfrom
diag/windows-marketplace-sync

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

Jetable. À supprimer dès lecture.

#870 échoue sur Windows de façon reproductible (relance identique). La réécriture des managed settings ne s%s exécute pas là-bas, et aucune simulation locale n%s atteint : aliaser node:path sur win32 casse les helpers du harnais avant le code testé.

Ce commit ajoute un seul cas volontairement rouge qui imprime, depuis le job Windows, ce dont dépendent les assertions en échec : le séparateur, les racines, le chemin de settings résolu, toutes les clés du système de fichiers en mémoire, et ce que rend une lecture par les deux orthographes.

Seul le job cli / Windows compte ici. Le reste est rouge par construction.

blafourcade and others added 9 commits September 15, 2026 19:35
Project cleanup could delete machine-owned plugin files or native refs that another project still uses. Record canonical ownership and refuse uncertain machine cleanup.

Refs #829

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
Codex task environments expose CODEX_THREAD_ID ahead of the simulated Claude anchor. Clear it only in the two Claude-anchored checks so the test reads the intended session.

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
Project install and clean must not take over pre-existing user-scope plugins, native catalogue sources, or foreign host refs. Preserve project claims until local cleanup succeeds, and require current source/ref proof before host mutation.

This is a partial draft candidate: the framework mutation floor remains pending.

Refs #829

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
Prove ownership boundaries and refusal preservation through public behavior rather than weakening the mutation gate.

Framework mutation: 93.5837% against the unchanged 93% floor. Functional suite: 6700 passing tests.

Refs #829

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
Resolve symlink and realpath fault keys consistently on Windows. Check the correct Copilot removal contract when its binary is absent and preserve native refusal witnesses when present.

Reject malformed Codex source listings without inferring absence and retain actionable diagnostics. Mutation floors and production behavior remain unchanged.

Refs #829

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
Resolve only symlink lookup keys, retaining virtual project and target identities. Reproduce the drive-qualified lookup and identity-preservation contracts without changing production code.

Codex mutation consolidation passes at 95.4248% with zero timeouts; 274 focused tests pass. Refs #829

AIDD-Session-Id: 01a080fc-b4fe-78d3-9317-8d5ea071ca46
The three Windows failures were in the assertions, not in the code they
cover. Two cache-warning expectations spelled a path POSIX while the source
builds it with `join`, so they only ever matched on a platform whose
separator is a slash — one `it.each` line, played twice. The neighbour-list
expectation compared `listAll()`, whose keys the in-memory adapter
normalizes to a single spelling by design, against a key built with `join`.

Both sides now use the same builder, so they agree on either platform by
construction rather than by luck. No production behaviour changed and no
refusal assertion was relaxed.

Refs #829

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FPREgkoNtK4PYh2YyZbztq
AIDD-Session-Id: 2261efcd-a873-4e60-9893-2217f702bde2
Not for merge. #870's Windows failures reproduce on rerun, and the managed
settings rebuild never runs there. No local simulation reaches it: aliasing
`node:path` to win32 breaks the test helpers before the code under test.

One deliberately failing case dumps what the failing assertions depend on —
the separator, the roots, the resolved settings path, every in-memory key,
and what a read returns through both spellings — so the CI Windows job
answers what no developer machine can.

Delete this branch once read.

AIDD-Session-Id: 2261efcd-a873-4e60-9893-2217f702bde2
On Windows resolve() prefixes the current drive, so the source writes the
rebuilt settings to D:/project/... while the test seeded and read
/project/... — two different files in the in-memory double. The rebuild was
happening all along; the assertions were looking elsewhere.

Diagnostic removed: the CI Windows job answered it.

Refs #829

AIDD-Session-Id: 2261efcd-a873-4e60-9893-2217f702bde2
@blafourcade

Copy link
Copy Markdown
Contributor Author

Diagnostic lu, question tranchée : sur Windows resolve() préfixe le lecteur courant, donc la source écrivait dans D:/project/.claude/settings.json pendant que le test lisait /project/…. Correctif reporté sur #870 (7c67ad1f). Branche jetable supprimée.

@blafourcade
blafourcade deleted the diag/windows-marketplace-sync branch September 19, 2026 06:17
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