Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 02:16
· 570 commits to main since this release

What's Changed

✨ Features

  • feat: /reload, /new config parity, fox-agent alias, full theming, marker-echo defense (1b3f064)
  • feat: TUI themes — presets, plugin-registered themes, /theme command, config key (e9f7def)
  • feat: bundled plugins, lifecycle hooks, session cleanup, configurable caps, /new welcome (24af9df)
  • feat: multi-provider profiles, deep model config, disabledPlugins, cross-provider /model (1b872c1)
  • feat: session previews everywhere, semver-correct versionCmp, drop windows builds (7a834ca)

📦 Other Changes

  • release: generate structured release notes (7a22ddb)
  • wow (d1d753c)
  • code scanning: state-machine html-to-text (no tag regexes); unbiased randomUUID session-id suffix (c0d6c3b)
  • build(deps): bump actions/checkout from 4 to 7 (#5) (cc96cb8)
  • build(deps): bump softprops/action-gh-release from 2 to 3 (#2) (bc54c2d)
  • build(deps): bump actions/download-artifact from 4 to 8 (#4) (77d2747)
  • build(deps): bump actions/upload-artifact from 4 to 7 (#3) (bd425ef)
  • code scanning: CSPRNG session ids; loop+entity-map html sanitization in fetch; least-privilege permissions in ci workflow (94c89e7)
  • /thinking: reasoning effort switch (low|medium|high|default) — select wizard in TUI, provider-native options per format, saved to global config; hints popup capped back at 5 rows (098b9b5)
  • tui: resume hint on exit (fox -c N); opt-in rich mode (tuiRich) — syntax-tinted code fences, diff-colored tool output (8cf4192)
  • tui: command output floats as an overlay above the dock (/todo, /help, switch confirmations) — dismissed by any key or click, never pushes the transcript; slash hints keep top priority (6b546ef)
  • fix review findings: saveGlobalConfig preserves untouched keys; live provider in plain mode; serialized pty; A2A idle watchdog; exec utf-8 tear; abortable backoff; abort gated on signal; cap check before steer/compact; hint arrows; endpoint cache ttl on disk; selection drops zero-width like paint (66726cd)
  • tui: custom provider per api format in /model; endpoint /models outranks catalog for ctx stats; expandable tool heads; hardware-size limits; single-flush frames (cce2ca1)
  • chore(ci): add dependabot for npm and github-actions (85b2669)
  • readme: badges (ci/release/license/bun) + releases link in the header (eaaa8fb)
  • tui: place the input caret from THIS frame's paint (was one frame stale), show it from startup (e7c05ae)
  • docs: AGENTS.md, CONTRIBUTING.md, CLAUDE.md symlink; README refresh (200+ providers, steering, mentions, locks) (c00bdab)
  • tui: draggable scrollbar (press jumps, drag scrubs) (213d5bc)
  • providers: send user-agent fox-agent/ and x-opencode-session on every request (profile headers still win) (47d74da)
  • tui: quarantine stray process/console output to the debug log, replay to stderr after exit (c61e59a)
  • tui: drag-and-drop/@path mentions inline text files at send; caret only moves when it moved (no cursor flicker while streaming) (4043c43)
  • tui input: shift+arrow selection, up/down visual-line motion, mouse caret+drag-select in the dock, wheel scrolls open selects, ctrl+c copies input selection (f200e84)
  • steering: ctrl+s injects text mid-turn at the next step boundary (steered event; queue drains too) (a0b3cd6)
  • tui: no ↳ anywhere; subagent progress keyed without retry suffix, one line per delegation (f279f9e)
  • /reload re-imports plugins (cache-busting reloadPlugins); robust preset resolution test (c4b98fc)
  • tools: drop the read-before-write/edit gate — write overwrites, edit's exact-match contract is the guard (cb78cc4)
  • /model: provider-first wizard (provider select, then model select for that provider) (cb46d00)
  • config: resolveProfile expands catalog preset ids (fixes 'unknown provider opencode'); FOX_AGENT_CONFIG env override; fox -c opens all-dirs picker when no local sessions; hermetic config tests (78dc456)
  • tui: render GFM tables as aligned columns (bold header + rule), not raw pipes (32e8f5e)
  • /model: hide logged-out providers; logged-in endpoints list their own /models (cached, catalog fallback) (8e54735)
  • presets: drop the tokenguard local preset; provider errors show HTTP status (previous commit) (7fd30c2)
  • errors: provider errors lead with their HTTP status (HTTP 403: …) (3694ec5)
  • acp: acpHistory config scopes session/load replay (full | last | N trailing nodes) (e4c4bbc)
  • sessions: cross-process open lock — second opener (tui/acp) becomes a read-only viewer (69d6c55)
  • sessions: 'a' toggles picker scope between cwd and all directories (fox -c and /sessions) (41628f3)
  • tui: queue rows stacked above input bar, ctrl+up picker, flash visible while busy (542e8b3)
  • task: background mode — detach, poll, reap; subagents die with their session (8047406)
  • TUI: text-only glyphs, arrow-style collapsed outputs, fix welcome ↳, subagent dedupe (e0a01b0)
  • TUI: tool heads name what ran, real newlines when expanded, ctrl+t expands all, slash runs mid-turn, visible queue (da7f22c)
  • reap index rows whose session file was deleted (bb75945)
  • defer session creation to first message; no banner on resume (8936e30)
  • exec: background jobs + live output streaming to the TUI (9dd9952)
  • /todos -> /todo, ephemeral output like /help (ee579fc)
  • render is verbatim: strip echoed [mN] at store time only (8f8aba4)

Full Changelog: v0.3.0-beta.1...v0.3.0