Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #650 +/- ##
=========================================
Coverage 99.65% 99.65%
- Complexity 1903 1910 +7
=========================================
Files 136 138 +2
Lines 4882 4898 +16
=========================================
+ Hits 4865 4881 +16
Misses 17 17 ☔ View full report in Codecov by Harness. |
|
|
||
| namespace Firehed\PhpLsp\Filesystem; | ||
|
|
||
| final class PhpDirectoryReader |
There was a problem hiding this comment.
This can probably leverage the native directory iteration tooling
706e677 to
66c7b9f
Compare
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
66c7b9f to
60f9bb8
Compare
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Adversarial review of this stack (650/651/652) before landing. Findings verified against source. Where the design fights itselfPR 650 doesn't simplify what it extracts. PR 651 gives each holder a second description of its own staleness, already drifting from the first.
Two routes to "what makes this holder stale," in a design axiom that says one route. PR 652 watches a different set than the route it stands in for. The gap is narrower than the record suggests
Simpler answer
Where the design is right
Enforcement growthTwo filesystem allowlist entries and three deptrac layers grew to admit this. CLAUDE.md flags that as a signal, not a chore. Verdict650 only earns its keep if 652 lands. 651+652 are a correct, well-tested, oversized answer to an ALE-only completion-staleness gap that a four-file stat plus "restart after pull" covers at a thirtieth of the code. Moving all three back to draft to reconsider. Review generated by an adversarial pass with the Fable model, claims verified against source before posting. |
Third of five stacked PRs, on top of the declaration source. #646 is the total view.
What this does
PhpDirectoryReaderlists the PHP files and directories inside a directory, and walks a tree of them.ComposerMapBackendwalks its autoload roots through it in place of its own private walk.No behaviour changes.
Why
The stand-in file watcher, two PRs up, needs the same walk. This keeps it written once.
Enforcement edits
Each at Eric's direction, classified by
docs/architecture/enforcement-edits.md.phpstan.neonfilesystem allowlist: addPhpDirectoryReaderdeptrac.yaml: add theFilesystemlayerdeptrac.yaml:Knowledgemay useFilesystem🤖 Generated with Claude Code