Skip to content

Releases: ejpir/pig

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 11 Oct 07:07

Large-thread performance

  • Replaced repeated durable full-history snapshots with one bootstrap/resync snapshot followed by incremental conversation, state, stats, queue, tool, compaction, and subagent events.
  • Closed abandoned SSH channels when leaving a thread, preventing old snapshot streams from continuing to consume the phone's pi-ssh threads.
  • Made historical tool-image hydration visible-only, deduplicated, and limited to two concurrent requests instead of fetching every image in lifetime history.
  • Added fail-closed event-listener handling and fixed compaction resume, tool-call delta, Unicode trim, stale-state, and metadata/stat update edge cases.

Subagents

  • Keep the composer available while parent or background agents work.
  • Show an aggregate 1 agent at work / N agents at work status; tap it to open the session's Subagents screen.
  • Added direct, explicitly targeted steering for running subagents and guarded follow-up turns for idle durable subagents.
  • Route completed background reports to their delegating run without steering an unrelated later user turn.

Transport diagnostics

  • Added a dedicated Thread Info → Transport diagnostics screen with newest-first records and independent scrolling.
  • Diagnostics are bounded to 128 entries / 48 KiB per watched session and discarded with the watch.
  • Structural summaries expose record kinds, state transitions, counts, block/role shapes, sizes, and omission markers while excluding transcript text, image bytes, tool payloads, credentials, headers, paths, errors, and arbitrary identifiers.

Validation

  • Full hosted tests, formatting, Clippy, packaging policy, native UI screen checks, and all platform package jobs passed.
  • Durable runner: 46 tests; real durable fixture: 14 tests; Android library: 255 passed with 2 environment-dependent tests ignored.

Full changelog: v0.0.9...v0.0.10

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 10 Oct 23:40

Pi for Android gets a clearer, chronological view of the agent's work, plus fixes for image capability detection and steering admission on reconnect.

Android: follow tool calls as they happen

  • Tool calls appear between the agent's words, in execution order, instead of only being grouped by stage.
  • Consecutive successful reads and searches fold into compact rows that you can expand. Running and failed calls stay separate, with failures clearly marked.
  • Active calls show live output or an edit preview. Completed edits show their added/removed line counts.
  • Tap a call to inspect its command, output and status, copy its output, navigate to the next call, or attach it to an editable session's composer with Ask about this. Read-only subagent calls retain inspection, copying and navigation, without offering an unusable composer action.
  • The working strip keeps the run line one tap away. Finished tool streams fold out of the way and can be reopened with Show.
  • Tool calls remain ordered with returned images, generated HTML pages and compaction summaries.

Reconnect and input fixes

  • Image capability detection: a selected model with incomplete metadata is hydrated from an exact provider/model catalog match. Unknown capabilities are treated as loading, rather than falsely reporting that the model is text-only. Explicit text-only capabilities remain respected.
  • Image admission waits for the current connection and model-selection confirmation. Delayed catalog responses from older connections cannot replace the current model/command choices.
  • Steering admission: an acknowledged prompt counts as busy while Android awaits its busy snapshot, so another new message is sent as steering during that gap. Retries retain their original admission mode and request identity.
  • Helper upgrade warnings now link to the matching release in ejpir/pig.

Packaging and validation

  • Android APKs now include the full copyright notices and SIL Open Font Licenses for IBM Plex, Commit Mono and Noto Emoji. Publication rejects an APK with missing or incomplete font notices.
  • Fixed desktop screen validation to locate the model's displayed name rather than its RPC identifier.
  • Branch and release CI passed: full Rust tests and strict Clippy checks, offline durable-engine tests, desktop screen validation, four native package builds and Android packaging.

Upgrade and downloads

Platform Desktop package SSH helper
Linux x86-64 pi-desktop-linux-amd64.tar.gz pi-desktop-remote-linux-amd64
Linux ARM64 pi-desktop-linux-arm64.tar.gz pi-desktop-remote-linux-arm64
macOS Apple Silicon pi-desktop-macos-arm64.zip pi-desktop-remote-macos-arm64
Windows x86-64 pi-desktop-windows-amd64.zip pi-desktop-remote-windows-amd64.exe

Android: pi-android-arm64.apk is the production-signed ARM64 build. Install it over an existing installation signed with the production key to keep app data. Custom/debug-signed installations require an update signed with their existing key; do not uninstall just to switch signing keys.

For Android durable sessions, use the matching Linux or macOS helper; the Windows helper does not include the durable engine. If you manually download a Unix helper, make it executable and run its activate command, then reconnect the phone. Copying a newer binary alone does not select it. Activation leaves existing durable work running. See remote setup and activation.

SHA256SUMS covers all nine downloadable binaries/packages. Previously published v0.0.7 and v0.0.8 tags and assets are unchanged.

Known steering behavior and limitation

Steering is admitted while the agent is busy but applied at the next completed tool-round boundary, or after the current response finishes if there are no tools. It does not interrupt provider calls or running tools, and a parallel round waits for its slowest tool. Parent steering does not redirect background subagents.

