Repository navigation
Releases: mouse9527/pi-turn-fold
Release list
pi-turn-fold 0.3.0-rc.3 (Pi 0.85.1 only)
Changes
- Fold adjacent structured
subagent-notificationcards into compact Process groups while preserving Pi's canonical native cards for/fold off. - Add fullscreen mouse disclosure from notification group to task and bounded structured details; previews and output paths stay lazy, sanitized and clipped.
- Add exact-name
SubagentProcess statistics forAgent,SubagentWorkflow,get_subagent_resultandsteer_subagent, with boundedagent/resume/workflow/result/steerlabels that omit large payloads. - Preserve unrelated custom messages and entries, chronological segmentation, expanded saved tool arguments/results, and RC2's shell-argument privacy.
Known interaction limit: notification task details are mouse-expandable in fullscreen mode; regular mode shows the compact notification summary without a new notification-selection command.
Compatibility
- Pi 0.85.1 only. This is a source-only release; no compiled assets or binaries are required.
Verification
- Validated commit:
a9625dd00c69215f4f35c8297ca691ea16d36b8b - Workflow run: https://github.com/mouse9527/pi-turn-fold/actions/runs/34194697467
- Node 22 typecheck, tests, benchmark, and isolated regular/fullscreen PTY smoke passed.
Known limits
- Automated PTY checks do not verify Ghostty image pixels, real-session input/scroll latency, or sustained heap/CPU behavior.
- Do not combine this extension with another transcript/tool renderer.
pi-turn-fold v0.3.0-rc.2 (Pi 0.85.1 only)
pi-turn-fold v0.3.0-rc.2 — experimental, Pi 0.85.1 only
Changes since RC1
- Running and unfinished builtin bash/PowerShell activity hints now show only the shell name, omitting commands and arguments. Expanded saved arguments/results remain unchanged; other tool targets and failure details retain their existing behavior.
- Added synthetic interleaved-stream, argument-streaming and megabyte shell-command coverage. The adapter integration test uses a worktree-relative, version-pinned Pi internal module, verified after a fresh dependency install.
- The originally reported transient raw-card leak was not reproduced; its root cause is not confirmed. This release simplifies hints, not a proven leak fix. Synthetic passing checks do not establish that every real streaming case is leak-free.
Compatibility and known limits
- Experimental prerelease, not stable Latest. Pi 0.85.1 only; other versions refuse activation. Uses a private in-memory runtime adapter; do not combine with other transcript/tool renderers.
- Local checks: macOS, Node v22.23.2, Python 3.14.6, bundled Pi 0.85.1. This does not establish Windows, other Pi/Node versions or other terminals as supported.
- Ghostty image pixel cleanup, real long-session input/scroll latency and sustained heap/CPU profiling remain unverified. PTY and display microbenchmarks are not substitutes for manual acceptance or end-to-end latency measurements.
- Saved truncated output cannot be recovered; write has no old-file snapshot for a trustworthy before/after diff. Native notices and user-run shell commands remain native.
Install, updates and rollback
Recommended for ordinary native updates: use the unpinned GitHub channel, following diagram-design's intentional unpinned install approach:
pi install https://github.com/mouse9527/pi-turn-fold
# Later, update extension packages without updating Pi itself:
pi update --extensions
# Then run /reload inside Pi, or restart.This follows development on main today, not latest stable. Native updates follow the Git branch, not GitHub Latest Release selection. The future stable-main/dev policy is not enacted. The existing pi.extensions manifest is retained; no custom updater, npm distribution or build is needed.
Optional fixed release / rollback: install the immutable version tag. GitHub Releases is authoritative for public release status. RC1 remains available.
# Optional user action to install the fixed RC2 version:
pi install git:github.com/mouse9527/pi-turn-fold@v0.3.0-rc.2
# Roll back an upgraded installation to the existing verified RC1:
pi install git:github.com/mouse9527/pi-turn-fold@v0.3.0-rc.1Pi loads source TypeScript directly; no manual compilation/build, release ZIP or npm account is needed. Pi may install package dependencies. Reload or restart after changing installed code.
Immutable tagged installs remain fixed: native extension updates do not move @v0.3.0-rc.1 to RC2. Changing versions requires explicitly installing the new published tag. Explicitly choosing the unpinned source above instead of a fixed tag enables branch-following native updates through pi update --extensions, without upgrading the Pi host. Bare pi update updates the host, not extensions. @latest is not a GitHub Latest Release API alias. A future stable-main/dev policy has not been enacted.
Publication does not install or update existing clients. The commands above are user-invoked options, not automatic migration steps.
Verification
- Prior published RC1:
0fcdead2d9e5b9a168395dc00ca40709f03db3fe. - Candidate branch:
release/v0.3.0-rc.2; main base verified with git:0f3d7fede7e6f3bce60a9ba47cf55f611f105604. - Validated release commit:
ae9fd1113e99304c87d4ffca5251064317cab490; remote annotated tag peeled SHA verified equal. - Exact branch push CI: PASS — release/v0.3.0-rc.2.
- Exact tag push CI: PASS — v0.3.0-rc.2.
- Local isolated candidate checks passed (exit 0):
npm ci --ignore-scripts --no-audit --no-fund,npm run check,npm test(37/37),npm run bench, regularpython3 tests/smoke.py,FOLD_SMOKE_FULLSCREEN=1 python3 tests/smoke.py, andgit diff --check. No build required. - Both PTYs used worktree-local bundled Pi with separate temporary agent directories and 300 synthetic calls; no model request was sent. User settings and the managed RC1 installation were not changed by candidate preparation.
- Display update/render p95 (ms): 300 calls/1 group 0.0178; 1,000/1 0.0145; 10,000/1 0.0128; 10,000/100 0.8159; 1,000 calls with 99 text separators 1.7100. Excludes footer, host parsing, terminal writes, displayed images and input latency.
- Independent maintainer verification: typecheck and all 37 tests passed; regular/fullscreen isolated PTY smoke against globally installed bundled Pi 0.85.1 both passed. Branch and tag CI passed for the exact release commit above. GitHub reported an upstream action-runtime deprecation warning; all check steps passed. No client installation or configuration updates are part of this release.
pi-turn-fold v0.3.0-rc.1 (Pi 0.85.1 only)
pi-turn-fold v0.3.0-rc.1 — experimental, Pi 0.85.1 only
Prepared and validated on isolated branch release/v0.3.0-rc.1. This is an experimental prerelease, not a stable Latest release. The proposed future dev development / main stable policy is not enacted; unpinned main remains development.
Changes
User-facing features in this candidate (the release preparation itself changes version metadata and documentation, not runtime code):
- Assistant text, including intermediate explanations, streams visibly between independently folded process groups. Later tool calls never pull earlier text back into a fold.
- English process summaries show recognizable actions and call counts, running targets, bounded failure reasons, unfinished calls and saved edit addition/removal statistics.
- Process groups use Pi's native outer message spacing; text-to-process boundaries retain one blank line.
- In fullscreen mode, group and item mouse controls support inline inspection of saved parameters, results and saved edit diffs. Nested registered native renderer controls retain their state. Component dispatch is tested; physical terminal mouse reporting is not validated by those tests.
/fold offrestores the native transcript immediately;/fold onresumes folding during live text/tool execution without a reload. Startup and reload default to on.- Native shell elapsed-timer cleanup when folding resumes preserves execution; repeated off/on cycles do not stack wrappers. Collapsed details are rendered lazily.
Compatibility and distribution
- Only Pi 0.85.1 is supported. Other host versions refuse activation. The extension uses private in-memory runtime adaptation, without patching Pi files on disk; host upgrades require fresh validation.
- Do not stack with other transcript/tool renderers. Regular terminal mode supports keyboard/commands; mouse interaction requires fullscreen mode and native host mouse delivery.
- MIT-licensed source distribution: Pi loads the TypeScript source with its extension loader. Users need no manual clone, compile,
tsc, build step, npm account or binary download. Pi may install package dependencies automatically. GitHub source archives suffice; no binary attachments are needed.
Install, update and rollback
Install this candidate:
pi install git:github.com/mouse9527/pi-turn-fold@v0.3.0-rc.1Version tags are immutable. A pinned install stays at that version; native updates do not select a newer release. To upgrade, manually run pi install with the next published tag. Git package identity excludes the ref, so changing tags replaces the version rather than adding another Git package.
For users deliberately choosing unpinned development source:
pi install git:github.com/mouse9527/pi-turn-fold
pi update --extension git:github.com/mouse9527/pi-turn-fold
# Or update all extension packages, without upgrading Pi:
pi update --extensionsUnpinned updates follow the managed Git checkout's upstream/default branch, not GitHub Latest Release. @latest is not a special Release alias. Explicit updates may fetch the configured pinned ref, but this project's version tags never move. Bare pi update upgrades the Pi host, not just this extension; do not use a host upgrade as an extension update.
After changing code, restart Pi or run /reload; restart when changing renderer packages. Remove a prior local-path package/direct extension registration before switching to the Git source to avoid duplicate loading. Preserve the development checkout and do not store unique files or edits in Pi's managed Git clone.
Rollback to the verified preparation baseline (full SHA resolved from 14b6f92):
pi install git:github.com/mouse9527/pi-turn-fold@14b6f9217c90d771a189923a384670ffcbe2cb92Then restart or /reload. This restores extension source only, not host/configuration/session state. For an immediate display fallback use /fold off; if loading fails, remove the package and restart. Do not delete sessions. The baseline also requires Pi 0.85.1. Candidate runtime is unchanged from this baseline; metadata/documentation changes alone were applied before the checks below.
Verification
- Package and lockfile version:
0.3.0-rc.1. - Preparation baseline:
14b6f9217c90d771a189923a384670ffcbe2cb92. - Validated release commit:
0fcdead2d9e5b9a168395dc00ca40709f03db3fe. - Annotated tag:
v0.3.0-rc.1; remote peeled SHA verified equal to the release commit. - Exact-commit branch CI: PASS — release/v0.3.0-rc.1.
- Exact-commit tag CI: PASS — v0.3.0-rc.1.
- Independent maintainer checks: typecheck and all 32 tests PASS; regular and fullscreen isolated PTY smoke against the globally installed bundled Pi 0.85.1 CLI both PASS. No model requests or compile/build steps.
- Tagged-install verification: Pi fetched
v0.3.0-rc.1into its managed Git checkout; installed version and commit match the tag. The actual installed extension entry passed regular/fullscreen isolated CLI smoke without a local build.
Local candidate checks used macOS, Node v22.23.2, npm 10.9.8, and the worktree dependency's bundled Pi CLI reporting 0.85.1. All commands below exited 0; no build step or real model calls were used.
| Command | Result |
|---|---|
npm ci --ignore-scripts --no-audit --no-fund |
PASS; 138 packages installed. One upstream node-domexception@1.0.0 deprecation warning. Audit intentionally not run. |
npm run check |
PASS; TypeScript --noEmit. |
npm test |
PASS; 32 tests, 32 passed, 0 failed/cancelled/skipped/todo. Includes native integration and component mouse dispatch. |
npm run bench |
PASS; 5 synthetic scenarios, values below. |
python3 tests/smoke.py |
PASS; regular isolated PTY, local bundled Pi 0.85.1. |
FOLD_SMOKE_FULLSCREEN=1 python3 tests/smoke.py |
PASS; fullscreen isolated PTY, local bundled Pi 0.85.1. |
Each PTY run restores 300 synthetic calls with three image attachments and visible middle text separating two groups; checks emitted native spacing, two-level command expansion, live off/on without reload, reload and clean quit. These are command/terminal-output checks, not physical mouse or image pixel acceptance. No checkout-dirname or loader-path failures occurred.
Synthetic update + render p95 (milliseconds): 300 calls / 1 group: 0.0170; 1,000 / 1: 0.0123; 10,000 / 1: 0.0120; 10,000 / 100: 0.7382; 1,000 calls with 99 text separators: 1.7763. Checks ran concurrently; these are local display microbenchmarks, not input-to-screen latency or total host CPU measurements.
Known limits
- Manual Ghostty image pixel cleanup, physical mouse reporting/coordinates, real long-session input/scroll latency and sustained heap/CPU profiling remain unverified. PTYs and 32 automated tests do not replace these checks. No promise of zero memory growth or lag-free operation.
- Microbenchmarks exclude footer statistics, host event/argument parsing, terminal writes and visible image conversion. Many expanded items or many visible text/group segments may be expensive.
- Historical
edituses the saved diff, not today's file.writehas no old-file snapshot, so it cannot show a trustworthy before/after diff. Truncated tool content cannot be recovered. - Arbitrary Agent/MCP child executions are not inferred from output text. Other renderer extensions and private host API changes can conflict.
- Off is a display switch, not unloading: lightweight state keeps tracking, and native caches may remain. Use a fresh process without the extension for a no-extension performance baseline.
- Linux branch and tag CI both passed for the exact release commit (links above). GitHub reported an upstream action-runtime deprecation warning; all check steps still passed. Other Pi versions, terminals, Windows and other Node majors have no added validation promise.