Conversation
Deicyde
left a comment
There was a problem hiding this comment.
Review result: changes needed.
project/create.py:119-157never revalidates that the requested parent pathname still names the opened directory. A reproduced concurrent rename madeproject newreturn success while the project appeared under the moved parent and the requested target remained absent.- The sticky-directory check trusts any sticky parent from a pre-open stat. A directory owner can still rename another user's entry; validate ownership and mode on the bound descriptor.
- Target names permit C0/C1 terminal controls and print them raw.
- An unpaired surrogate in the target path escapes the structured error contract as
UnicodeEncodeError. - The command requires POSIX dir-fd,
flock, and platform-specific atomic rename support, but the quick start does not disclose that Windows is unsupported.
Revalidate parent identity through a fresh no-follow traversal before publication and after fsync. If identity is lost after rename, report an uncertain commit rather than success.
3256182 to
97f46d6
Compare
Deicyde
left a comment
There was a problem hiding this comment.
Re-reviewed current head 97f46d6. It has the same parent and exact tree (a5f57a9) as previously reviewed commit 3256182; only the committer timestamp changed. There is no code or test delta. The five findings in the prior review therefore remain current and unresolved.
# Conflicts: # tests/test_plugin_runtime.py # uv.lock
…enCabannes/autoform-bot into codex/pr16-repair
Compatibility now comes from lean-toolchain plus the Mathlib entry that lake-manifest.json locks (or package-overrides.json replaces), compared by commit against the catalog. Files are read with plain size-capped reads, so inspection works on Windows and through symlinked directories such as macOS /tmp. Drops the descriptor walk, generation snapshots, bounded TOML, Lean-name lexer, and material-identity tuple.
A differential run of the previous 190-test suite against the slim inspector, plus checks against real elan 4.2.0 and Lake 4.32.0, showed behaviours the cut lost: - lean-toolchain follows elan: the trimmed first line decides, and a blank or malformed first line means elan uses the default toolchain - a direct Mathlib lock that lakefile.toml no longer requires is unused, and lakefile.lean projects stay indeterminate - a catalog match also needs Mathlib loaded from its repository root with lakefile.lean and lake-manifest.json; commits compare in any case - legacy manifest versions are advisory, null packages mean none, NaN is rejected, overrides apply only over a manifest, path Mathlib is indeterminate - lakefile.toml needs a name, a StdVer version, named entries, and distinct targets, as Lake requires - credentials in a Mathlib URL are redacted from reports - the blueprint vault must be a directory; «mathlib» is mathlib
PR 14 no longer uses bounded_toml.py, so the module stays here with the provenance code that parses pyproject.toml and uv.lock, and its depth tests move from the old inspection suite to tests/test_bounded_toml.py. The project command keeps provenance beside the new inspect and versions paths.
Project inspection no longer exposes a descriptor entry point, so creation inspects its staged project through the public inspect_project and then checks that the inspected path is still the directory it holds open. The release catalog is flat, so the plan and the bundled manifest check read lean_toolchain, mathlib_git, mathlib_rev, and mathlib_commit.
33270cd to
0789dc6
Compare
|
Current head
After #14/#16 settle, rebuild the clean #26 delta rather than preserving the |
Summary
autoform project newfor an absent target and an explicit bundledLean/Mathlib release
nine-package Lake lock, and optional commit-pinned workflows without running
Git, Lake, Lean, subprocesses, or the network
link counts, and the initial roadmap; check project compatibility by
inspecting the stage and confirming it is still the directory held open
publication states accurately
Depends on #16 and is merged onto its head
ce81bef, which carries thecut-down #14 (merge
0789dc6). Review the diff against #16; earlier commitsare dependency history.
Validation
0789dc6, after the Add bounded Lean project inspection #14 cut: full suite 1,155 passed, 2 skipped on Python 3.13;ruff check autoform_cli servers tests. The lines below were measured at94c4604, before that merge.installed-wheel runtime coverage), Windows subprocess/publication hardening,
and the real-Lean fixture suite
make lintandmake check-examplelake buildcompleted successfully (8,656 jobs)