github can1357/oh-my-pi v16.1.0

latest release: v16.1.1
6 hours ago

@oh-my-pi/pi-agent-core

Added

  • Added SoftToolRequirement support to getToolChoice: a host can require a tool by returning a soft requirement instead of a hard ToolChoice. The loop injects the supplied reminder once (leaving tool_choice on auto), and escalates to a one-turn forced choice — skipping any detour tool batch — only if the model fails to call the required tool, avoiding the provider message-cache invalidation of forcing every turn.
  • Added pruneToolDescriptions option to reduce token usage by stripping tool descriptions from provider-bound specs

Fixed

  • Improved token estimation accuracy for compaction summaries containing multi-block content

@oh-my-pi/pi-ai

Added

  • Added utility functions to strip schema descriptions for optimized LLM context usage

@oh-my-pi/pi-coding-agent

Added

  • Added a prompt-cache miss marker: a slim ⊘ cache miss · <n> tokens divider above an assistant turn whose request lost the provider prompt cache. Detected from per-turn usage — the previous turn cached a meaningful prefix but this request read none of it back and reprocessed the prompt (e.g. after a thinking-level / service-tier / model change, tool or system-prompt change, or a history rewrite). Reports the reprocessed token count. Toggle with the display.cacheMissMarker setting (Appearance → Display, on by default).

Changed

  • Optimized preview workflows by removing forced tool choices, reducing prompt cache invalidations
  • Unified injected message styling with consistent rounded outlines and icon-tagged headers
  • Refreshed branch summary messages with a uniform banner style to match compaction points
  • Updated skill invocation UI with a compact header, home-shortened paths, and dynamic line counts
  • Refined session context to utilize history blocks instead of raw images for snapcompact summaries
  • Refreshed the skill-prompt transcript message to match the rest of the TUI: an icon-tagged ✦ skill <name> header (with invocation args trailing), a single meta line with a home-shortened, click-to-open path in the accent color and the prompt size in muted, and a rounded outline around the card. Replaces the old [skill] label with the flat Skill:/Path:/Prompt: key/value dump (which also leaked the absolute home directory).
  • Refreshed the default custom/hook transcript message frame to a rounded, icon-tagged card: the [customType] bracket label is replaced by an <icon> <type> header (📦 for extension messages, 🪝 for legacy hook-role messages) with a subtle outline, matching the skill card. Covers every extension/hook custom type without a bespoke renderer.
  • Refreshed the branch-summary transcript message to render as the same slim divider banner as /compact, handoff, and snapcompact (⑂ branch · ctrl+o, summary revealed on expand) instead of a [branch] box.
  • Optimized network traffic by stripping tool descriptions from provider tool schemas
  • Renamed the prompt setting from repeatToolDescriptions / "Repeat Tool Descriptions" to inlineToolDescriptors / "Inline Tool Descriptors" and enabled inline descriptors by default.
  • Snapcompact compaction summaries now reach the model as ordered history blocks instead of one lead-in text block plus appended images: plain text at the oldest edge, an imaged middle, then plain text at the newest edge. This matches the new text-first snapcompact archive layout and preserves chronological order in the provider prompt.
  • Fixed /dump output repeating the tool inventory twice when inlineToolDescriptors is enabled.
  • Unified TUI border corners on the rounded style: tool-result frames, overlays, code fences, debug frames, and the interactive bash box now draw rounded corners (╭╮╰╯) to match the editor and message cards, instead of mixing rounded boxes with sharp (┌┐└┘) ones. boxRound now carries the sharp tee/cross junction glyphs (no rounded variant exists), so dividers still honor boxSharp.tee*/cross theme overrides. Markdown tables intentionally keep the fully sharp boxSharp set; its corner tokens now affect tables only.

@oh-my-pi/snapcompact

Added

  • Added historyBlocks(archive) to reconstruct ordered history blocks from archive data

Changed

  • Refactored compaction to be text-sourced, re-rendering from unified Archive.text source
  • Implemented foveated archive layout (HQ edges, dense LQ middle) for optimized context usage
  • Raised MAX_FRAMES_DEFAULT to 80 and consolidated PROVIDER_IMAGE_BUDGETS
  • Updated OpenRouter to use standard 90-image budget
  • Updated prompt instructions to clearly distinguish between plain-text and image history regions
  • Options.maxFrames is now an upper limit clamped to MAX_FRAMES_DEFAULT, not a per-call default
  • Rewrote the resume summary prompt into a structured reading guide (turn headings, grid/two-column layout, ink notes) and render file operations inline as a FILES section instead of a spliced <files> tag

Fixed

  • Fixed context budget undercounting by raising FRAME_TOKEN_ESTIMATE to 5024
  • Improved file list formatting in compaction summaries

@oh-my-pi/pi-tui

Added

  • Box now accepts an optional border (box-drawing glyphs + colorizer) and exposes setBorder(), drawing a colored outline around its padded/background content. The border is automatically dropped at widths too narrow to frame so a bordered box never overflows its given width.

Full Changelog: v16.0.11...v16.1.0

Don't miss a new oh-my-pi release

NewReleases is sending notifications on new releases.