Repository navigation
fix(file-lock): preserve diagnostics for invalid UTF-8 holder records - #6762
steven-kid wants to merge 3 commits into
Conversation
Reapply the retained repair from 47e1be3a98d77fd293418f0603e7f3ec3aeea546 to current upstream for local validation. No additional behavior changes. Signed-off-by: Yuchao Wang <stevenkid404@gmail.com>
Signed-off-by: Yuchao Wang <stevenkid404@gmail.com>
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
Signed-off-by: Yuchao Wang <stevenkid404@gmail.com>
|
Resolved the conflict reported in this comment with signed-off merge commit The only conflict was adjacent additions in Validation on this exact merge content:
Full repository tests, local browser journeys and native Windows qualification were not rerun locally. Fresh hosted CI is pending; the previously diagnosed upstream browser failure was not modified or blindly rerun. |
Goal And Delivered Outcome
Damaged UTF-8 in advisory lock-holder records currently makes liveness reads and contended acquisition raise UnicodeDecodeError, masking the typed timeout and recovery guidance. Treat decoding failure as unreadable metadata in the existing shared filesystem reader. Keep valid alternate records, kernel exclusion, incident recording and normal recovery after the actual holder exits.
Source-checked against upstream main
84dfa63c26a6b03a3c5e6039108f1540e8b2b1bb; the failing baseline and unchanged reader are identified below. This is a bounded S10 reliability/diagnostics fix, not broader roadmap completion. No duplicate issue is created for this self-contained defect. Intended target: loopx-project/loopx:main. Draft requested by the contributor.Author Declaration
Written by: model_agent — OpenAI Codex (GPT-6).
Specification: docs/reference/protocols/file-lock-acquisition-v0.md, Holder And Incident Records / Operator Recovery, at
84dfa63c26a6b03a3c5e6039108f1540e8b2b1bb.Scope And Continuation
Complete within the reproduced defect. Retains the existing Python OS/filesystem adapter; no parallel domain decision owner, new capability, state vocabulary or public API shape. Both consumers already share one reader, so no additional refactor is warranted. The existing protocol and repair-pattern catalog capture the same failure/recovery contract. No independent successor needed for this repair.
Validation
Tested revision:
8d956fd08ffdaef3838985c1b3abbfeeb8a90319(same source content tested before the local commit). Run state: finished. Input classes: synthetic, public_fixture.python -m pytest -q tests/test_file_lock.py -k invalid_utf8 --tb=shorton baseline 73aa2bc: 5 new cases fail with UnicodeDecodeError; production reader and regression source are unchanged at this PR base; all pass on the candidatepython -m pytest -q -rs tests/test_file_lock.py tests/test_file_lock_cross_process.py tests/test_collaboration_mcp.py tests/test_repair_pattern_lookup.py: 45 passed, 2 skipped in 16.36s; disposable Linux kernel locks, competing subprocess, incident/recovery and stdio collaborationpython -m ruff check loopx/file_lock.py tests/test_file_lock.py;git diff --checkpython scripts/check_rfc_bilingual.py --base 84dfa63c26a6b03a3c5e6039108f1540e8b2b1bb --staged: no RFC pair changedPython 3.12.14, pytest 9.1.1, MCP 1.30.0, Node 24.19.0. Current checkout test dependencies and npm lockfile installed. No live user data or provider accounts used.
Frontend / Visual Evidence
UI impact: none. Existing timeout envelope and operator action preserved; no frontend/Lark/CLI command shape change. Visual evidence and shared-authority RFC fixture promotion: not applicable.
Type of Change
Boundary Checklist