Skip to content

refactor: retire manifest v1-v7, fix daily-loop bugs, guard shared primitives - #20

Merged
specter119 merged 10 commits into
masterfrom
refactor/retire-v1-v7-keep-v8
Oct 19, 2026
Merged

specter119 merged 10 commits into
masterfrom
refactor/retire-v1-v7-keep-v8

Conversation

@specter119

Copy link
Copy Markdown
Owner

Summary

Retires manifest versions 1-7 and keeps the version 8 engine as the only contract, removes the redundant guards and copies that the retirement exposed, fixes three daily-loop bugs, and adds a guard against new duplicate primitives.

  • Retire v1-v7. Removes the old engines, fixtures, and tests (650 -> 223 tests, about 38k lines deleted). Modules, error codes, and classes are renamed by capability instead of by delivery.
  • Remove redundancy. One luwu.sensitivity.is_sensitive_name replaces five disagreeing predicates. Filesystem guards that mutation testing proved redundant are deleted. Three fault-injection tests cover the checks that were not covered.
  • Fix B1. Reverse sync can create an absent optional local layer. A destination layer below the current winner is still rejected.
  • Fix B2. An unsafe symlink or hardlink blocks only its own resource. Manifest loading no longer inspects mutable paths.
  • Fix B4. A baseline recorded for a changed declaration is reported as baseline_stale and recovers with an explicit re-accept.
  • Guard primitives. tests/tooling/test_primitive_ownership.py fails when a module outside the owner calls os.replace, os.open, json.loads, and similar primitives. Ceilings record known debt. The project skill luwu-primitive-reuse (renamed from the first draft) triggers on the author's action. AGENTS.md is unchanged.
  • Docs. Reference, design, status, changelog, maintenance, and README describe version 8 only. The roadmap closes M6/M7 and adds M7a (daily-loop usability), M7b (text templates and symlinks), and M8 (providers on v8).
  • Build. uv.lock stays on public PyPI (a mirror rewrite was committed and then reverted). Hook revisions for ruff and ty are bumped.

Known debt (not in this PR)

manifest.py (7 calls) and engine.py (1 call) still carry their own no-follow directory walks, and baseline.py and formats.py each call json.loads for their own parse. The ownership test caps these. They are listed in docs/status.md. Merging the walks into luwu/filesystem.py is a follow-up.

Validation

  • python -m unittest discover -s tests -t .: 223 tests pass on Python 3.13. The 220-test suite also passed on 3.12 and against the installed wheel before the last additions.
  • prek run --all-files: all hooks pass (ruff, ty, mdformat, uv-lock).
  • uv build, profile_ablation.py, and the benchmark smoke run passed earlier in the branch.
  • Coverage was 83% overall at the last measurement.
  • Not run: a fresh 3.12 and installed-wheel pass after the final test additions.

@specter119
specter119 merged commit 043e143 into master Oct 19, 2026
8 checks passed
@specter119
specter119 deleted the refactor/retire-v1-v7-keep-v8 branch October 19, 2026 03:51
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