upgrading-to-upstream-pilisted
Install: claude install-skill shekohex/dotai
# Upgrading To Upstream Pi
## Quick Start
Use this workflow from `/home/coder/dotai/agent` when upgrading `@earendil-works/*` Pi packages.
1. Confirm clean state and latest upstream:
`git -C /home/coder/dotai status --short`
`bash /home/coder/.pi/agent/skills/librarian/scripts/checkout.sh earendil-works/pi --force-update --path-only`
`gh release view --repo earendil-works/pi --json tagName,publishedAt --jq '.'`
`npm view @earendil-works/pi-coding-agent version`
2. Read changelog for target version with `gh api`, not guess from memory.
3. Install exact target versions:
`npm install @earendil-works/pi-agent-core@VERSION @earendil-works/pi-ai@VERSION @earendil-works/pi-coding-agent@VERSION @earendil-works/pi-tui@VERSION`
4. Pin patched package exactly in `package.json`:
`@earendil-works/pi-coding-agent`: `VERSION`
5. Bump wrapper metadata:
`package.json` `version`
`../.github/.release-please-manifest.json` `agent`
## Patch Workflow
Our recurring patch removes the internal spacer from upstream `ToolExecutionComponent`:
```diff
- this.addChild(new Spacer(1));
```
Check if still needed:
`grep -n "this.addChild(new Spacer(1))" node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js | head`
If still present:
1. Remove the line using `apply_patch`.
2. Delete old `patches/@earendil-works+pi-coding-agent+OLD.patch` using `apply_patch`.
3. Run `npm install` to refresh lockfile and prove postinstall can