A separate acknowledgement/older-idle-snapshot ordering race remains: an older snapshot can erase Android's busy hint and cause a subsequent prompt to be rejected as busy. The rejected payload remains recoverable; this release does not claim to fully solve that protocol-ordering issue. Queued inputs can also remain parked after a run fails until another submission. Details are in the remote-session documentation.

Full changelog: v0.0.8...v0.0.9

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 10 Oct 16:05

Full Changelog: v0.0.7...v0.0.8

v0.0.7

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:01

Highlights

  • Android scrolling is smoother and more stable across long threads, review views, sheets, and other scrollable surfaces.
  • Long conversation histories now use virtualized rendering with an accurate, draggable scrollbar that can reach unseen history immediately.
  • Image previews show the complete image at the correct aspect ratio and remain scrollable when needed.
  • Queued prompts can be cancelled immediately and safely, including during reconnect and queued-to-active races, without stopping the conversation or discarding unrelated follow-ups.
  • Cancellation remains safe when connected to older desktop helpers.
  • Compaction now reports the correct status, and stale optimistic tool states are cleared reliably.
  • The Latest reply banner no longer passes taps through to content underneath it.
  • Android notices, composer layout, sheet interactions, remote workflows, and slash commands received additional polish and fixes.

Downloads

  • Android: ARM64 APK
  • Desktop: Linux AMD64/ARM64, macOS ARM64, and Windows AMD64
  • Standalone remote helpers are included for every supported desktop platform.
  • SHA-256 checksums are provided in SHA256SUMS.

Full changelog: v0.0.5...v0.0.7

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 09 Oct 03:55

Highlights

  • Android Live Changes now shows filenames correctly and renders padded diffs cleanly.
  • Long-press selection and Paste stay reliable while IME reflow adjusts the editor.
  • Messages steer active work by default, with an explicit follow-up action when needed.
  • Command output preserves raw carriage returns so CR-updated displays remain accurate.
  • Tools and current-context reporting are accurate, including a refreshed context after compaction.
  • Stopped subagents now report their stopped status.
  • Durable sessions and helper connections reconnect more reliably after disruptions.
  • Android ships an ARM64 release APK and supports x86_64 builds for tests.

v0.0.4

Choose a tag to compare

@ejpir ejpir released this 07 Oct 21:15

Subagents, prompt templates and skills come to durable sessions, and both apps show more of what Pi makes: tool images, HTML pages and SVG.

Subagents

Pi can hand work to subagents with the subagent tool: one task, several side by side, or a chain where each step gets the previous answer.

  • Pi isn't blocked. Subagents work in the background. Pi answers, and you can keep talking to it, while they work. When the last one finishes, their answers come back to Pi as one message, shown as From subagents.
  • No setup needed. Pi can name and define its own agents in the call ("architecture", "code-quality"), with instructions and tools. The agent files stock Pi uses (~/.pi/agent/agents/*.md, and a trusted project's .pi/agents/) work as presets.
  • Up to 200 tasks in one call, 8 at a time. Each subagent runs in its own durable conversation. After a restart it carries on instead of starting again, and a command a restart cut off is reported, never repeated by itself.
  • Stopping: stopping the session stops its subagents too. Stopping one subagent leaves Pi and the others working.

On Android:

  • A hand-off shows as a card with a row per subagent: its task, what it is doing now ("Read retry.ts"), its time and cost. Each row opens that subagent's own read-only screen, with Stop.
  • Large crews stay tidy. The card shows five subagents, those at work first, then Show all, and its header folds the card to a line of counts ("8 running · 9 done · 7 waiting").
  • Home and the session's title bar say who is still at work ("8 scouts at work") after Pi has answered.

Prompt templates and skills in durable sessions

Durable sessions read the computer's prompt templates and skills from the same folders stock Pi reads. A project's own are used once stock Pi trusts the project. Type / on the phone to pick one; a /skill: prompt reads in the thread as it was typed, and Resources lists them.

Images, pages and SVG

  • Desktop now shows what Android shows: images a tool returned, under the reply that called it, and a card for each HTML page Pi wrote, with Open in browser. On macOS the card shows a preview of the page.
  • SVG in a reply (an svg code block, <svg> markup or an SVG data URL) is drawn as an image in both apps.
  • Images keep their own size on Android instead of being stretched to the full width and cut off.
  • Links between pages work in the phone's page viewer. A launcher page's links open the pages it links to, including ones Pi wrote with a shell command or a subagent, and Back returns.

Fixes

  • Autocorrect on Android: Gboard's correction now lands as you press space. Before, it arrived only with the next key, so the last word stayed uncorrected and the draft jumped.
  • Linux: the desktop builds again with warnings denied.

Upgrading

Update the helper on each computer your phone or desktop connects to. Background subagents and the new progress display need the helper from this release; with an older helper, a session's subagents show as finished once Pi's call ends.

v0.0.3

Choose a tag to compare

@ejpir ejpir released this 07 Oct 00:06

Android reconnect screen

v0.0.2

Choose a tag to compare

@ejpir ejpir released this 06 Oct 22:33

Android

v0.0.1

Choose a tag to compare

@ejpir ejpir released this 30 Sep 22:27

test