Files
my-pi/pi-permission-system/docs/retro/0122-infra-read-glob-support.md
T

44 lines
2.4 KiB
Markdown

---
issue: 122
issue_title: "piInfrastructureReadPaths doesn't support glob patterns (**), causing confusing fallback to external_directory"
---
# Retro: #122 — Glob support for `piInfrastructureReadPaths`
## Final Retrospective (2026-05-22T17:00:00Z)
### Session summary
Added `*` and `?` wildcard support to `piInfrastructureReadPaths` by routing glob-containing entries through the existing `wildcardMatch()` in `isPiInfrastructureRead()`.
Also fixed a pre-existing silent bug where `~` expansion never worked for plain directory entries.
Shipped as `pi-permission-system` v7.1.0.
### Observations
#### What went well
- The feature was a 4-line logic change in one function (`isPiInfrastructureRead` in `src/path-utils.ts`), reusing `wildcardMatch()` and `expandHomePath()` with zero new dependencies.
This is a direct payoff from prior refactorings (#48, #110) that extracted `isPiInfrastructureRead` as a pure function and kept wildcard matching in a single composable module.
- The `~` expansion bug was discovered during planning (grepping for `expandHomePath` in `path-utils.ts` found no import) and fixed as a natural side effect of the implementation — no extra step needed.
- TDD cycle was zero-rework: 5 expected failures in the red phase, all green on first implementation, no unexpected downstream breakage across 1467 tests.
#### What caused friction (agent side)
- `missing-context` — The docs commit (`94fa688`) used `**` in the `piInfrastructureReadPaths` example pattern, copying the reporter's original syntax without noting that `**` and `*` are identical in this system's wildcard matcher.
The user caught this and made a corrective commit (`00563dc`).
Impact: one follow-up commit to fix misleading examples; no rework to code or tests.
User-caught.
- `instruction-violation` — The `/ship-issue` prompt template wrapped commit SHAs in backticks (`` `<sha>` ``), which prevents GitHub's auto-linking in issue comments.
The user noticed the SHAs in a prior closed issue weren't clickable and traced it to the template.
Impact: one fix commit (`5f7665b`) to `.pi/prompts/ship-issue.md`; added friction but no code rework.
User-caught.
#### What caused friction (user side)
- No significant friction.
The user's mid-session redirect about `**` vs `*` semantics was well-timed and led to cleaner documentation.
### Changes made
1. Retro file created at `packages/pi-permission-system/docs/retro/0122-infra-read-glob-support.md`.