github badlogic/pi-mono v0.32.0

latest releases: v0.55.4, v0.55.3, v0.55.2...
one month ago

Breaking Changes

  • Queue API replaced with steer/followUp: The queueMessage() method has been split into two methods with different delivery semantics (#403):
    • steer(text): Interrupts the agent mid-run (Enter while streaming). Delivered after current tool execution.
    • followUp(text): Waits until the agent finishes (Alt+Enter while streaming). Delivered only when agent stops.
  • Settings renamed: queueMode setting renamed to steeringMode. Added new followUpMode setting. Old settings.json files are migrated automatically.
  • AgentSession methods renamed:
    • queueMessage()steer() and followUp()
    • queueMode getter → steeringMode and followUpMode getters
    • setQueueMode()setSteeringMode() and setFollowUpMode()
    • queuedMessageCountpendingMessageCount
    • getQueuedMessages()getSteeringMessages() and getFollowUpMessages()
    • clearQueue() now returns { steering: string[], followUp: string[] }
    • hasQueuedMessages()hasPendingMessages()
  • Hook API signature changed: pi.sendMessage() second parameter changed from triggerTurn?: boolean to options?: { triggerTurn?, deliverAs? }. Use deliverAs: "followUp" for follow-up delivery. Affects both hooks and internal sendHookMessage() method.
  • RPC API changes:
    • queue_message command → steer and follow_up commands
    • set_queue_mode command → set_steering_mode and set_follow_up_mode commands
    • RpcSessionState.queueModesteeringMode and followUpMode
  • Settings UI: "Queue mode" setting split into "Steering mode" and "Follow-up mode"

Added

  • Configurable double-escape action: choose whether double-escape with empty editor opens /tree (default) or /branch. Configure via /settings or doubleEscapeAction in settings.json (#404)
  • Vertex AI provider (google-vertex): access Gemini models via Google Cloud Vertex AI using Application Default Credentials (#300 by @default-anton)
  • Built-in provider overrides in models.json: override just baseUrl to route a built-in provider through a proxy while keeping all its models, or define models to fully replace the provider (#406 by @yevhen)
  • Automatic image resizing: images larger than 2000x2000 are resized for better model compatibility. Original dimensions are injected into the prompt. Controlled via /settings or images.autoResize in settings.json. (#402 by @mitsuhiko)
  • Alt+Enter keybind to queue follow-up messages while agent is streaming
  • Theme and ThemeColor types now exported for hooks using ctx.ui.custom()
  • Terminal window title now displays "pi - dirname" to identify which project session you're in (#407 by @kaofelix)

Changed

  • Editor component now uses word wrapping instead of character-level wrapping for better readability (#382 by @nickseelert)

Fixed

  • /model selector now opens instantly instead of waiting for OAuth token refresh. Token refresh is deferred until a model is actually used.
  • Shift+Space, Shift+Backspace, and Shift+Delete now work correctly in Kitty-protocol terminals (Kitty, WezTerm, etc.) instead of being silently ignored (#411 by @nathyong)
  • AgentSession.prompt() now throws if called while the agent is already streaming, preventing race conditions. Use steer() or followUp() to queue messages during streaming.
  • Ctrl+C now works like Escape in selector components, so mashing Ctrl+C will eventually close the program (#400 by @mitsuhiko)

Don't miss a new pi-mono release

NewReleases is sending notifications on new releases.