Repository navigation
Releases: QQSHI13/fox-agent
Releases · QQSHI13/fox-agent
Release list
v0.6.0
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
fileagainst 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)...
v0.5.0-beta.1
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
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
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
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.1
What's Changed
New Contributors
Full Changelog: https://github.com/QQSHI13/fox-agent/commits/v0.3.0-beta.1