Skip to content

feat!: enable shell tools for writable Pi nodes - #41

Merged
Epsirom merged 1 commit into
mainfrom
chrok/pi-writable-shell-tools
Oct 4, 2026
Merged

Epsirom merged 1 commit into
mainfrom
chrok/pi-writable-shell-tools

Conversation

@Epsirom

@Epsirom Epsirom commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Change

Writable Pi nodes can edit code but currently cannot build or test it, pushing the verification and repair loop back to the parent agent. This change gives writable nodes Pi's built-in bash tool and, on Windows, powershell, while read-only nodes keep their existing capabilities.

  • Create shell tools for each node's working directory, preserve command failure results, and drain shell calls through the workspace write barrier before checkpointing. Stop process groups on cancellation, timeout, and normal command completion on POSIX; Windows uses best-effort process-tree cleanup.
  • Describe workspace boundaries, shared Git state, concurrent resources, and external side effects in node prompts. Shell execution uses host permissions; parent extension/MCP tools and hooks are not inherited.
  • Use normal git add --all checkpoint semantics so ignored dependencies, caches, and build outputs are excluded. Tracked and deliberately force-added files remain tracked. Add regressions for command repair, cancellation, child cleanup, read-only tool rejection, and checkpoint contents.

This intentionally changes writable-node capabilities and ignored-output recovery, and is marked for the next minor release in CHANGELOG.md. Migration guidance covers callers relying on shell-free workers or ignored artifacts being preserved.

Validation

  • npm run verify passed locally on macOS: 223 core tests, 72 Pi tests, both type checks, offline examples, and package installation/build smoke checks.

  • git diff --check passed.

  • No live model calls were used. Windows process cleanup still needs CI coverage; detached daemons and external services are outside the process-group lifecycle.

  • Relevant tests and type checks pass.

  • User-facing docs and changelog are updated where needed.

  • Breaking changes include migration guidance.

  • Release checklist: not applicable; this PR does not publish or bump package versions.

@Epsirom
Epsirom merged commit 0deb7a4 into main Oct 4, 2026
11 checks passed
@Epsirom
Epsirom deleted the chrok/pi-writable-shell-tools branch October 4, 2026 07:15
@Epsirom Epsirom mentioned this pull request Oct 4, 2026
4 tasks done
Epsirom added a commit that referenced this pull request Oct 4, 2026
## Change

Prepare matching `@chrok/braid` and `@chrok/pi-braid` 0.3.0 releases
from #41 and #42. This minor version accounts for writable Pi shell
tools and Git-aware checkpoint semantics; it also includes Pi graph
diagnostics, focused status/usage exports, cumulative merge-source
baselines, and reminders between model steps.

Update both manifests, Pi's exact core dependency, and the workspace
lockfile. Finalize the changelog with implementing PR links and author
credits, document 0.2 → 0.3 migration, and align both READMEs and the
roadmap. Both included PRs are by @Epsirom, whose earlier contributions
were verified; there are no first-time human contributors.

## Validation

- `npm ci` and `npm run verify`: 227 core tests, 90 Pi tests, both type
checks, offline examples, and isolated tarball checks passed. The
package smoke verifies public imports, declarations, transitive core
installation, and a Pi background job outside the checkout.
- `npm pack --dry-run` for both packages: inspected clean file lists,
licenses, and 0.3.0 versions; core has 39 files and Pi has 11.
- `RELEASE_TAG=v0.3.0 node scripts/check-release.mjs` and `git diff
--check` passed.
- Hosted CI and CodeQL must pass before merge/tag. Publication will use
the existing trusted-publishing workflow, followed by exact-version,
latest-tag, provenance, and clean registry installation checks.

- [x] Relevant tests and type checks pass.
- [x] User-facing docs and changelog are updated where needed.
- [x] Breaking changes include migration guidance.
- [x] Release notes link feature/fix PRs, credit authors, and identify
first-time contributors per the release guide.
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