Skip to content

Releases: QQSHI13/fox-agent

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:20
0832ca1

What's Changed

📦 Other Changes

  • release.yml: tolerate an already-bumped tree (no-op commit/tag) so a re-trigger after a manual version bump still builds+publishes binaries (0832ca1)
  • bench: refresh results (bc99a5d)
  • bench: refresh results (11d8f24)
  • abort: settle in-flight live tools as 'interrupted' — on abort a tool's result is never persisted (no tool_end), so the pair kept its 'running' look forever with an empty body. Mark the head '— interrupted' and clear liveTools so a partially-completed tool reads as interrupted, not hung (27e8fef)
  • bench: refresh results (bae19ac)
  • bench: refresh results (172078b)
  • bench: refresh results (eb6c4e0)
  • refresh: preserve the live tail (in-flight tool pair, think, subagent, ephemeral) + welcome across the store rebuild — fixes ESC-mid-turn dropping unpersisted items. Exclude ref items (settled tool bodies) from the live tail so head+body stay together (fixes toolbody-split). Suite 868 green. (0948e60)
  • steer: fix the end-of-turn late-steer path — persist-then-continue DRAINED the queue, so the re-entered loop found nothing to inject and the steer was orphaned (answered only by a later turn). Re-peek instead: continue reaches the top-of-loop drain, which injects the steer as a real step-boundary user message + emits 'steered', so it's answered in-turn (a84f63a)
  • steer: a late steer (arriving in the window between the end-of-turn peek and the turn's return) is ANSWERED in-turn, not persisted-then-stranded — persistParkedSteers returns drained, and the end-of-turn exit continues to answer it (d18317b)
  • bench: refresh results (d6a4e50)
  • clipboard: extract the platform copy/paste ladder (clipRead/clipWrite/osc52Encode + WSL/Windows-interop/OSC52 routes) to tui/clipboard.ts; app.ts 4596->4348 (755ff6f)
  • app.ts: host the extracted wizard module — remove the inline question-wizard block (startPrompt/askPrompt/promptRows/promptKey/etc), delegate to tui/wizard.ts (06e3a1d)
  • add tui/wizard.ts: the question wizard as a testable module (not yet wired into app.ts) (5d3aa5a)
  • bench: refresh results (860436d)
  • bench: refresh results (c3052c7)
  • walkGrep fallback: announce truncation at limit like the rg path (CI has no ripgrep; the silent cap made grep lie about completeness) (68e30bb)
  • fix CI: WSL detection tests are host-independent (inject /proc/version); fix WSLENV typo (1926dfe)
  • bench: refresh results (983e2d3)
  • bench: refresh results (ad306be)
  • bench: refresh results (3b5a1de)
  • bench: refresh results (7ca165e)
  • Style: add faint (SGR 2) to the Style interface + sgrOf; test its emission (da8f5db)
  • test recent-work helpers: keepTail, nodeRendersToNothing, registerPluginProviders; export keepTail (e5b52a7)
  • refresh(): extract diff-and-touch to a pure exported helper (diffTouchKeys) + unit tests (43ff8cb)
  • Fix IPv6 SSRF guard, live settings, repl full env, steer-at-end, diff-and-touch refresh; unify estimator, model-step helper, provider registration; read cap; remove tuiRich; tests hermetic (FOX_AGENT_CONFIG); C/D/F/G/missingRequired/budget fixes (016b2e0)
  • bench: refresh results (8b75c4e)
  • turn: an interrupt never waits on the tools; a capped turn keeps its steers (d5db285)
  • bench: refresh results (cdc1663)
  • tui: copy through a platform-shaped route; never truncate silently (d690266)
  • bench: refresh results (0232aa1)
  • bench: refresh results (20d83f4)
  • prompt: ## Style stands alone; Paths covers every path-taking tool (6873c42)
  • lsp: resolve file against ctx.cwd like every other path-taking tool (bf47850)
  • prompt: teach relative paths, the post-write check, and prompt junk deletion (5601e53)
  • glob/grep: a caller-chosen limit, and an announced truncation (b5cfaa6)
  • read: attach pdf for models whose catalog lists the pdf modality (cf3f516)
  • task: kill one background subagent by job id (84031d8)
  • tools: refuse arguments the schema does not declare (1c9e4e1)
  • turn: persist a steer parked at end-of-turn instead of stranding it (b132b88)
  • tui: keep typed leading spaces, and scope the caret's EOL fallback to its line (216a121)
  • Revert the directory-plugin work: 561 unreachable lines and a dead dependency (dccf8a9)
  • background work announces itself when it finishes (e12278f)
  • plugins: install dependencies with an embedded npm resolver (304b9ee)
  • plugins: manifest + dependency graph for directory plugins (467b0cd)
  • bench: refresh results (f56262b)
  • wizard: wrap long option labels instead of truncating them (55fd91e)
  • remove htmls (f81102f)
  • bench: refresh results (95e0b4b)
  • bench: refresh results (1916fc8)
  • bench: refresh results (56eda0b)
  • bench: refresh results (84a3f08)
  • highlight: more fence colors, all themeable; fix marker hit region + tool-body selection (723acf5)
  • layout: one marker gutter, shared by every consumer (412c574)
  • highlight: give fences a real code palette again (7 colors, was 4) (8a5af08)
  • highlight: swap Shiki for @speed-highlight/core — 15x lighter, ~400x faster (6fad89e)
  • bench: refresh results (1611dba)
  • bench: refresh results (322fc27)
  • bench: refresh results (53a8a18)
  • mac: installer cannot complete, and copy/paste silently lie (0ee4694)
  • share: no message caps, rebuilt page; steer survives a turn-end race; bench pss fix (841f6f2)
  • share: /share renders a session as one self-contained offline HTML file (b13b48f)
  • tui: stream an in-flight tool's output instead of hiding it (26d408b)
  • bench: refresh results (00661a2)
  • tui: an in-flight tool shows its head at tool_start again (96794a2)
  • transfer: stream the session db, and guard zip bombs by shape not size (cb70eb5)
  • bench: refresh results (881fcc7)
  • bench: refresh results (51ac005)
  • import: chmod the installed session 0600, not 0644 (1205749)
  • task: a background subagent outlives the turn, not the session (e4a691f)
  • bench: refresh results (ab1d203)
  • bench: refresh results (b46d52e)
  • tui: fix the selection regression on marked rows — two corrections (8e75d40)
  • tui: map clicks to content columns, not a flat column-1 (dcfaf30)
  • tui: fix the wizard's filter/answer box column and the stale option list (b62bd26)
  • bench: refresh results (c4e9843)
  • providers: read the format from the endpoint, not the provider name (4d16791)
  • tui: theme the Shiki palette and the dark-token substitute (04ea9c7)
  • providers: pass maxOutputTokens from the model registry (028a5d1)
  • bench: refresh results (5f92332)
  • bench: refresh results (1d40318)
  • tui: fix ReferenceError crash in the spinner tick (3971c6c)
  • tui: /todo renders as a real task list in the output panel (1994a4a)
  • tui: fix three [N] marker defects — displacement, selection hole, repeat (2bc26d4)
  • tui: stamp live agent text with its seq — [N] marker was missing on streamed messages (0487cce)
  • tui+todo: in-flight tools look normal; todo tool returns just 'updated' (51bf3a1)
  • bench: refresh results (92ec60d)
  • tui: streaming marker corrects to the assistant node's real seq (186786f)
  • tui: theme-customizable spinner + running-tool color; more color slots (231d345)
  • tui: running tools show a live spinner head, appearing at tool_start (1b2bbcf)
  • openai-compatible: race the stream against abort — ESC returns instantly (8988370)
  • bench: refresh results (b2762a1)
  • bench: refresh results (6702a8f)
  • bench: refresh results (006a5bc)
  • cli: grouped, color-coded help; subcommands read as actions, flags as options (583088b)
  • cli: a valued flag with no value is a usage error, not an empty override (fe8d9bd)
  • acp client: kill child when session/cancel is ignored (abort race) (7a6b4f9)
  • exec: reap exited-but-never-polled background jobs after 10min (7ec8212)
  • lock: retry path no longer claims a lock it does not hold (TOCTOU) (5dc16cb)
  • store: cache prepared statements per (db, sql) — stop leaking one per call (e47200d)
  • mini: busy spinner, ctrl+c abort, richer colors (b178cc9)
  • bench: refresh results (cbca85e)
  • cli: read VERSION from core/version.ts, not loop/prompt.ts (123d6a3)
  • markdown: unordered bullet is the larger • (was ·) (980b775)
  • bench: refresh results (7bf0dc7)
  • markdown: render unordered bullets as -, not a bare dash (05b84f6)
  • bench: tui_first_input must return samples, not min — fixes TypeError in CI (a4c060e)
  • bench: refresh results (e78da25)
  • bench: report min/p50/p95 per timing metric, not just best-of-N (b960bfd)
  • bench: measure render, not literal echo; settle 2s for latency (65be2ee)
  • bench: refresh results (fb07df3)
  • build(deps-dev): bump typescript from 5.9.3 to 7.0.2 (#23) (8c16d4f)
  • bench: refresh results (50ccff4)
  • highlighter: repainted cached-flat rows when a Shiki block lands (a28e243)
  • bench: refresh results (eeea0f9)
  • highlighter: delete dead regex fallback (highlightLine/KEYWORDS/REGEX_LANGS) (36adb00)
  • prompt: drop doc-file list; add runtime-header doctrine. input: fix caret after word-wrap (4a6aa70)
  • input box: word-aware wrap, matching the transcript (7d9e62c)
  • bench: refresh results (1779155)
  • bench: refresh results (9571a66)
  • token estimate: CJK-aware (ascii/4 + non-ascii*1), matching kimi-code (b315310)
  • highlighter: remove rich toggle + regex fallback; compaction: drop 131072 cap (dd2fecd)
  • bench: refresh results (0f8e993)
  • bench: refresh results (a03f1e3)
  • selection: highlight the last selected cell (a62bba9)
  • highlighter: tokenize the whole fence block, not one line at a time (9b20116)
  • marker: first-row-only click hit-test, uncolored chip gap (8096e83)
  • bench: refresh results (60c0266)
  • Highlighter: emit real Shiki token colors; marker: continuation lines align left (278cccf)
  • Transcript markers: column-0 chip, single-chip tool pairs, clickable streaming tail, wizard input save/restore (1b10222)
  • bench: refresh results (738792c)
  • bench: refresh results (e615a73)...
Read more

v0.5.0-beta.1

v0.5.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:00

What's Changed

📦 Other Changes

  • bench: refresh results (102b7ae)
  • docs: repl, ctx, mini, subcommands (6d551ae)
  • repl/ctx follow-ups: tool kinds, pins, doctrine (aafb541)
  • fox json/mini/acp subcommands; mini header, colors, completion, queue (d3de790)
  • bench: refresh results (965cb5d)
  • bench: refresh results (7eb9bac)
  • ctx tool absorbs ctx_edit, adds search/stats/restore/query-delete (cc2855a)
  • bundled:repl in-process JS scratchpad with direct tool calls (156843f)
  • bench: refresh results (7faf38a)
  • fox -c resolves indices at the listing limit (0a2dfa5)
  • regression tests for the bug-hunt batch (2324be8)
  • bug hunt: config paths, login/fork/thinking, paint/click geometry, hooks (b3bbd3e)
  • bench: refresh results (9e2a7b5)
  • welcome block rebuilds live when config changes (46bcb27)
  • bench: refresh results (6d6430c)
  • docs: multi-provider login via profiles (3a45f5a)
  • /login manages provider profiles: save, switch, headless (28440cc)
  • bench: refresh results (9d97498)
  • config I/O through smol-toml; add saveProviderProfile (fa27707)
  • /model hides the current provider's duplicate row (af67e20)
  • selection granularity: drop wheel releases, menu wheel ±1, snapshot options (b3045d9)
  • bench: refresh results (5559775)
  • tests + docs for /plugin rename and help colors (3b87789)
  • /plugin renames /plugins (old spelling kept as alias); colorful fox --help (c7b4bad)
  • bench: refresh results (0f808e1)
  • tests + docs: provider plugins, wizard, colors (52baf83)
  • /plugins on the standard wizard UI; colors for fox ls/plugins (7710c81)
  • one bundled plugin per provider; switched-off formats stop resolving (11ffb6e)
  • bench: refresh results (9758a58)
  • tests + docs for plugin management (7ce7b23)
  • /plugins manager + fox plugins: list, picker, on/off/add/rm/info (eb60a37)
  • config: shared top-level array patcher; loader reports per-file outcomes (1c92585)
  • bench: refresh results (d8754bb)
  • docs: plugin surface (packs, commands, bundled capabilities) (5119bde)
  • tests: bundled provider seed, packs, plugin commands (3f4efb0)
  • plugins gain commands, mcpServers and agents; MCP merges as bundled:mcp (e8e84c5)
  • providers ship as the bundled:providers plugin (one registry) (fbb68da)
  • bench: refresh results (edcb7de)
  • remove scratch tracker from the repo (lives in home dir) (da54c60)
  • bench: refresh results (53c7d6b)
  • docs: acpHistory replay scope; harness fix tracker (8a44728)
  • exec: full:true per-call flag lifts the output cap (31bca47)
  • provider display name in picker, /model, welcome block and status bar (c72efd1)
  • tui: clickable wizard select options (click highlights, second click submits) (387accf)
  • tui: route wheel/page keys by position (dock scrolls input) (5e93d99)
  • tui: one copy path, one confirmation, input selection clears (b6c5ad2)
  • tui: infinite transcript scroll (drop 300-node cap) (3245a89)
  • bench: refresh results (bed1ef2)
  • bench: symlink opencode-v1 so its footprint weighs the real package (332ffcd)
  • bench: refresh results (1ce725a)
  • bench: rebase+retry on commit-back so push races can't lose data (955a7c0)

Full Changelog: v0.4.0...v0.5.0-beta.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 12:43

What's Changed

📦 Other Changes

  • bench: comma allow-scripts, py3.12 for aider, name-based opencode labels (4caa6aa)
  • bench: refresh results (6bba9c3)
  • bench: fix installs — npm setup, venv, allowed scripts, real URLs (1ff8768)
  • bench: real TUI first-char + bundle + TTFT + memory action with top-of-README graphs (1285461)
  • trust: single-keypress prompt, no enter needed (abd41ce)
  • markdown: bordered tables with separator alignment (5701238)
  • tui: withdraw pops queue back, steers stay visible, streaming matches settled (97de5d4)
  • turn: full args on tool events so streaming matches settled (d8994a9)
  • steer: peek + withdraw so parked messages stay visible and retrievable (9db7e32)
  • a2a fixes, acp lock refusal, README benchmarks, provider-identity label (cb69888)
  • endpoint-models cache: sha256 instead of sha1 (13643d9)
  • remove stray test-run databases committed by mistake (e6965d6)
  • picker cwd column, expandable tool heads, OSC 9;4 progress + end toast (80036d1)
  • /login wizard: conditional model steps (42387f4)
  • install: always enable colors, remove tty check that killed progress bar when piped (af1abfa)
  • install+upgrade: use unicode escape for parallelogram glyph (7da670b)
  • install+upgrade: parallelogram progress bar, no gaps (84c7196)
  • install: parallel Content-Length fetch, instant header output (bd64858)
  • install+upgrade: sub-cell precision, pad partial cell with dim blocks to eliminate gap (dd8df32)
  • install: green progress bar, seamless empty portion (23e2fe3)
  • install: initialize SPEED variable before progress loop (6efe089)
  • install: fix printf format errors in progress bar rendering (965ffd7)
  • install: custom progress bar engine with smooth animation, fixed ANSI codes (a18c7df)
  • install: rootless default (~/.local/bin), colorful output, parallel downloads (12e2e4f)

Full Changelog: v0.3.1...v0.4.0

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 13 Sep 03:04

What's Changed

📦 Other Changes

  • docs: update readme, contributing guide, security policy, issue/pr templates, and install script (ba728b1)
  • tui: cap select answer box height to max 5, min 1 (f5bcbd2)
  • 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)

Full Changelog: v0.3.0-beta.2...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 02:16

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

v0.3.0-beta.2

v0.3.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 02:16

v0.3.0-beta.1

v0.3.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 12:33

What's Changed

  • fix: resolve full code review — correctness, leaks, perf, coverage by @QQSHI13 in #1

New Contributors

Full Changelog: https://github.com/QQSHI13/fox-agent/commits/v0.3.0-beta.1