github can1357/oh-my-pi v18.10.1

5 hours ago

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

Added

  • Added a Copy button that leads the turn footer under an answer in Tern (⧉ · 2m13s · 71K tok · $0.85 this turn, in place of the clock), which copies that answer

Changed

  • Running agents and background jobs in Tern now share one compact counter over the composer (an icon and a count each, the words on hover) instead of two "N running" pills; each count still opens its own sheet
  • In Tern, /session pin and /usage reset open the same picker sheet as the other small selectors (the active account checked, a confirm strip before a reset is spent, unusable accounts dimmed with the reason); the thinking level picker shows each level's depth as a meter, the plugin and queue mode pickers use badges (version, installed, scope, recommended) and plain-language names instead of bracketed text, and the theme picker no longer repeats "(current)" beside its check
  • In Tern, the text editor an extension opens (and the ask tool's custom answer and note) is now a sheet in the composer's place: the title over its details, the text written straight on the sheet, and Open in editor, Cancel and Submit buttons whose keys show in their tooltips instead of a keycap hint row

Fixed

  • Fixed grep on a single file showing in Tern as separate boxed snippets with no file row or syntax colors; it now looks the same as a grep over a directory

@oh-my-pi/pi-tui

Added

  • AssistantMessageComponent's native turn footer leads with a Copy icon (omp.turn.copy) and a dot instead of the clock icon; it copies the answer's text and shows when the host handles transcript actions

Changed

  • UserMessageComponent's native hover toolbar (omp.user.tools) leads with Copy and Rewind icon buttons (copy, rewind) instead of text labels, then a dot and the time, like the turn usage footer
  • ContextUsageView's native body (on terminals with meter) leads with the tokens used and the room left before auto-compaction, then one stacked bar ticked at the threshold, the breakdown as rows (omp.context.cat, .cat.free, .cat.buffer: swatch, name, tokens, share; the exact count in the row's title) and the snapcompact estimate as labelled rows (omp.context.snap); the blocks meter and legend kv are gone, and contextUsageHead no longer repeats the window size
  • AskDialogComponent's native root is omp.editor.ask (collapsed: omp.editor.ask.hidden, the countdown, the question as omp.ask.summary, Skip and Show): a chosen answer is the accent-toned row (a check also carries the check icon) instead of the highlighted one; multi-select Other… is omp.ask.other.check; the question tabs check answered questions and say their keys in the strip's title; the countdown moves from the head to the action bar beside Hide; the preview is omp.ask.preview; the Review tab leads with omp.ask.notice and lists answers (omp.ask.answers) by question name with inline code mono and no (Recommended) suffix; option descriptions run inline code mono, notes ride the row's detail as em; Submit/Next's tooltip names only Enter (and Space on a multi-select)
  • MCPAddWizard's native sheet asks one question per step: a phase strip (omp.mcpAdd.progress of omp.mcpAdd.phase, toned done/current/upcoming and neutral when no auth was needed), the question and its lead (omp.mcpAdd.title, omp.mcpAdd.tag for optional fields, omp.mcpAdd.lead), then a mono field with a placeholder and its rule or refusal (omp.mcpAdd.field, tone: "error"; omp.mcpAdd.note), choice rows with icons and mono tags (omp.mcpAdd.choices), status lines (omp.mcpAdd.status, omp.mcpAdd.checks, omp.mcpAdd.error) or the review rows (omp.mcpAdd.summary). Cancel, Back and Continue / Save server buttons run Ctrl+C, Esc and Enter instead of a key-hint strip. The connection test shows its own busy step, the OAuth client secret field is masked, and the review saves on Enter (no Yes/No choice)
  • ReportPanel's native body carries the role omp.report.body
  • HookInputComponent describes a dock sheet (omp.overlay.hook-input col) like HookEditorComponent's: the title's first line (omp.hook-input.title, the countdown as omp.hook-input.timer) over its further lines (omp.hook-input.detail), the field (omp.hook-input.field, tone: "error" while a submit was refused) with its placeholder, and Cancel / Submit buttons that run Esc / Enter; the key legend under the field is terminal-only
  • JobsSheet's native body is a master–detail split (omp.jobs.split: omp.jobs.master | omp.jobs.detail): the job list grouped Running / Recent (omp.jobs.group labels), each row a type icon tinted by status with its duration, beside the selected job's status pill, live elapsed and Cancel job (omp.jobs.status), its task title or command (omp.jobs.title / omp.jobs.command), facts (omp.jobs.facts: agent, directory, pids, exit code, artifact) and output (omp.jobs.out, omp.jobs.nooutput); the footer counts running and recent jobs (omp.jobs.summary), and no jobs shows an empty state (omp.jobs.empty). Task jobs no longer draw an agent node here
  • BtwHistoryPanel's native sheet is centered and reads like a mail reader: the questions as two-line rows (omp.btw.history, list omp.btw.list / omp.btw.list.idle while the answer has the keys) beside the selected thread (omp.btw.reader › omp.btw.thread › omp.btw.turn: omp.btw.question / omp.btw.followup, omp.btw.meta, omp.btw.answer, omp.btw.error), the follow-up field under the last answer (omp.btw.composer), and footer buttons Stop answer, Copy answer, Close and Follow up (Cancel and Send while composing) in place of the focus labels and key-hint strip; an empty history is an md sheet (omp.btw.empty)

Fixed

  • CountdownTimer's native elapsed no longer sends stopped: 0, which froze every native countdown (extension input, selector and editor prompts) at zero from the start
  • The native backend's focus now reaches a field inside an overlay/picker sheet hoisted into the layer from a dock component (the MCP add wizard, login), so that field shows the live caret and focus ring
  • MCPAddWizard keeps a refused name or URL in its field, clears a stale refusal on Back, ignores a connection test that settles after the user stepped back, and Edit OAuth settings after a failed sign-in opens the settings again instead of doing nothing

Full Changelog: v18.10.0...v18.10.1

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

NewReleases is sending notifications on new releases.