Skip to content
PimigrationCLI & tooling13 files · +94 −78

Migrate pi extensions past Pi v0.51.0 breaking changes

Session from pi-extensions-sessions on Hugging Face by thomasmustier · MIT · condensed by Coders Talk

9msession
0interventions
GOAL

Review upstream Pi (pi-mono) changes to figure out what breaks the developer's custom extensions (a new built-in /files command and a tool execute signature change), then fix, version, and publish the affected extensions.

  1. Prompt · +0
    Review pi-mono's latest changes: a new /files command conflicts with our extension, and there are breaking changes to extensions we need to identify and handle.
  2. Agent did · +0m
    Explored pi-mono repo structure, changelog, and source to locate the new /files command and search for extension-related breaking changes.
  3. Prompt · +0m
    We need to ff our local fork
  4. Agent did · +0m
    Fetched and fast-forwarded the fork to upstream/main, found the new .pi/extensions/files.ts, read the v0.51.0 changelog's Breaking Changes section, and audited all local extensions (files-widget, ralph-wiggum, control, agent-guidance) against the new tool execute signature and removed systemPromptAppend API.
  5. Prompt · +3m
    Rename to /readfiles; also asked if there were other breaking changes or typing requirements beyond what was found.
  6. Prompt · +4m
    Implement the fixes, commit/push, then bump versions, update release notes, and publish per RELEASING.md.
  7. Agent did · +4m
    Renamed /files to /readfiles in files-widget, updated execute signatures in ralph-wiggum, migrated agent-guidance off systemPromptAppend, bumped versions and changelogs across four packages, committed, pushed, published all four to npm, and pushed git tags.
  8. Prompt · +8m
    Check whether the README, personal website, and GitHub profile need updating for the /files -> /readfiles rename.
  9. Agent did · +8m
    Searched for /files references across pi-extensions README, personal website, and tmustier-profile; updated references found in pi-extensions and files-widget READMEs and tmustier-profile README, then committed and pushed.
  10. Fail · +9m
    Push to tmustier-profile failed: the repo was in a detached HEAD mid-rebase state and the push was rejected as diverged from origin.
  11. Agent did · +9m
    Aborted the rebase, reset the branch to origin/main, reapplied the README edit, and successfully committed and pushed the fix.
  12. Outcome · +9m
    Renamed /files to /readfiles across 3 extensions, updated execute signatures for 2 packages, migrated off systemPromptAppend, published 4 npm packages with version bumps, pushed git tags, and updated docs in 2 repos; decided not to republish for doc-only changes.
VERDICT

I'd start by asking it to check for breaking changes and naming collisions across all downstream repos (extensions, website, profile) in one pass, since I ended up asking about docs and repo references as an afterthought. The rebase/detached-HEAD mess in tmustier-profile wasn't something the agent caused, but aborting the rebase and hard-resetting to origin was the right fix and got the push through cleanly. Overall the breaking-change audit against the changelog was thorough enough that I didn't need to correct its technical analysis, just prompt it to keep going and to touch the peripheral repos.

I tried this · 0

Discussion · 0

How Builds work