docs: pin Bash cwd review

This commit is contained in:
jb
2026-09-04 16:49:28 -04:00
parent 328faa03e0
commit 3cf354b74b
+15 -15
View File
@@ -3,8 +3,8 @@
## Status ## Status
- Status: active - Status: active
- Current phase: 6. Verify the integrated worktree - Current phase: 7. Independent review
- Next safe action: commit the focused implementation, then run the full repository test suite. - Next safe action: obtain standards and specification review of the pinned product diff.
## Request and scope ## Request and scope
@@ -28,13 +28,13 @@
- [x] A regression test executes `pwd` from both a disposable hidden worktree root and a nested workspace package directory and observes the requested directory. - [x] A regression test executes `pwd` from both a disposable hidden worktree root and a nested workspace package directory and observes the requested directory.
- [x] A missing requested working directory fails before the shell command can create a sentinel side effect. - [x] A missing requested working directory fails before the shell command can create a sentinel side effect.
- [x] Package inventory, README guidance, and the upstream Pi 0.85.0 packaging blocker TODO are synchronized. - [x] Package inventory, README guidance, and the upstream Pi 0.85.0 packaging blocker TODO are synchronized.
- [ ] Existing repository typecheck and test suites pass. - [x] Existing repository typecheck and test suites pass.
- [x] The resolved Bash cwd TODO and temporary workaround language are removed or updated without changing unrelated historical evidence. - [x] The resolved Bash cwd TODO and temporary workaround language are removed or updated without changing unrelated historical evidence.
## Approved implementation plan and gates ## Approved implementation plan and gates
- Plan/specification source: user request, `docs/todos.md`, and upstream Pi 0.84.4/0.85.0 source under `/srv/data/opensrc/repos/github.com/earendil-works/pi/`. - Plan/specification source: user request, `docs/todos.md`, and upstream Pi 0.84.4/0.85.0 source under `/srv/data/opensrc/repos/github.com/earendil-works/pi/`.
- Exact plan: pending corrected approval. Proposed: (1) keep `extensions/bash-cwd` as the approved publishable package; (2) replace the built-in Bash schema with its existing `command` and `timeout` fields plus optional `cwd`; (3) resolve relative `cwd` from `ctx.cwd`, validate that the result is a directory, and only then construct and invoke Pi's built-in Bash definition for that directory; (4) preserve built-in rendering, prompt metadata, output, timeout, cancellation, truncation, and session environment by spreading and delegating to the host definition; (5) revise the regression to pass explicit absolute and relative `cwd` arguments while the session context remains the primary fixture checkout, covering hidden-worktree root, nested package, omitted cwd, and fail-before-sentinel cases; (6) retain approved package inventory/docs/full-verification work and record that Pi 0.85.0's separate `ctx.cwd` correction does not add this per-call argument. - Exact plan: (1) keep `extensions/bash-cwd` as the approved publishable package; (2) replace the built-in Bash schema with its existing `command` and `timeout` fields plus optional `cwd`; (3) resolve relative `cwd` from `ctx.cwd`, validate that the result is a directory, and only then construct and invoke Pi's built-in Bash definition for that directory; (4) preserve built-in rendering, prompt metadata, output, timeout, cancellation, truncation, and session environment by spreading and delegating to the host definition; (5) revise the regression to pass explicit absolute and relative `cwd` arguments while the session context remains the primary fixture checkout, covering hidden-worktree root, nested package, omitted cwd, and fail-before-sentinel cases; (6) retain approved package inventory/docs/full-verification work and record that Pi 0.85.0's separate `ctx.cwd` correction does not add this per-call argument.
- Plan approval: approved by the user through `ask_user` on 04SEP2026 (`approve` explicit cwd argument). - Plan approval: approved by the user through `ask_user` on 04SEP2026 (`approve` explicit cwd argument).
- UI classification and direction approval: non-UI; no prototype gate applies. - UI classification and direction approval: non-UI; no prototype gate applies.
- Risk decisions and scope: the Pi dependency upgrade remains abandoned. The corrected tool schema adds one optional, backward-compatible field and uses the repository's existing `typebox` dependency. The package remains repository-only and will not be installed, published, or added to the active global Pi environment in this task. - Risk decisions and scope: the Pi dependency upgrade remains abandoned. The corrected tool schema adds one optional, backward-compatible field and uses the repository's existing `typebox` dependency. The package remains repository-only and will not be installed, published, or added to the active global Pi environment in this task.
@@ -45,7 +45,7 @@
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| Workflow setup and research | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | workflow record only | Before: clean `main` at `7e7cfdb`; after: clean feature worktree at `5f853dc` | Complete | | Workflow setup and research | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | workflow record only | Before: clean `main` at `7e7cfdb`; after: clean feature worktree at `5f853dc` | Complete |
| Initial dependency-plan implementation | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | `package.json`, `bun.lock`, focused test, workflow record | Before: clean feature worktree at `9d68d5f`; after: Pi 0.85.0 upgrade restored; focused red test retained unstaged | Paused and replanned after upstream packaging blocker | | Initial dependency-plan implementation | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | `package.json`, `bun.lock`, focused test, workflow record | Before: clean feature worktree at `9d68d5f`; after: Pi 0.85.0 upgrade restored; focused red test retained unstaged | Paused and replanned after upstream packaging blocker |
| Local override implementation | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | `extensions/bash-cwd/**`, `scripts/bash-cwd.test.mjs` removal, `package.json`, `scripts/package-workspaces.test.mjs`, `README.md`, `docs/npm-packages.md`, `docs/todos.md`, `docs/workflow/skill-led-development-workflow-plan.md`, workflow record | Before: feature worktree at `3d68f7c` with inspected product changes; after: focused checks pass, product commit pending | Complete | | Local override implementation | parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` | 15 minutes | `extensions/bash-cwd/**`, `scripts/bash-cwd.test.mjs` removal, `package.json`, `scripts/package-workspaces.test.mjs`, `README.md`, `docs/npm-packages.md`, `docs/todos.md`, `docs/workflow/skill-led-development-workflow-plan.md`, workflow record | Before: feature worktree at `3d68f7c` with inspected product changes; after: clean product commit `328faa0` | Complete |
## Verification matrix ## Verification matrix
@@ -56,16 +56,16 @@
| Focused cwd regression | `bun run --filter '@jbcode/pi-bash-cwd' test` | 0 | Three tests pass: explicit absolute hidden-worktree cwd, relative nested-package cwd, omitted cwd/session environment, schema compatibility, missing cwd sentinel, and missing context. | | Focused cwd regression | `bun run --filter '@jbcode/pi-bash-cwd' test` | 0 | Three tests pass: explicit absolute hidden-worktree cwd, relative nested-package cwd, omitted cwd/session environment, schema compatibility, missing cwd sentinel, and missing context. |
| Package contract | `bun run test:packages`; `bun pm pack --destination /tmp --ignore-scripts --quiet` | 0 | Workspace inventory and package contents pass; package tarball created. | | Package contract | `bun run test:packages`; `bun pm pack --destination /tmp --ignore-scripts --quiet` | 0 | Workspace inventory and package contents pass; package tarball created. |
| Typecheck | `bun run typecheck` | 0 | Repository TypeScript check passes. | | Typecheck | `bun run typecheck` | 0 | Repository TypeScript check passes. |
| Full tests | `bun run test` | pending | pending | | Full tests | `bun run test` | 0 | The complete repository test chain passed in background task `bg_jdbm_mtnfe0ie_1`; Node reported 305/305 in the consolidated suite and Vitest reported 22/22 file-search tests. |
| Fresh-process integration | focused test's delegated real Bash subprocesses | 0 | Commands execute through Pi 0.84.4's built-in Bash definition with session metadata preserved. | | Fresh-process integration | focused test's delegated real Bash subprocesses | 0 | Commands execute through Pi 0.84.4's built-in Bash definition with session metadata preserved. |
## Review ## Review
- Base and product HEAD: pending - Base and product HEAD: `7e7cfdb5cb0e1a1218b9a2c8250267d5099637fc` and `328faa03e014bb7d29296d520297d05f0981fb33`
- Clean status and tree hash: pending - Clean status and tree hash: clean; product tree `6b858045b91298c91f55aedd848c3a02432edafb`
- Commit list: pending - Commit list: `328faa0`, `3d68f7c`, `bda414a`, `f61f197`, `070ba3d`, `9d68d5f`, `5f853dc`
- Exact diff command: pending - Exact diff command: `git diff --binary --full-index --find-renames 7e7cfdb5cb0e1a1218b9a2c8250267d5099637fc...328faa03e014bb7d29296d520297d05f0981fb33 --`
- SHA-256: pending - SHA-256: `b3b1ee7bfc70655a1324f6da943e2192987693d62495912cc866151b58d1c1a7`
- Mutator identities: parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87` - Mutator identities: parent Pi session `01a06e08-8d07-76a7-a116-d7e3baf55b87`
- Standards reviewer identity, digest confirmation, and verdict: pending - Standards reviewer identity, digest confirmation, and verdict: pending
- Specification reviewer identity, digest confirmation, and verdict: pending - Specification reviewer identity, digest confirmation, and verdict: pending
@@ -74,7 +74,7 @@
## Integration and rollback ## Integration and rollback
- Synchronization and re-verification: fetch/rebase onto latest `origin/main`, then rerun affected and full verification if the effective tree changes. - Synchronization and re-verification: fetched `origin/main`; it remained at the base commit and `git rebase origin/main` was a no-op, so the verified product tree did not change.
- Fast-forward result: pending - Fast-forward result: pending
- Product and closure commits: pending - Product and closure commits: pending
- Reachability and cleanup: pending - Reachability and cleanup: pending
@@ -82,6 +82,6 @@
## Checkpoints and blockers ## Checkpoints and blockers
- Last committed valid checkpoint: corrected-plan approval commit `3d68f7c` - Last committed valid checkpoint: product commit `328faa0`
- Blockers: none. - Blockers: standards and specification review verdicts are pending.
- Exact next safe action: checkpoint the focused implementation and run `bun run test`. - Exact next safe action: commit this review pin, then launch two independent read-only reviewers against the recorded digest.