Repository navigation
test(architecture): pin UTF-8 fixture I/O and tolerate unprivileged symlinks - #6234
Open
JasonBuildAI wants to merge 1 commit into
Open
JasonBuildAI wants to merge 1 commit into
JasonBuildAI wants to merge 1 commit into
Conversation
…ymlinks tests/architecture reports 12 host-dependent failures on a native Windows checkout whose ANSI code page is not UTF-8 and where symlink creation is not permitted (no Developer Mode / elevation); none of them reaches the assertion it exists to check (loopx-project#6233): - test_semantic_production.py: read vocabulary_v0.json as UTF-8 - test_contributor_task_board.py: read/write the copied RFC as UTF-8 - test_rfc_status_index.py: write fixture RFC headers as UTF-8, matching the generator under test which already reads UTF-8 - test_semantic_inventory.py: skip the tracked-symlink fixture only when the host cannot create symlinks, matching the existing house pattern Evidence on upstream main 43643a5, Windows / cp936 / Python 3.12: before: 12 failed, 1421 passed; after: 1432 passed, 1 skipped (symlink test skipped on this host; still runs on CI). UTF-8 mode run of the affected files: 90 passed, 1 skipped. ruff check: clean. Signed-off-by: JasonBuildAI <jasonbuildai@gmail.com>
JasonBuildAI
requested review from
huangruiteng and
loopx-agent
as code owners
October 11, 2026 11:02
JasonBuildAI
added a commit
to JasonBuildAI/loopx
that referenced
this pull request
Oct 11, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal And Delivered Outcome
Native Windows contributors whose ANSI code page is not UTF-8 (e.g. zh-CN/cp936) and who cannot create symlinks get 12 red
tests/architecturechecks that fail before reaching any assertion, so the vocabulary-drift and RFC-governance guards cannot be trusted as a local pre-push signal on a supported platform; after this PR the same suite is green on such a host with no behavior change on UTF-8 hosts or CI.43643a5e5,pytest tests/architectureon a cp936, symlink-unprivileged Windows checkout reports12 failed, 1421 passed; 11 failures are host-codecUnicodeDecodeErrors in fixture text I/O and 1 isWinError 1314from a directsymlink_toin a fixture.12 failed, 1421 passed→1432 passed, 1 skipped(Validationunitandregression_parityrows).main(upstream43643a5e5).Author Declaration
Implemented against
43643a5e5) is the basis.tests/architecturepasses on native Windows with cp936 locale and no symlink privilegetests/architecture/test_semantic_production.py,tests/architecture/test_contributor_task_board.py,tests/architecture/test_rfc_status_index.py,tests/architecture/test_semantic_inventory.pyuv run --extra test python -m pytest tests/architecture -q->1432 passed, 1 skippedtest_semantic_inventory.py::test_tracked_symlink_cannot_read_untracked_sourceOSErrorfromsymlink_to; unchanged body runs on ubuntu CIgit apply -R, reverted after capture), ran the four files underPYTHONUTF8=1to simulate a UTF-8 host, and ranruff checkon the changed files. Did not touch product code, dependencies, or unrelated tests.Scope And Continuation
tests/architecture; other suites were not swept for the same host-codec pattern and no failure was observed outside this directory.Validation
unitpasseduv run --extra test python -m pytest tests/architecture -qon Windows/cp936, Python 3.12: before12 failed, 1421 passed; after1432 passed, 1 skipped.regression_paritypassedgit apply -R) vs fixed head;PYTHONUTF8=1run of the four affected files:90 passed, 1 skipped, i.e. UTF-8 hosts see no behavior change.staticpasseduv run --extra test python -m ruff checkover the four changed files ->All checks passed!integrationnot_runpython-testsworkflow.Frontend / Visual Evidence
Type of Change
LoopX Area
Technical Direction
Shared-authority RFC fixture impact
N/A
Boundary Checklist
.loopx/,.codex/goals/, and liveACTIVE_GOAL_STATE.md).none.Signed-off-bytrailer (git commit -s).