项目文件夹

文件
wehub-resource-sync f99010fae1
CI / lint (push) Failing after 1s
CI / frontend (push) Failing after 1s
CI / scripts (push) Failing after 1s
CI / Go Test (ubuntu-latest) (push) Failing after 0s
CI / frontend-node-25 (push) Failing after 1s
CI / docs (push) Failing after 0s
CI / coverage (push) Failing after 0s
CI / e2e (push) Failing after 0s
Docker / build-and-push (push) Failing after 1s
CI / integration (push) Failing after 4m43s
CI / Go Test (windows-latest) (push) Has been cancelled
CI / Desktop Unit Tests (Windows) (push) Has been cancelled
Desktop Artifacts / Desktop Build (Linux (arm64)) (push) Has been cancelled
Desktop Artifacts / Desktop Build (Linux) (push) Has been cancelled
Desktop Artifacts / Desktop Build (Windows) (push) Has been cancelled
Desktop Artifacts (macOS) / Desktop Build (macOS (aarch64)) (push) Has been cancelled
Desktop Artifacts (macOS) / Desktop Build (macOS (x86_64)) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:36 +08:00

2675 行
128 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
title: Changelog
description: Release history for AgentsView
---
## 0.37.5
<small>2026-07-09</small>
**New features**
- Prefer richer **`agy-reader` trajectory sidecars** when parsing Antigravity
IDE sessions, falling back to the existing heuristic decode when a sidecar is
missing, malformed, or does not cover the session's database steps.
**Improvements**
- Speed up configured HTTP **full remote syncs** by ingesting local and remote
sessions through one batched temporary-database rebuild with FTS suspended,
then rebuilding search once and swapping atomically. `--full` now reparses
every session without retransferring unchanged mirror files from
manifest-capable spokes; older HTTP-capable spokes retain the full-archive
compatibility fallback.
**Bug fixes**
- Identify locally ingested sessions by the machine's hostname instead of the
ambiguous `local` label, and keep full-rebuild safety independent when a
configured remote has the same hostname as the collector.
- Remove **recommended-plugin context injected into Codex sessions** from
parsed transcripts so it no longer appears as user-authored content.
- Include **overnight session activity** in date-filtered results by matching
dates against session activity windows instead of only session start dates.
**Acknowledgements**
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for `agy-reader`
trajectory sidecar support in Antigravity IDE sessions.
- Thanks to [Wes McKinney](https://github.com/wesm) for Codex
recommended-plugin filtering, overnight date-filter support, and release
documentation.
---
## 0.37.4
<small>2026-07-09</small>
**New features**
- Add **incremental HTTP remote sync** backed by a persistent per-host mirror.
After the initial archive download, the collector compares a remote manifest
with its mirror and requests only changed files when fewer than half of the
manifest files need fetching. Deleted remote files are removed from the
mirror without deleting sessions already stored in the local archive.
**Improvements**
- Include **GPT-5.6 model pricing** for the base alias and the Sol, Terra, and
Luna variants in the embedded fallback catalog, so fresh installs and offline
usage reports can estimate their costs without a network fetch.
- Explain **default `session list` exclusions** on stderr when one-shot or
automated sessions are hidden, including the number in each category and the
flags that include them. Structured stdout remains unchanged for scripts.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for incremental HTTP remote
sync, GPT-5.6 fallback pricing, and release documentation.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for making
the `session list` default exclusions visible.
---
## 0.37.3
<small>2026-07-09</small>
**Bug fixes**
- Restore **optimized SQLite builds for Linux release binaries and Docker
images** by preserving Go's default `-O2 -g` cgo flags when overriding
`CGO_CFLAGS`, improving full-text search and query performance in those
artifacts.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for restoring optimized
release and Docker SQLite builds.
---
## 0.37.2
<small>2026-07-08</small>
**Improvements**
- Speed up **periodic syncs for unchanged OpenCode-family SQLite containers**.
Once a full pass has verified every session in a shared OpenCode-format
SQLite database, later idle passes can skip the container before per-session
fingerprinting by comparing SQLite write markers for the database and WAL.
- Reduce **heap retention after large sync backfills** by periodically
returning memory to the operating system while archived signal and secret
recomputations walk large message and tool-result payloads.
**Bug fixes**
- Show **OpenCode tool-call skill names** in tool analytics by extracting the
dedicated `skill` tool input and applying the existing `SKILL.md` inference
heuristics to OpenCode read and shell calls.
- Shut down **watcher-triggered syncs** cleanly by threading the server run
context through changed-path syncs, prioritizing watcher stop signals, and
making unwatched-directory polling exit on cancellation.
- Fix **desktop app icon spacing** by insetting the shared icon artwork and
regenerating the checked-in PNG, ICNS, and ICO assets.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for
speeding up unchanged OpenCode-family SQLite container syncs.
- Thanks to [Rod Boev](https://github.com/rodboev) for OpenCode skill-name
extraction and large-backfill memory reductions.
- Thanks to [Wes McKinney](https://github.com/wesm) for watcher shutdown fixes,
desktop icon spacing, and release documentation.
---
## 0.37.1
<small>2026-07-08</small>
**New features**
- Add **semantic and hybrid search** backed by an opt-in local embeddings
index. AgentsView now embeds user-message units and grouped assistant runs,
supports `agentsview embeddings build|list|activate|retire`, adds
`session search --semantic` and `--hybrid`, and returns conversation-unit
citation ranges with lineage metadata for sidechain and subagent hits.
- Add **content-free session summary export** with a v1 JSON/NDJSON contract.
`agentsview export sessions` emits session metadata, usage totals, pricing
provenance, project identity, stable cursors, and reset errors without
transcript text.
- Add **single-session insight analysis** from the session header. Session
analysis uses the existing insight-generation pipeline with
`agent_analysis` plus `session_id`, builds a prompt from that session's
messages, timing, and usage, and stores the result with the other insights.
- Add **Posit Assistant, Windsurf workspace chat, Qoder, and ZCode session
support**. These providers cover Posit Assistant workspace conversations,
Windsurf `workspaceStorage` chat state, Qoder project transcripts and
sidecars, and ZCode's local SQLite session database.
- Add **Korean (`ko`) localization** and register it alongside English,
Simplified Chinese, and Traditional Chinese.
- Render **Mermaid fenced code blocks** in markdown messages while keeping the
source readable if the Mermaid runtime cannot load.
- Show **session context and detailed token breakdowns** in usage views,
including session-level output-token and peak-context details.
- Add **copy buttons for tool blocks**, with separate affordances for tool
input and output content.
- Add **worktree layout mappings** in Settings. Worktree mappings now support
both explicit path-prefix mappings and the `repo_dot_worktrees` layout for
paths like `<prefix>/<repo>.worktrees/<branch>/...`.
- Add **`sync_include_cwd_prefixes`** to `config.toml` so local sync can ingest
only sessions whose working directory falls under an allowed path prefix.
**Improvements**
- Render **CLI session search results as an aligned table** for the default
no-context human output, with terminal-width-aware truncation.
- Reduce **push sync churn** by ignoring volatile stat fields when deciding
PostgreSQL push candidates and by lowering DuckDB write amplification.
- Keep **unchanged OpenCode-family container sessions** out of sync updates, so
container rows that did not change no longer churn during sync.
**Bug fixes**
- Parse **Codex custom tool calls** correctly so custom tool invocations are
preserved as tool blocks instead of falling through malformed paths.
- Apply **`config.toml` port settings** to the active server config before
startup, so configured ports affect the runtime server just like CLI flags.
- Preserve **calendar range picker selections** after range changes in the
frontend.
- Apply **agent exclusions consistently in usage filters**, including Usage API
and frontend paths that previously missed the exclusion set.
- Include **subagent sessions in activity report cost totals**, matching the
session rows that contribute to the report.
- Map **OhMyPi `parentSession` headers** to `parent_session_id`, preserving
parent-child lineage for OMP transcripts.
- Skip **local git discovery for sessions from other machines**, avoiding
host-local repository probes for synced foreign-machine sessions.
- Fix **Linux release builds** by compiling the sqlite-vec cgo bindings
against the SQLite header bundled with `mattn/go-sqlite3`. This is why the
release ships as 0.37.1: the 0.37.0 tag never produced binaries.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for semantic search,
session summary export, activity cost fixes, foreign-machine git-discovery
safeguards, the Linux release-build fix, and release documentation.
- Thanks to [Rod Boev](https://github.com/rodboev) for Windsurf workspace chat,
Qoder and ZCode support, Mermaid rendering, usage context and token
breakdowns, worktree layout mappings, tool-block copy buttons,
single-session insight analysis, and the Codex custom tool-call fix.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for aligned CLI
session search output and OMP parent-session lineage mapping.
- Thanks to [Elliot Murphy](https://github.com/statik) for Posit Assistant
session support.
- Thanks to [Rob Schilder](https://github.com/RobSchilderr) for
`sync_include_cwd_prefixes` ingestion filtering.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for PostgreSQL and
DuckDB push-churn reductions, OpenCode-family sync churn fixes, and calendar
range picker preservation.
- Thanks to [Mr Koala](https://github.com/Mr-Koala) for applying configured
port settings to the active runtime config.
- Thanks to [Prateek Rungta](https://github.com/prateek) for consistent usage
agent-exclusion filtering.
- Thanks to [Leuconoe](https://github.com/Leuconoe) for the Korean (`ko`)
localization.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for
recurring sync and database performance benchmark gates.
---
## 0.36.1
<small>2026-07-03</small>
**New features**
- Add **Devin CLI session support**. AgentsView now discovers Devin CLI roots,
reads local session data from the `cli/` subtree, parses Devin messages and
tool activity, includes Devin in supported-agent metadata, and documents the
safe root to share when filing bug reports.
- Extend **`parse-diff` diagnostics** for sessions last written through the
incremental-append path. These rows are now classified as
`incremental_skew`, excluded from `--fail-on-change`, and accompanied by
guidance to run a full resync for a clean parser-drift baseline.
- Report **Antigravity `gen_metadata` without usage anomalies** in sync
summaries, so operators can spot Antigravity records that contain generation
metadata but did not produce normalized usage totals.
**Improvements**
- Show clearer **startup and resync state** while AgentsView initializes.
Background startup now publishes the daemon PID, elapsed time, current phase,
progress detail, and log path for `agentsview serve status`, while full
resyncs print durable phase and completion lines.
- Improve **remote sync configuration and error reporting**. HTTP remote sync
now validates configured hosts more directly, keeps ad hoc HTTP remotes
unsupported, and maps common failures such as token rejection, missing remote
endpoints, connection refusal, DNS failures, and timeouts to actionable
messages.
- Refresh **frontend controls and dialogs** by migrating the Svelte UI to the
shared `@kenn-io/kit-ui` components, making filters, range pickers, dialogs,
settings controls, copy buttons, refresh controls, and related interaction
states more consistent across pages.
**Bug fixes**
- Discover **OhMyPi sessions with a leading title slot**, matching the current
OMP/Pi-style transcript shape instead of skipping those files.
- Reparse **in-place Claude rewrites** even when the source file size and mtime
are unchanged, so same-length edits no longer leave stale stored messages.
- Fix **data-version resync completion** so preserved orphaned sessions and
sessions copied through an aborted-resync fallback still receive the
backfills they need instead of being treated as fully rewritten.
- Scope **PostgreSQL session-alias backfill markers per push target**, so one
PostgreSQL destination cannot incorrectly satisfy or block the required full
alias backfill for another target.
**Acknowledgements**
- Thanks to [Aaron Florey](https://github.com/aaronflorey) for Devin CLI
session discovery and parsing.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for `parse-diff`
incremental-skew diagnostics, OMP leading-title discovery, Antigravity
`gen_metadata` anomaly reporting, and the same-size same-mtime Claude rewrite
fix.
- Thanks to [Wes McKinney](https://github.com/wesm) for startup transparency,
resync consistency fixes, and remote sync configuration and error reporting.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for the
frontend migration to shared UI controls and dialogs.
- Thanks to [Rod Boev](https://github.com/rodboev) for scoping PostgreSQL
session-alias backfill markers by target.
---
## 0.36.0
<small>2026-07-02</small>
**New features**
- Add **pairwise usage cost comparisons** to the Usage page and usage API. The
new comparison panel can compare any two project or model slices in the
current date/filter window and reports backend-computed cost, session count,
total tokens, cost per session, tokens per session, absolute deltas, and
percent deltas. The REST surface is
`GET /api/v1/usage/pairwise-comparison`.
- Show **parser malformed-line badges** on session detail pages when a parser
preserved a session but skipped malformed source lines. The badge uses the
persisted `parser_malformed_lines` count already produced by parser/sync
validation, so users can spot partially recovered transcripts without opening
CLI sync logs.
- Add **Traditional Chinese (`zh-TW`) localization** across the Svelte frontend
and register it as a supported locale alongside English and Simplified
Chinese.
- Support **forking Claude sessions from a selected message**. Claude message
headers now expose a fork action that renders the transcript through the
selected ordinal into a temporary prompt and launches `claude` from the
session working directory, or returns a copyable command when launch is not
available.
- Add **branch metadata and filter support** for session queries. The new
`GET /api/v1/branches` endpoint returns distinct `(project, branch)` pairs
with opaque filter tokens, and session, search, analytics, activity, and usage
endpoints accept those tokens as `git_branch`. Project-scoped tokens keep
same-named branches in different repositories distinct and preserve empty
branch values.
- Flag **Antigravity sessions decoded from unrecognized schemas**. Antigravity
IDE and CLI parsers now fingerprint SQLite schemas into `source_version`;
unknown fingerprints get an `agy-schema:<prefix>` marker, session details
expose `decode_confidence: "low"`, sync summaries count the affected
sessions, `doctor sync` reports them, and the UI shows an **Unverified
schema** badge.
**Improvements**
- Improve **Cursor attribution in stats** so `agentsview stats` and the stats
service read the host-local Cursor attribution database with parity between
direct and daemon-backed execution. Cursor attribution remains machine-local
and reports unsupported project filters explicitly.
- Extend **`parse-diff` coverage** to DB-backed Warp, Forge, and Piebald
sessions by allowing provider-authoritative sources, not only file-backed
parsers.
- Reduce **daemon sync CPU usage while sessions are actively streaming** by
avoiding repeated skip-check work on hot files that are still being written.
- Improve **unsupported usage reporting** from agent capabilities. Agents now
advertise whether they lack per-message token data and whether their costs are
denominated in AI credits (surfaced as "Copilot AI Credits" for Copilot
agents) as separate capabilities, so Copilot-family filters keep
Copilot-specific wording while other no-token agents get generic guidance.
- Publish a **`stable` Docker image tag** on tagged releases. `stable` always
points at the most recent tagged release, while `latest` continues to track
`main` and exact version tags remain immutable.
**Bug fixes**
- Fix **DuckDB push schema setup through Quack** so remote Quack-backed pushes
initialize and validate the DuckDB schema correctly.
- Fix **Visual Studio 2026 Copilot session parsing** for the current trace
layout while preserving the existing Visual Studio Copilot agent identity and
discovery paths.
- Surface **unsupported Copilot usage filters** correctly in the Usage page and
API instead of showing an empty report without the Copilot no-token-data note.
- Backfill **worktree mappings** for sessions that have empty working-directory
rows but can be matched from sibling sessions under the same mapping.
- Prevent **OpenCode WAL watcher feedback loops** by reading OpenCode-family
SQLite databases through read-only file URIs, ignoring transient `-shm`
events, and only treating main database or data-bearing WAL changes as
meaningful.
- Remove **outdated Copilot billing wording** from CLI usage output. The note
now says Copilot records do not include token or cost data AgentsView can
total, rather than referring to old billing terminology.
**Acknowledgements**
- Thanks to [Rod Boev](https://github.com/rodboev) for pairwise usage
comparisons, Cursor attribution parity, Claude message-point session forking,
worktree-mapping backfills, unsupported usage capability metadata, usage
filter fixes, Visual Studio 2026 Copilot session parsing, and the `stable`
Docker image tag.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for parser
malformed-line badges, Antigravity schema-confidence reporting,
provider-backed `parse-diff` coverage, the Copilot CLI wording fix, and MCP
schema documentation.
- Thanks to [Linus](https://github.com/Playgrand-by-linus) for the Traditional
Chinese (`zh-TW`) localization.
- Thanks to [Prateek Rungta](https://github.com/prateek) for the project-scoped
branch filter foundation.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for the DuckDB/Quack
schema setup fix.
- Thanks to [Trent Nelson](https://github.com/tpn) for preventing OpenCode WAL
watcher feedback loops.
- Thanks to [Wes McKinney](https://github.com/wesm) for daemon sync CPU
reduction, Windows test-suite fixture reuse, and release documentation.
---
## 0.35.2
<small>2026-06-30</small>
**Bug fixes**
- Fix **PostgreSQL push sync** so skipped ownership conflicts no longer block
the session-alias backfill marker.
**Acknowledgements**
- Thanks to [leejuhanKr](https://github.com/leejuhanKr) for fixing PostgreSQL
push sync behavior around skipped ownership conflicts.
---
## 0.35.1
<small>2026-06-30</small>
**New features**
- Add **OpenClaude session support** so AgentsView can discover, import, and
display OpenClaude JSONL sessions alongside Claude Code and other local
agents.
- Add **Copilot CLI usage guidance** for records that include aggregate usage
metadata but do not include per-message token counts.
**Improvements**
- Reuse the configured **DuckDB mirror path** for Quack sync so `duckdb push`,
`duckdb status`, `duckdb serve`, and `duckdb quack serve` stay pointed at the
same mirror by default.
- Improve **DuckDB and Quack sync behavior and coverage**.
**Bug fixes**
- Require **daemon transport** for CLI read commands that depend on
daemon-backed data.
- Surface **desktop backend startup failures** clearly instead of hiding the
underlying error.
- Validate **desktop updater signatures** before applying updates.
**Acknowledgements**
- Thanks to [Rod Boev](https://github.com/rodboev) for OpenClaude session
support.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for Copilot CLI usage
guidance when usage records do not include per-message token counts.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for reusing the
configured DuckDB path for Quack sync and improving DuckDB/Quack coverage.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for the
daemon-transport requirement on CLI read commands.
- Thanks to [Wes McKinney](https://github.com/wesm) for desktop backend error
surfacing, desktop updater signature validation, and release documentation.
---
## 0.35.0
<small>2026-06-29</small>
**New features**
- Add **HTTP daemon remote sync** so configured remote hosts can sync through the
local daemon instead of requiring each CLI invocation to perform the work
directly.
- Add **PostgreSQL serve support for curation and insights**. `agentsview pg
serve` can now back starred, trashed, renamed, and insight workflows from the
shared PostgreSQL store.
- Add a read-only **`agentsview mcp` server** for MCP-capable assistants to
search sessions, inspect message windows, and summarize usage from the
AgentsView archive. See [MCP Server](/mcp/).
- Add **Recent Edits**, a top-level feed for reviewing file edits across
sessions and jumping back to the exact message that made each change. See
[Recent Edits](/recent-edits/).
- Add **batch session selection and deletion** in the sidebar.
- Add **S3-compatible object storage discovery** for Claude and Codex session
roots, so a central AgentsView instance can sync raw session files from S3,
MinIO, R2, OSS, and similar stores. See
[S3-Compatible Session Sources](/configuration/#s3-compatible-session-sources).
- Add **Chinese localization** plus language settings across the frontend.
- Add **UI text-size scaling** and **high-contrast** appearance mode.
- Add an **Analytics dashboard model filter** that scopes dashboard panels to
selected models. See [Model Filter](/usage/#model-filter).
- Add **export and publish actions for generated insights**.
- Add **IcodeMate** agent support.
- Add **Cursor admin usage ingestion** to the Usage board.
- Add **Kimi cost estimation** from aggregate token usage.
- Add **per-remote sync intervals** for configured remote hosts.
- Add **named PostgreSQL push targets** so separate destinations can keep their
own connection and watermark state.
- Add **offline LiteLLM pricing fallback data** for usage and cost reporting.
**Improvements**
- Make **local CLI and desktop workflows daemon-first**, aligning commands with
the long-running local service used by the desktop app.
- Standardize **`--format` and `--json` output flags** across commands.
- Surface **parser anomaly signals** in sync summaries so malformed or
suspicious parser output is easier to notice.
- Stream **remote sync progress through the daemon** with per-phase elapsed
time.
- Improve **daemon replacement handling** for `agentsview serve`.
- Preserve **Pi message tree lineage**.
- Preserve **XML-style prompt tags** in rendered markdown.
- Show **summary-mode Antigravity CLI sessions** and record Antigravity
producing-version metadata.
- Enrich **tool summaries** and add a **skim layout** for session reading.
- Add an **in-page help affordance** for Insights.
- Add **right-side axis labels** to the concurrency timeline.
- Require **opt-in Aider discovery** to avoid scanning large or sensitive
directory trees unexpectedly.
- Add `substrings` and `exact_matches` to **automated session detection**
configuration.
- Publish **raw markdown route companions** for docs pages.
- Deprecate **Amp support documentation** now that current Amp releases may keep
complete threads server-side.
**Bug fixes**
- Include **Claude.ai export attachments** during import.
- Honor **`CLAUDE_CONFIG_DIR`** for Claude session discovery.
- Support **explicit WSL paths** in desktop environment settings.
- Persist **desktop sidecar logs** for desktop builds.
- Use **native webview zoom** in the desktop app, fixing Windows zoom rendering.
- Repair the **AppImage DirIcon** after bundling.
- Fix **remote daemon progress reporting** so each sync phase stays visible with
elapsed time.
- Fix a **resync discovery performance regression** and correct its
mis-attributed phase timing.
- Detect **Codex title-only renames** during full sync.
- Repair **persisted Codex goal-context rows**.
- Treat Codex **`/goal` continuation context** as system content.
- Fix **Gemini per-turn context token** calculation.
- Fix **Gemini insight generation** by no longer forcing a sandboxed Gemini CLI
run.
- Count **subagent sessions** in analytics totals.
- Clamp **analytics top-session active duration** by idle gaps.
- Scope **filtered PostgreSQL push watermarks** correctly.
- Reset **push watermarks** when PostgreSQL targets change.
- Fail **blocked PostgreSQL pushes** and surface push errors.
- Accept duration syntax for **`usage daily --since` and `--until`**.
- Deduplicate **replayed continued-session usage rows**.
- Suppress the **Local reporter timezone sentinel** in stats.
- Fall back to `AGENTSVIEW_GITHUB_TOKEN` and the GitHub CLI auth token for local
**Gist publishing**.
- Install the binary with an **atomic rename** in `make install`.
- Skip compatible PostgreSQL push schema DDL where it is not needed.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for HTTP daemon remote sync,
daemon-first CLI and desktop workflows, Recent Edits, UI text-size scaling and
high-contrast mode, remote sync progress fixes, daemon replacement handling,
raw markdown docs routes, Amp documentation deprecation, PostgreSQL push
watermark fixes, and installer hardening.
- Thanks to [Rod Boev](https://github.com/rodboev) for PostgreSQL serve curation
and insight persistence, generated insight export and publishing, Cursor admin
usage ingestion, per-remote sync intervals, named PostgreSQL push targets,
offline LiteLLM pricing fallback data, Pi lineage preservation, Insights help,
desktop fixes, Claude import/config fixes, and usage/stat fixes.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for the MCP server,
parser anomaly signals, Codex rename and `/goal` handling fixes, Antigravity
summary-mode sessions, blocked PostgreSQL push error handling, and parser
validation work.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for the
provider source-set migration work, frontend control chrome guard, localized
reading-control pluralization, and analytics active-duration correction.
- Thanks to [icatw](https://github.com/icatw) for Chinese localization and
frontend localization coverage.
- Thanks to [Prateek Rungta](https://github.com/prateek) for standardized CLI
output flags and duration syntax for `usage daily`.
- Thanks to [DanielMao](https://github.com/DanielMao1) for S3-compatible session
discovery.
- Thanks to [huaiyuWangh](https://github.com/huaiyuWangh) for batch sidebar
selection and deletion.
- Thanks to Leonidas Lux for IcodeMate agent support.
- Thanks to [Junt184](https://github.com/Junt184) for Kimi cost estimation.
- Thanks to [Jesse Robbins](https://github.com/jesserobbins) for counting
subagent sessions in analytics totals.
- Thanks to Trent Nelson for repairing persisted Codex goal-context rows.
- Thanks to [Martin Wimpress](https://github.com/flexiondotorg) for compatible
PostgreSQL push schema handling.
---
## 0.34.5
<small>2026-06-23</small>
**Bug fixes**
- Keep **PostgreSQL session reads** opt-in instead of enabling them
unexpectedly.
**Documentation**
- Refresh **command and session API docs** for current behavior.
---
## 0.34.4
<small>2026-06-22</small>
**New features**
- Reject **exported archives from newer AgentsView versions** so
incompatible imports fail safely.
**Improvements**
- Refresh **daily usage totals** correctly while reducing repeated
pricing lookup work.
- Group **GitHub Actions Renovate updates** in CI dependency
automation.
**Bug fixes**
- Avoid **macOS Photos permission prompts** while scanning Aider
sessions.
- Avoid **macOS Music permission prompts** while scanning Aider
sessions.
- Reparse **stale Roborev CI projects** so updated session data
appears correctly.
---
## 0.34.3
<small>2026-06-22</small>
**Improvements**
- Make **full resync rebuilds** more efficient, reducing sync cost for
large archives.
- Update documentation for the latest **command, usage, and session API**
changes.
**Bug fixes**
- Recognize **embedded security review prompts** correctly in stored
messages.
---
## 0.34.2
<small>2026-06-22</small>
**New features**
- Show **detailed resync progress** while full resyncs are running,
so the UI can report the current phase instead of only showing a
generic syncing state.
- Add a **resume-focused session table** to
`agentsview session list`, including `--resume` and `--active`
modes for quickly finding recently active sessions.
**Improvements**
- Add **native session links in the sidebar** when an agent exposes
a supported resume target.
- Redesign the **supported agents docs grid** as uniform clickable
chips.
**Bug fixes**
- Handle **search terms with operator characters** without returning
server errors.
- Parse **native Kimi Code records** correctly.
- Improve **incremental JSONL resume reliability**.
- Make **large-session deletes safer** for full-text search cleanup.
- Prevent **Ctrl+K command palette input** from reselecting text on
every keystroke.
- Avoid **DuckDB tool-call attachment failures** from invalid
negative call indexes.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for detailed
resync progress, native Kimi Code record parsing, and the supported
agents docs grid redesign.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for the
resume-focused session table and search operator-character fix.
- Thanks to [Rod Boev](https://github.com/rodboev) for native sidebar
session links, incremental JSONL resume reliability, safer
large-session full-text cleanup, and the Ctrl+K palette input fix.
- Thanks to [MirzaSamadAhmedBaig](https://github.com/Mirza-Samad-Ahmed-Baig)
for the DuckDB negative call-index fix.
---
## 0.34.1
<small>2026-06-21</small>
**New features**
- Add the **AgentsView documentation site**, including quickstart,
commands, configuration, usage, stats, token usage, API, remote
access, and PostgreSQL sync docs.
- Add **documentation build and deployment support**, including
validation, asset hydration, screenshot handling, and Vercel
deployment configuration.
**Improvements**
- Clarify **forwarded development access** instructions for public
origins, tunnels, WSL2, Codespaces, Coder, and reverse proxy setups.
- Move **internal-only documentation** into an internal docs area so
it stays available without publishing as user documentation.
- Add automated checks for **docs sources, built site output,
redirects, and docs assets**.
**Bug fixes**
- Avoid scanning **protected home directories** during Aider session
discovery.
---
## 0.34.0
<small>2026-06-20</small>
**New features**
- Add the **Activity** reporting dashboard. The new top-level page
reports active time, idle time, peak concurrency, agent-minutes,
cost, output tokens, projects, models, machine filters,
automation filters, clickable concurrency buckets, session rows,
project/model/agent breakdowns, and range-scoped Activity
Insights. See [Activity](/activity/).
- Add **session quality scoring and insight patterns**. Session
intelligence now has a richer scoring basis for recurring quality
patterns, and the Activity page can generate a daily or range
activity insight for the currently resolved range.
- Add a **Top Skills** analytics panel that ranks skill-backed tool
calls by call count, sessions, recency, agent mix, project mix,
and weekly trend. Skill names come from explicit tool metadata and
are inferred from `SKILL.md` reads for agents (such as Codex and
Cursor) that do not record them. See [Top Skills](/usage/#top-skills).
- Add new session sources: **OhMyPi**, **Reasonix**, **aider**,
**Mistral Vibe**, **Visual Studio Copilot**, **Shelley**,
**QwenPaw**, **MiMoCode**, **Claude Cowork** sessions from Claude
Desktop local-agent mode, **Kilo**, **DeepSeek TUI**, and
**gptme**. Each source has a matching environment variable and
`config.toml` directory-array key. See
[Session Discovery](/configuration/#session-discovery).
- Add **background `serve` mode**. `agentsview serve --background`
starts the web UI as a managed local service, writes logs to
`~/.agentsview/serve.log`, and records enough runtime metadata for
`agentsview serve status` and `agentsview serve stop` to inspect or
stop the daemon later. See [CLI Reference](/commands/#background-mode).
- Route `agentsview session` **read commands through PostgreSQL**.
When `AGENTSVIEW_PG_URL` or `[pg].url` is configured, read-only
session commands use the shared PostgreSQL store by default; pass
`--pg` to require that path explicitly. Mutating commands continue
to use the local archive.
- Target an **explicit session server** from the `agentsview session`
CLI with `--server <url>`, authenticated by `AGENTSVIEW_SERVER_TOKEN`
or `--server-token-file`; a discovered local daemon's token is never
sent to an explicit URL. See [Session API](/session-api/).
- Add **session list sorting** to CLI and HTTP surfaces with
`agentsview session list --sort`, `--reverse`, `order_by`,
`descending`, and per-key direction suffixes such as
`messages:desc,started:asc`. See
[Session API](/session-api/#agentsview-session-list).
- Add `agentsview doctor sync`, a **sync diagnostics** report for
checking database readability, data-version counts, agent roots,
and recent sync-debug lines. See [CLI Reference](/commands/#agentsview-doctor-sync).
- Add `agentsview parse-diff`, a parser QA report that re-parses
source files from the current archive and reports differences from
the stored SQLite rows without rewriting sessions. See
[CLI Reference](/commands/#agentsview-parse-diff).
- Surface **Copilot AI credits** in usage reporting when
Copilot-family sessions have priced usage.
- Add **Copy source file path** to the session export menu when the
active session has a backing source file.
**Improvements**
- Use one shared **range picker** and keep date ranges synchronized
across the Analytics dashboard, Usage page, and Activity page.
- Improve **SQLite dashboard performance** by reducing heavy analytics
refetches during sync, adding more deliberate freshness handling,
improving large sidebar index loading, adding usage-query indexes,
compressing API responses, and bounding WAL checkpoints.
- Batch **PostgreSQL push comparison reads** for faster sync.
- Preserve **source machine metadata** during PostgreSQL push instead
of replacing it with the pushing machine.
- Persist **Codex and OpenCode working directories** so Git worktree
mappings can classify more sessions by their real project root.
- Streamline the **Analytics and Usage refresh control**: a single
refresh button paired with a relative "Updated…" timestamp, where a
manual refresh also resets the automatic refresh timer.
- Show **agent-provided display names in the dashboard "Top sessions"**
list instead of the first message, matching the session sidebar.
- Extract **token usage and cost from VS Code Copilot** sessions when
their persisted request metadata includes `promptTokens`,
`outputTokens`, and resolved model names. See
[VS Code Copilot Token Metrics](/token-usage/#vs-code-copilot-token-metrics).
- Improve **Antigravity** parsing: IDE role detection now recognizes
newer step types, model-name extraction filters noisy prose and URLs,
token extraction is more complete, and tool-call metadata is richer.
- Import **Codex renamed session titles** from `session_index.jsonl`
and re-parse **Codex sessions when token counts arrive late**, so
sidebar titles and usage rows catch up without a manual workaround.
- Promote **orphan subagent sessions** into sidebar roots instead of
hiding them behind missing parents.
- Fill in **working directory metadata for Pi** sessions when the Pi
transcript header provides it.
- Refresh frontend glyphs with **lucide icons**.
- Strengthen **selected session styling** in the sidebar so the active
row remains visible across themes and agent colors.
- Improve **Activity refresh controls**, filter controls, selected
sidebar rows, and read-only UI states.
- Advertise the WSL **`eth0` URL** when `agentsview serve --host
0.0.0.0` runs inside WSL and no explicit `--public-url` was supplied.
- Migrate frontend tooling to **Vite+** while preserving the existing
Svelte app behavior.
**Bug fixes**
- Prevent **PostgreSQL push collisions** for same-ID sessions from
different machines.
- Deduplicate **duplicate Claude sync sources** so the same transcript
is not indexed from overlapping roots.
- Support the **Claude companion session layout**, including subagent
parent inference from companion directories and externalized tool
result content.
- Support the newer **`.kimi-code` session layout** and add
**`.kimi_openclaw`** to OpenClaw's default discovery paths.
- Parse **OpenClaw and QClaw `toolCall`/`toolResult` blocks**, whose
camelCase names the shared content extractor previously dropped, so
tool calls and tool-only assistant turns no longer vanish from those
transcripts.
- Render Cursor **`ApplyPatch` tool calls** as patch/diff content in
the message viewer and markdown/export paths.
- Fix **nested fenced code block** parsing.
- Pin CSP resource origins to the configured **public origin**, fixing
deployments behind a trusted public URL or proxy.
- Classify **single-turn automation from session transcripts**, not
just the stored first-message preview, so automated review sessions
are filtered correctly even when their preview is a generated title.
- Base **skill analytics** on message timestamps.
- Route **command palette session picks** correctly from non-session
pages.
- Skip **local-only frontend calls in read-only mode**, including
PostgreSQL-backed `pg serve` deployments.
- Tolerate **NULL message timestamps** in velocity analytics.
- Keep **usage chart date labels** within bounds.
- Show **hour-of-week heatmap** rows starting on Sunday.
- Use **`CREATE_NO_WINDOW`** for the Windows background daemon.
- Update **DOMPurify** for security.
**Acknowledgements**
- Thanks to [Wes McKinney](https://github.com/wesm) for the Activity dashboard, SQLite dashboard performance, sync diagnostics, explicit session-server targets, Claude companion session linking, Cursor `ApplyPatch` rendering, nested fence parsing, the WSL `eth0` URL, copy-source-path support, and assorted CLI and frontend fixes.
- Thanks to [Nitin Gupta](https://github.com/g-nitin) for background `serve` mode.
- Thanks to [Luiz Ferraz](https://github.com/Fryuni) for OhMyPi support.
- Thanks to [Frank Zhu](https://github.com/gkld) for QwenPaw support.
- Thanks to [Rod Boev](https://github.com/rodboev) for Reasonix support, Codex renamed titles, PostgreSQL source-machine preservation, PostgreSQL push batching, Copilot AI credits, orphan subagent promotion, and MiMoCode support.
- Thanks to [SyedaAnshrahGillani](https://github.com/SyedaAnshrahGillani) for Antigravity role and model extraction improvements.
- Thanks to [Justin Cauchon](https://github.com/Cauchon) for Claude Cowork indexing.
- Thanks to [stephan379](https://github.com/stephan379) for VS Code Copilot token and cost extraction.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for `parse-diff` reporting, Shelley support, session sorting, the NULL timestamp velocity fix, OpenClaw/QClaw tool-call parsing, and parser registry coverage.
- Thanks to [matt wilkie](https://github.com/maphew) for Kilo support.
- Thanks to [yuna](https://github.com/yunasora) for DeepSeek TUI support.
- Thanks to [Matt Van Horn](https://github.com/mvanhorn) for PostgreSQL-backed CLI reads.
- Thanks to [潦草学者](https://github.com/liaocaoxuezhe) for Kimi `.kimi-code` and `.kimi_openclaw` support.
- Thanks to [Douglas Creager](https://github.com/dcreager) for Pi working-directory metadata and dashboard display names.
- Thanks to [Bob](https://github.com/TimeToBuildBob) for the gptme parser.
- Thanks to [Trần Quốc Việt](https://github.com/charlieviettq) for the Top Skills analytics panel and `SKILL.md` skill-name inference.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for session quality scoring and insight patterns, the Vite+ migration, and the Codex late-token-count fix.
- Thanks to [vikram bhandoh](https://github.com/vikram) for Antigravity token extraction and richer tool-call metadata.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for synchronized date ranges, the shared range picker, lucide icon migration, transcript-based automation classification, refresh and filter polish, read-only UI fixes, and usage chart label fixes.
- Thanks to [liyi0x0](https://github.com/liyi0x0) for the Windows background daemon window fix.
- Thanks to [Jesse Vincent](https://github.com/obra) for duplicate Claude sync-source deduplication and unwatched-root polling improvements.
- Thanks to [Berend de Boer](https://github.com/berenddeboer) for Codex and OpenCode working-directory persistence.
- Thanks to [KBS](https://github.com/youdie006) for aider support.
- Thanks to [Amjad Saadeh](https://github.com/amjadsaadeh) for Mistral Vibe support.
- Thanks to [mtucker-virtra](https://github.com/mtucker-virtra) for Visual Studio Copilot support.
---
## 0.33.1
<small>2026-06-12</small>
**New features**
- Show **user-assigned Pi session names**. The Pi parser now
extracts names assigned with Pi's `/name` command, so those
sessions appear in the sidebar under their given name
alongside other agent-provided session names.
**Bug fixes**
- Stop **double-counting forked Codex sessions**. `codex fork`
copies the parent's rollout history — session metadata,
turns, messages, and token counts — into the top of the new
file, and the parser counted that replayed prefix as the
fork's own activity, billing the shared history in both the
parent and the fork; the replayed parent metadata could also
overwrite the fork's session ID, storing the fork under the
parent's identity. Forked sessions now skip the replayed
history and keep their own identity.
- Render **tool call groups** reliably when message identifiers
repeat. Sessions read through the
[PostgreSQL backend](/pg-sync/)'s `pg serve` leave message
IDs unset (its messages table keys on session and ordinal),
so a tool call group holding more than one message produced
duplicate render keys and tore down the message panel. Groups
now key messages by their ordinal, which is unique within a
session on every backend.
**Acknowledgements**
- Thanks to [Douglas Creager](https://github.com/dcreager) for the Pi session name extraction.
- Thanks to [nyxst4ck](https://github.com/nyxst4ck) for the forked Codex session fix.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for the tool call group rendering fix.
---
## 0.33.0
<small>2026-06-12</small>
**New features**
- Add a **DuckDB mirror backend** with Quack remote support.
`agentsview duckdb push` mirrors the local SQLite archive into
`~/.agentsview/sessions.duckdb`, `agentsview duckdb serve`
runs the read-only web UI from that mirror, and
`agentsview duckdb quack serve` exposes the mirror over
DuckDB's Quack remote protocol so another machine can serve
from it. SQLite remains the source of truth for ingestion —
the mirror is one-way, like [PostgreSQL sync](/pg-sync/).
Configuration lives in a `[duckdb]` section of `config.toml`.
See [DuckDB Mirror](/duckdb/) for the full setup, including
the Quack token and loopback safety defaults. The DuckDB
driver is linked into every binary except `windows/arm64`,
where the upstream bindings ship no prebuilt library —
`agentsview duckdb` subcommands report a clear error there
while everything SQLite-backed keeps working.
- Add **Command Code** session support. Sessions are discovered
under `~/.commandcode/projects/` as one JSONL file per
session, with an optional `.meta.json` sidecar for metadata;
structured tool calls, tool results, and thinking blocks are
parsed from the message content. Configure custom paths with
`COMMANDCODE_PROJECTS_DIR` or `commandcode_project_dirs`. See
[Session Discovery](/configuration/#session-discovery).
- Add **Zed** AI assistant session support. AgentsView reads
Zed's `threads/threads.db` SQLite database from the
platform data directory (`~/Library/Application Support/Zed`
on macOS, `~/.local/share/zed` on Linux,
`~/AppData/Local/Zed` on Windows), extracting messages, model
names, and per-request token usage, so Zed sessions also
contribute to [usage and cost reports](/token-usage/).
Configure custom paths with `ZED_DIR` or `zed_dirs`.
- Allow publishing sessions as **secret GitHub gists**. The
publish button in the session header is now a dropdown with
**Publish public Gist** and **Publish secret Gist** entries,
backed by an optional `secret` parameter on the publish
endpoint. Note that secret gists are unlisted, not
access-controlled — anyone with the URL can read them. The
`p` shortcut still publishes publicly. See
[Publish to Gist](/usage/#publish-to-gist).
- Ship **native Windows ARM64 builds**: release archives now
include a native `windows_arm64` binary (built with the
aarch64 llvm-mingw toolchain, with full CGO/FTS5 support) and
PyPI gains a `win_arm64` wheel. The PowerShell installer
prefers the native build automatically. See
[Quick Start](/quickstart/#install).
- Add **configurable remote hosts** for
[`agentsview sync`](/commands/#agentsview-sync). Declare a
fleet of machines as `[[remote_hosts]]` entries in
`config.toml` (each with `host` and optional `user` / `port`)
and a bare `agentsview sync` runs the local sync, then syncs
every configured host over SSH in order. Failed hosts are
reported and skipped rather than aborting the run;
`sync --host X` continues to ignore the configured list.
- Show the **session cost** in the session header. Next to the
token summary, the header now displays the estimated cost of
the open session (`<$0.01` floor, two decimals up to $100,
whole dollars above), computed from the same per-session
usage endpoint that powers `agentsview session usage`. The
badge is hidden when the session has no token data or its
models have no pricing.
- Add **syntax highlighting** for fenced code blocks, powered
by Shiki. Twelve common languages are bundled (JavaScript,
TypeScript, Python, Bash, JSON, YAML, Markdown, HTML, CSS,
Rust, Go, SQL); unlabeled or unknown languages render as
plain text. Highlighting is skipped for blocks over 50 KB or
800 lines to keep large sessions fast, and the highlighter
loads lazily in code-split chunks so it costs nothing until
the first code fence renders. See
[Code Blocks](/usage/#code-blocks).
**Improvements**
- Show **agent-provided session names** in the sidebar. Several
agents record a session title (Claude Code's `/rename`,
Claude.ai and ChatGPT conversation names, Forge, Hermes,
Kiro, Piebald, Cortex Code, and Command Code's `.meta.json`
titles); the session list now shows these titles instead of
the first-message preview. Manual in-app renames always win
and are never overwritten by agent-provided names. The
release bumps the parser data version, so existing sessions
backfill their names on the next resync.
- Leave **session labels** untruncated. Sidebar labels were
hard-truncated at 50 characters; the full label is now placed
in the DOM and CSS ellipsis clipping adapts to the actual
sidebar width instead of a fixed character count.
- Extract **Antigravity CLI token usage**. The parser now reads
token counts from trajectory `gen_metadata` blobs and from
sidecar `generatorMetadata` arrays, with precedence rules
that prevent double-counting, so Antigravity CLI sessions
contribute to the [Usage dashboard](/token-usage/#usage-dashboard)
and `agentsview usage` after the 0.33.0 resync.
- Prefer **agy-reader trajectory sidecars** when they are at
least as complete as the raw Antigravity CLI source: for
SQLite sessions the richer source wins by step count, and for
encrypted `.pb` sessions the sidecar is used whenever
present.
- Infer the **Antigravity CLI project** when `history.jsonl`
rows lack a conversation ID, by matching the conversation's
first user prompt against history entries — previously those
sessions grouped under `unknown`.
- Discover **nested Claude workflow subagents**. Subagent
transcripts written under nested `subagents/` paths (as
produced by workflow orchestration) are now found by a
recursive walk instead of a flat directory listing, so they
appear in the [sub-agent tree](/usage/#sub-agent-tree).
- Keep the app usable when the **PostgreSQL sync backend is
degraded**. A 5xx from the backend no longer forces a full
page reload (which could loop while the database was down) —
the UI stays interactive with a compact status-bar warning,
and recovers once a real data read succeeds. True network
failures still use the reload-based recovery path.
- Improve **PostgreSQL and CockroachDB analytics performance**:
usage-window queries push their filters down into the source
tables, tool-call category aggregation moved from Go into
SQL, and model-pricing writes are batched and skipped when
unchanged. Aggregation semantics are unchanged across SQLite,
PostgreSQL, and CockroachDB.
- Ship fallback pricing for **`claude-fable-5`** ($10 input,
$50 output, $12.50 cache creation, $1 cache read per million
tokens), so Fable 5 sessions are priced before the LiteLLM
catalog catches up. See
[Pricing Source](/token-usage/#pricing-source).
- Fall back to the **system browser on Linux** when the desktop
WebView cannot render. On GPU/driver/compositor combinations
where WebKitGTK aborts with an EGL error and leaves a blank
window, the desktop app now detects the dead WebView, opens
the UI in your default browser, and explains what happened —
the backend keeps running either way.
- Add **anonymous daemon telemetry**. The server now sends a
daily liveness ping (version, commit, OS, architecture, and a
random per-machine install ID — no session data, paths,
hostnames, or prompts). Disable it with
`AGENTSVIEW_TELEMETRY_ENABLED=0`. See
[Privacy and Telemetry](/configuration/#privacy-and-telemetry).
**Bug fixes**
- Include **non-Claude agents** in the peak context token
distribution. The stats bucketing was gated to Claude
sessions even though other parsers (Hermes, Kimi, Forge, Zed)
record peak context tokens; the gate now keys on whether the
data exists.
- Create the PostgreSQL **content trigram index** with
`fastupdate = off`. With the GIN default, continuous ingest
buffered inserts into a pending list that only VACUUM merges,
bloating the index by orders of magnitude on large archives.
New indexes are created with `fastupdate = off` and existing
ones are altered on startup; run
`REINDEX INDEX idx_messages_content_trgm;` once to reclaim
space already consumed.
- Fix the **Windows PowerShell 5.x installer**, which aborted
with "maximum redirection count exceeded" while resolving the
latest release; the installer now follows the redirect with a
HEAD request that works on both PowerShell 5.x and 7+. On
Windows ARM64 it also probes for the native `arm64` asset and
falls back to `amd64` under emulation only when no native
build exists.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for the DuckDB mirror backend, secret gist publishing, nested workflow subagent discovery, untruncated session labels, and daemon telemetry.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for the Antigravity CLI sidecar token usage, trajectory-sidecar preference, project inference, and parser fuzz hardening.
- Thanks to [vikram bhandoh](https://github.com/vikram) for Antigravity CLI token usage extraction.
- Thanks to [Aaron Florey](https://github.com/aaronflorey) for Command Code session support.
- Thanks to [ArBing Xie](https://github.com/arbing) for Zed session support.
- Thanks to [Josix](https://github.com/josix) for Shiki syntax highlighting.
- Thanks to [chrislee3408](https://github.com/chrislee3408) for the session cost display in the session header.
- Thanks to [Gordon Woodhull](https://github.com/gordonwoodhull) for agent-provided session names in the sidebar.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for degraded-backend resilience and the CockroachDB analytics performance work.
- Thanks to [Martin Wimpress](https://github.com/flexiondotorg) for the trigram index fix.
- Thanks to [matt wilkie](https://github.com/maphew) for the Linux system-browser fallback.
- Thanks to [nyxst4ck](https://github.com/nyxst4ck) for the peak context token distribution fix.
---
## 0.32.1
<small>2026-06-05</small>
**New features**
- Show the **full content of tool calls** in the message
viewer. Long tool parameters — Bash commands and
heredocs, large `Write` payloads — were truncated at
200 characters with no way to reach the rest, even
though the complete text was already stored. The
collapsed [tool block](/usage/#tool-blocks) now previews
the first 20 lines with a *Show more* / *Show less*
toggle, Bash calls render their `description` and
`command` fields in full, content is capped at 200 lines
to keep the DOM light, and a search match inside a
collapsed block expands it automatically.
**Improvements**
- Skip **`/usage` probe sessions** from session lists and
usage reporting. Content-free probes whose only real
turn is the `/usage` command — such as CodexBar's
ClaudeProbe, which runs `claude /usage` to read usage
stats — are now dropped during parsing, while sessions
that also contain a genuine prompt are kept.
- Recognize **Codex code-review sessions** as
[automated activity](/configuration/#automated-session-detection).
Codex re-emits the initial prompt verbatim when it
continues a task across turns, which pushed the
user-message count past the single-turn gate and left
review sessions (`"You are a code reviewer."` and
`"You are a security code reviewer."`) unflagged. The
parser now drops a verbatim replay of the first prompt
until a distinct user turn appears, so these sessions
classify as automated and stay out of session lists and
analytics by default. Both this and the `/usage` skip
ship with a `dataVersion` bump, so existing archives
correct themselves on the next resync.
**Bug fixes**
- Resolve **dotted model names** to the dashed
pricing-catalog keys so usage costs compute correctly.
Some agents report model ids with dots (such as
OpenCode's `claude-opus-4.7`) while the LiteLLM table
keys them by the dashed API string (`claude-opus-4-7`),
so [`agentsview usage daily`](/token-usage/#agentsview-usage-daily)
priced those sessions at `$0.00`. Every cost lookup now
falls back to the dot-to-dash form.
- Speed up **sync project resolution** by avoiding
unnecessary `git` subprocesses. Resolving a session's
project now prefers a cheap filesystem `.git` walk for
normal repos and linked worktrees instead of shelling
out to `git` per session, keeping the previous git-based
lookup as a fallback for rare live-repo layouts. On a
~35.7k-session archive this brings cold-sync time back
from about 4m31s to about 1m14s.
**Acknowledgements**
- Thanks to [Nat Torkington](https://github.com/njt) for showing the full content of tool calls with a show-more toggle.
- Thanks to [Daniel Grenner](https://github.com/dgrenner) for resolving dotted model names to dashed pricing keys.
---
## 0.32.0
<small>2026-06-03</small>
**New features**
- Add support for newer **Antigravity CLI SQLite sessions**
stored as `~/.gemini/antigravity-cli/conversations/<uuid>.db`.
AgentsView discovers the SQLite files directly, prefers them
over same-ID encrypted `.pb` files, parses the trajectory steps
through the shared Antigravity SQLite/protobuf path, and includes
`.db-wal` / `.db-shm` metadata in change detection so live
updates resync reliably. The existing encrypted `.pb`,
`agy-reader` sidecar, and plaintext summary flows remain in
place for older Antigravity CLI sessions. See
[Session Discovery](/configuration/#session-discovery).
- Add **Copilot CLI token usage tracking**. The parser now reads
assistant output tokens from `assistant.message` events and
model-level input, output, cache-read, cache-write, and
reasoning totals from `session.shutdown` `modelMetrics`.
Claude model IDs reported with dotted versions are normalized to
the pricing-catalog form, so Copilot CLI rows now contribute to
the [Usage dashboard](/token-usage/#usage-dashboard),
`agentsview usage`, and per-session usage reports after the
0.32.0 resync.
- Add `GET /api/v1/sessions/{id}/usage`, a per-session usage
REST endpoint that returns the same stable JSON fields as
[`agentsview session usage --format json`](/session-api/#agentsview-session-usage),
including cost status, model lists, and unpriced models. The
endpoint works under both local SQLite-backed `agentsview serve`
and read-only [`agentsview pg serve`](/pg-sync/#agentsview-pg-serve).
- Add an automatic PostgreSQL push daemon. Run
`agentsview pg push --watch` for a foreground watcher that
performs an initial catch-up push, coalesces file changes with
`--debounce`, pushes at a periodic `--interval` floor, and
reconnects after transient PostgreSQL failures. The new
`agentsview pg service` command installs and manages that
watcher as a per-user launchd service on macOS or
`systemd --user` service on Linux. See
[PostgreSQL Sync](/pg-sync/#automatic-push-watcher).
- Ship fallback pricing for `claude-opus-4-7` at the current
Opus 4.6 / 4.8 tier (`$5` input, `$25` output,
`$6.25` cache creation, `$0.50` cache read per million tokens),
so offline reports and fresh installs no longer leave Opus 4.7
rows unpriced before the LiteLLM catalog is available locally.
**Improvements**
- Replace the custom daemon state-file and PID-lock code with the
shared `go.kenn.io/kit` daemon runtime. CLI commands now use
kit runtime records and start locks for daemon discovery, and
the server exposes a shared `/api/ping` liveness endpoint.
- Switch git repository discovery and author lookup paths onto
`go.kenn.io/kit` helpers, thread caller contexts through git
outcome collection, and pin the Go toolchain consistently in
source and Docker builds.
- Improve the PostgreSQL push/watch path so the watcher uses the
same `[pg]` config, project filters, classifier wiring, and
result-content blocking rules as one-shot `pg push` and normal
`serve`.
- Replace custom frontend UI glyphs with shared lucide Svelte
icons for more consistent controls, with focused icon export
tests to guard the mappings.
- Improve forwarded-host rejection handling. When AgentsView is
reached through SSH port forwarding, a reverse proxy, or a
remote dev environment with an untrusted `Host`, the server now
returns a descriptive `403` body and logs a breadcrumb; the
frontend Settings load surfaces the same actionable
`--public-url` hint instead of a generic forbidden error. See
[Remote Access](/remote-access/#forwarded-dev-environments).
- Update `agy-reader` install documentation to the current module
root command: `go install github.com/mjacobs/agy-reader@latest`.
**Bug fixes**
- Stop benign `tar` warnings from aborting SSH remote sync. The
local extractor now uses Go's `archive/tar`, skips only known
self-referential hardlinks, and still fails on malformed,
truncated, or path-escaping archives. Remote `tar` non-zero
exits are tolerated only when every stderr line matches known
"file changed/removed while reading" warnings.
- Rename the private frontend npm package from the old working
name to `agentsview-frontend`, matching the current project
identity and avoiding package-name conflicts.
**Acknowledgements**
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for self-explaining forwarded-host 403 responses, Antigravity CLI SQLite session support, and updated `agy-reader` install guidance.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for the lucide icon migration, shared kit daemon runtime, kit git-helper migration, and Go toolchain pinning.
- Thanks to [Max Feinberg](https://github.com/mxfeinberg) for the PostgreSQL push watcher and macOS/Linux service management.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for Copilot CLI token usage tracking.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for the per-session usage REST endpoint.
- Thanks to [Charley Wu](https://github.com/akunzai) for catching the broken `agy-reader` install command path.
---
## 0.31.1
<small>2026-05-28</small>
**Bug fixes**
- Add fallback pricing for **Claude Opus 4.8** so cost
estimates stay accurate before the model reaches the
LiteLLM catalog. Opus 4.8 launched at the same rates as
Opus 4.6 / 4.7 ($5 input / $25 output per million tokens,
$6.25 / $0.50 cache create / read), but with no catalog
entry yet the exact-match cost lookup priced its messages
at $0 in `agentsview usage`. AgentsView now seeds a
`claude-opus-4-8` fallback row at the current Opus tier;
the background LiteLLM refresh takes over automatically
once the upstream catalog adds the model.
---
## 0.31.0
<small>2026-05-28</small>
**New features**
- Parse **decrypted Antigravity CLI trajectory sidecars**
for richer Antigravity session imports. When a
`<uuid>.trajectory.json` file sits next to the existing
AES-encrypted `<uuid>.pb` transcript (under
`~/.gemini/antigravity-cli/conversations/` or `implicit/`),
AgentsView uses it as the source of truth for messages,
tool calls, and tool results, falling back to the
`history.jsonl` + `brain/` artifact path when no sidecar
is present. The sidecars are produced out-of-process by
[agy-reader](https://github.com/mjacobs/agy-reader), which
performs the decryption and writes plain JSON — so this
path needs no `ANTIGRAVITY_KEY`. AgentsView treats the
sidecar as untrusted input: unknown step types are skipped
and reads are size-capped. The in-process `ANTIGRAVITY_KEY`
decrypt path is preserved as a fallback. See
[Session Discovery](/configuration/#session-discovery).
- Expand **[secret scanning](/session-api/#secret-scanning)**
with six more well-anchored vendor rules: OpenAI
(`sk-proj-`, `sk-svcacct-`, `sk-admin-`), GitLab personal
access tokens (`glpat-…`), npm tokens (`npm_…`), PyPI API
tokens (`pypi-…` macaroons), Hugging Face tokens (`hf_…`),
and SendGrid keys (`SG.…`). The CLI summary now splits
counts into definite vs. candidate findings —
`N findings (X definite, Y candidate)` — and points you at
[`agentsview secrets list --confidence all`](/commands/#agentsview-secrets)
when candidate-tier matches exist. JSON consumers get the
new count fields automatically.
**Improvements**
- Give the right-column
[Session Vital Signs](/usage/#session-vital-signs) panel a
sticky **Analysis** title bar with an explicit close
button, and make the header toggle read *Show / Hide
session analysis* based on the panel's current state.
- Add hover and title hints plus accessible labels across
the compact title bar, session breadcrumb, sidebar group
headers, and modal controls, improving the experience for
assistive-technology users.
- Document the project's current security posture — threat
model, trust boundaries, outbound channels, data-at-rest
sensitivity, and open questions — in a new
[`SECURITY.md`](https://github.com/kenn-io/agentsview/blob/main/SECURITY.md).
- Update frontend dependencies and the Docker / CI GitHub
Actions.
**Bug fixes**
- Treat only `401 Unauthorized` from a settings load as a
token-auth challenge. A `403 Forbidden` response now
surfaces as a settings error instead of triggering a
misleading auth-token prompt.
- Use the GitHub release **redirect endpoint** in the
installers and the in-binary updater (`install.sh`,
`install.ps1`, and `agentsview update`), reading the
`releases/latest` 302 target instead of calling
`api.github.com`. Users behind shared NAT, VPN, or CGNAT
no longer exhaust the unauthenticated API's 60-request
hourly quota during install or update.
**Acknowledgements**
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for the SECURITY.md describing the project security posture and parsing decrypted Antigravity CLI trajectory sidecars.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for header accessibility hints and labels.
---
## 0.30.1
<small>2026-05-25</small>
**Bug fixes**
- Refresh pricing from LiteLLM when
[`agentsview session usage`](/session-api/#agentsview-session-usage)
hits an unpriced model. The command previously reported
`Cost: n/a (unpriced: <model>)` for a newly released model
even when LiteLLM already had the rate — running
`agentsview serve` once was enough to fix it, because the
server's background refresh populated the catalog, while
the CLI path only seeded the embedded fallback. The CLI now
triggers a one-shot LiteLLM fetch when it encounters an
unpriced model and no daemon is running, then re-queries.
A one-hour cooldown keeps repeated invocations — or
persistent fetch failures when offline — from pinging
LiteLLM on every call.
---
## 0.30.0
<small>2026-05-24</small>
**New features**
- Add full **session content search** across stored
transcripts — substring, RE2 regex, or FTS5 tokenized
modes — over message bodies, tool inputs, and tool result
content. Exposed as `agentsview session search <pattern>`
with the standard session filters (`--project`, `--agent`,
`--date-from`, etc.) plus `--regex`, `--fts`, and
`--in messages,tool_input,tool_result`, and over HTTP at
`GET /api/v1/search/content`. Snippets are returned with
~60 characters of context on each side, snapped to rune
boundaries, and any value that matches a secret-scanner
rule is masked unless the caller passes `--reveal` from
localhost.
- Add **secret scanning** for session content. A new
`internal/secrets` rule pack flags definite vendor
formats (AWS access keys, `sk-ant-…`, `ghp_…`,
`github_pat_…`, `xoxb/xoxa/xoxp/xoxr/xoxs`, Stripe
`sk_live_…` / `rk_live_…`, Google `AIza…` keys, PEM
private-key blocks) plus an opt-in candidate tier
(basic-auth URLs, JWTs, high-entropy assignments).
Definite findings are scored inline during sync; the new
[`agentsview secrets`](/commands/#agentsview-secrets)
command group lists them (redacted by default) and
re-scans the archive for the candidate tier on demand.
Sessions carry a `secret_leak_count` summary that surfaces
in [`session get`](/session-api/#agentsview-session-get)
and a new
[`session list --has-secret`](/session-api/#agentsview-session-list)
filter; the same shape is mirrored in PostgreSQL sync.
- Add [`agentsview session usage <id>`](/session-api/#agentsview-session-usage),
a per-session token-and-cost report. Prints output and
peak-context totals plus a `~$X.XX` model-pricing
estimate, with `--format json` for scripting. Reuses the
same LiteLLM pricing table and `custom_model_pricing`
overrides as `agentsview usage daily`, and runs an
on-demand sync for the target session when no daemon is
running. Replaces the older `token-use` subcommand, which
remains as a deprecated alias.
- Add support for **Google Antigravity** IDE and CLI
sessions ([Antigravity](https://antigravity.google),
Google's agentic IDE). The IDE parser opens per-session
SQLite databases under `~/.gemini/antigravity/conversations/`
and decodes the protobuf step payloads; the CLI parser
reads `~/.gemini/antigravity-cli/` and surfaces the
plaintext `brain/` artifacts and `history.jsonl`. Setting
`ANTIGRAVITY_KEY` to the base64-encoded AES key
additionally decrypts the `.pb` transcripts, mirroring the
strategy used by the upstream
[`antigravity_decryptor`](https://github.com/arashz/antigravity_decryptor)
Python tool. Override the directories with `ANTIGRAVITY_DIR`
/ `antigravity_dirs` and `ANTIGRAVITY_CLI_DIR` /
`antigravity_cli_dirs`.
- Add support for **[Qwen Code](https://github.com/QwenLM/qwen-code)**
(`~/.qwen/projects/`, override with `QWEN_PROJECTS_DIR`
or `qwen_project_dirs`), **QClaw**
(`~/.qclaw/assets/static/agents/`, override with `QCLAW_DIR` or
`qclaw_dirs`), and **WorkBuddy**
(`~/.workbuddy/projects/`, override with
`WORKBUDDY_PROJECTS_DIR` or `workbuddy_project_dirs`).
WorkBuddy includes inline subagent linking via
`<sessionId>:subagent:<subagentId>` IDs.
- Add support for the **current Kiro CLI SQLite store** at
`~/.local/share/kiro-cli/data.sqlite3`. The Kiro CLI
parser now reads both the legacy
`~/.kiro/sessions/cli/` JSONL layout and the SQLite
`conversations_v2` table; when the same conversation
exists in both, the SQLite record wins.
- Add **PostgreSQL curation metadata** to `pg push`.
Starred sessions and pinned messages now sync to two new
tables (`starred_sessions`, `pinned_messages`) so curation
state is shared across machines through the same push.
Pinned messages are reconciled by `source_uuid`, so pins
survive message-ordinal shifts after a re-parse.
- Add [configurable insight agent binaries](/insights/#configuring-agent-binaries).
Set `[agent.<name>] binary = "..."` in
`~/.agentsview/config.toml` to point each insight-generation
agent (Claude, Codex, Copilot, Gemini, Kiro) at a specific
executable. When unset, AgentsView falls through to the
default `PATH` lookup.
**Improvements**
- Add a [follow latest message toggle](/usage/#follow-latest-message)
to the session header. While active, the message list
auto-scrolls to the newest message as updates stream in;
clicking a specific message or scrolling up cancels the
follow. The preference is persisted in localStorage.
- Honor the [Normal and Focused transcript modes](/usage/#focused-transcript-mode)
in the standalone HTML export. The exported file now ships
with a Normal / Focused radio toggle in the document
header, so a recipient who only wants the user-and-final
view can flip into Focused mode without re-running the
export.
- Add **copy buttons to code blocks** in session messages,
matching the per-message copy action. The button appears
on hover/focus over the code block and copies the raw
code (no fences).
- Import richer **Hermes** state-database metadata —
parent-continuation chains, titles, per-message token
usage, and inline cost — and classify Hermes compaction
handoffs as compact-boundary system messages. Hermes now
contributes to `agentsview usage` totals.
- Normalize **Gemini** per-message token usage into the
same `input_tokens` / `output_tokens` /
`cache_creation_input_tokens` / `cache_read_input_tokens`
shape used by Claude and Codex, with Gemini thoughts
counted toward output tokens and cached prefix toward
cache reads. Gemini sessions now produce real cost rows
in `agentsview usage` instead of showing up only in the
models-used list.
- Note Homebrew Cask in the README install section:
`brew install --cask agentsview` is the recommended
desktop-app install on macOS.
- Rename the upstream repository to
[`github.com/kenn-io/agentsview`](https://github.com/kenn-io/agentsview),
publish the container image at
`ghcr.io/kenn-io/agentsview`, and adopt the
`go.kenn.io/agentsview` vanity Go module path. All
references in the docs site have been updated to match.
**Bug fixes**
- Load the sidebar from a new skinny session-index endpoint
so large refreshes no longer trip a render storm against
the full session payload — the index returns lightweight
rows and the visible rows hydrate on demand.
- Widen the server's CSP `connect-src` to allow `http:`,
`https:`, `ws:`, and `wss:` origins so the desktop app's
**Connect to Remote Server** action can reach external
AgentsView instances. Other CSP directives stay pinned
to `'self'`.
- Skip slash-command first messages (`/login`, `/plan`,
`/clear`, …) when computing the sidebar preview text,
instead of the previous allowlist that only covered
`/clear` and `/effort`. The slash-prefix heuristic
matches any `/<word>` followed by end-of-string or
whitespace, so absolute file paths in user messages
still surface normally.
- Fix a Windows desktop sidecar lock during in-place
updates — the bundled Go server is now stopped only
immediately before the Tauri updater swaps the binary,
so the download phase no longer races against the
running `agentsview.exe`.
- Harden temporary-directory cleanup in tests against
open SQLite handles on Windows by forcing a GC and
retrying `RemoveAll` with exponential backoff. CI-only
change.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for fixing a Windows desktop update sidecar lock, supporting configured insight agent binaries, importing Hermes state-database metadata and usage, the copy action on session code blocks, and the go.kenn.io vanity module path.
- Thanks to [Trent Nelson](https://github.com/tpn) for clarifying insight generation in read-only mode and Normal/Focused transcript modes in HTML exports.
- Thanks to [Matej Sychra](https://github.com/suculent) for Qwen Code agent support.
- Thanks to [Muescha](https://github.com/muescha) for the Homebrew Cask install note in the README.
- Thanks to [Bob N](https://github.com/danxtshake) for reading the current Kiro CLI SQLite session store.
- Thanks to [Christopher Swingley](https://github.com/cswingle) for skipping any slash command when computing the session preview.
- Thanks to [Evgenii Terekhov](https://github.com/nergal-perm) for normalizing Gemini token usage for cost tracking.
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for supporting Google Antigravity IDE and CLI sessions.
- Thanks to [ArBing Xie](https://github.com/arbing) for QClaw agent support and WorkBuddy agent support.
- Thanks to [lisiyuan656](https://github.com/lisiyuan656) for PostgreSQL curation metadata sync.
---
## 0.29.0
<small>2026-05-10</small>
**New features**
- Add session support for [Piebald](https://piebald.ai), a
database-backed coding agent. AgentsView discovers Piebald's
`app.db` SQLite file under `~/.local/share/piebald/` (override
with `PIEBALD_DIR` or `piebald_dirs`), opens it read-only, and
parses each chat on demand into the standard
user/assistant/tool model. Reasoning parts are surfaced as
`[Thinking]…[/Thinking]` blocks, tool calls are mapped onto
AgentsView's taxonomy, and Piebald's `sub_agent_chat_id`
links parent tool calls to the spawned child chat so subagent
expansion works inline. Per-chat incremental sync only
re-parses rows whose `updated_at` changed.
- Add user-configurable
[worktree project mappings](/configuration/#worktree-project-mappings).
AgentsView normally infers a session's project from its `cwd`,
which doesn't recognize custom worktree layouts like
`~/code/{project}.worktrees/feat/<branch>/` — those sessions
end up grouped under the branch name instead of the parent
repo. The new **Worktree Project Mappings** section in
Settings lets you register a path-prefix → project mapping
per machine, applied to new sessions as they sync and, via an
**Apply** button, retroactively to already-imported sessions.
Mappings live in a `worktree_project_mappings` SQLite table
scoped to the host machine, so mappings created on one machine
never leak into another's view of synced sessions.
**Improvements**
- Add Piebald to the
[supported-agents reference table](/configuration/#session-discovery)
in the README and to the docs.
- Fix sync progress accounting for database-backed agents
(Piebald, OpenCode, Warp, Forge): the terminal `PhaseDone`
callback was overwriting the cumulative `MessagesIndexed`
count with the file-only total, so the post-sync log line
under-reported indexed messages.
- Validate Piebald fork session IDs (`piebald:<chat>-<row>`).
Stale or typoed fork IDs that resolved to a real base chat
but not a real fork row previously returned mtimes and
succeeded silently; they now require an exact `Session.ID`
match in the parsed results.
- Drop the hard-coded agent list from `agentsview --help`. The
list went stale every time a new agent was added; the
README's supported-agents table and the per-agent env vars
below it stay authoritative.
- Update GitHub Actions, Go, and frontend dependencies.
**Bug fixes**
- Discover and import Codex sessions from
`~/.codex/archived_sessions/` in addition to
`~/.codex/sessions/`, supporting both the dated live-session
layout and the flat archived layout. Sessions are deduplicated
by canonical session ID, with live paths preferred when a
session exists in both locations.
- Link Claude `Task` and `Agent` tool calls to their child
subagent sessions when result-side `toolUseResult.agentId` is
the only signal available (queue/progress mapping absent).
The parser also preserves sibling subagent tool calls when
Claude emits additive same-`message.id` assistant chunks, so
parallel subagents under one parent message all link inline.
Existing Claude archives need a full resync to pick up the
populated `subagent_session_id` on historical rows.
**Acknowledgements**
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for documenting Forge in the supported-agents table.
- Thanks to [Kevin Roberts](https://github.com/basekevin) for adding Piebald support.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for importing archived Codex sessions and adding configurable worktree project mappings.
---
## 0.28.0
<small>2026-05-06</small>
**New features**
- Add session support for [Forge](https://forgecode.dev), a
database-backed coding agent. AgentsView discovers
`.forge.db` SQLite files under `~/.forge` (override with
`FORGE_DIR` or `forge_dirs`), opens them read-only, and
parses each conversation on demand into the standard
user/assistant/tool model. Reasoning traces are surfaced as
`[Thinking]…[/Thinking]` blocks, and Forge's nine
agent-specific tool names (`fs_search`, `patch`,
`multi_patch`, `undo`, `remove`, `fetch`, `todo_write`,
`todo_read`, `parallel`) are mapped onto AgentsView's
taxonomy. Per-conversation incremental sync only re-parses
rows whose `updated_at` changed.
**Improvements**
- Preview common tool inputs in the collapsed
[tool block](/usage/#tool-blocks) header so the most
meaningful field shows without expanding. `TodoWrite`
surfaces the in-progress todo (or last todo) with a ``
prefix; `TaskCreate` shows the subject; `TaskUpdate` shows
`#<id> · <status> · <subject>`; `Skill` shows the skill
name; `ToolSearch` shows the first line of the query; and
`Task`/`Agent`/subagent calls show the description (falling
back to the prompt). These previews take precedence over
the first line of `content`, which for these tools is a
generic header that hides the useful information.
- Link Codex `spawn_agent` tool calls to the spawned
subagent's session, so the inline subagent expander in the
message viewer works the same way for Codex sessions as it
already did for Claude `Task` calls.
- Make git outcome metrics opt-in for
[`agentsview stats`](/stats/). Outcome aggregation walks
every session's working directory and shells out to `git`,
which is slow on large repos and brittle when the cwd has
moved or the repo is unavailable. Add
`--include-git-outcomes` to opt into local commit, LOC, and
files-changed totals, and `--include-github-outcomes` to
additionally include GitHub PR counts via `gh` (this
implies `--include-git-outcomes`). The `GHToken` is only
resolved when GitHub outcomes are requested.
**Bug fixes**
- Link Codex App subagent spawn events to the corresponding
child session. The Codex parser now consumes both
`spawn_agent` outputs and
`collab_agent_spawn_end.new_thread_id` events, recognizes
`wait_agent` calls with `targets`, and accepts subagent
notifications that identify children via `agent_path`
alongside the legacy `agent_id`. Without this, related
Codex App subagent sessions did not resolve in the
transcript or in the sidebar's child list.
**Acknowledgements**
- Thanks to [Matthew Jacobs](https://github.com/mjacobs) for adding Forge agent support.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for linking Codex spawn calls to subagent sessions and linking Codex app subagents.
- Thanks to [Mike Baik](https://github.com/wbaik) for linking Claude subagent tool calls.
---
## 0.27.0
<small>2026-05-04</small>
**New features**
- Publish official Docker images. The
[`ghcr.io/kenn-io/agentsview`](https://github.com/kenn-io/agentsview/pkgs/container/agentsview)
multi-arch image (linux/amd64, linux/arm64) is built on tagged
releases and pushes to main, and the repo ships a `Dockerfile`,
`docker-entrypoint.sh`, and a `docker-compose.prod.yaml` example.
The same image runs both `agentsview serve` (default) and
`agentsview pg serve` (set `PG_SERVE=1`). See the
[Quick Start](/quickstart/#docker) for usage.
- Add a [session status indicator](/usage/#session-status-indicator)
that classifies each session by recency and termination state and
surfaces six visual states (working, waiting, idle, stale, unclean,
quiet) on the sidebar dot and the dashboard's Top Sessions table.
Backed by a new `termination_status` column on the `sessions` table
populated by the Claude Code and Codex parsers from per-message
stop reasons. Sessions can now be filtered by status from the
[filter dropdown](/usage/#session-filters) or via the new
`?termination=` URL parameter.
- Use Copilot CLI's `workspace.yaml` `name` field as the session
title when present, falling back to the first user message
otherwise. Copilot itself writes a short generated or user-set
name to that file, so sessions now show meaningful titles like
*"Fix login authentication bug"* instead of the verbatim first
prompt. Existing AgentsView display-name overrides still win.
**Improvements**
- Degrade large watch trees instead of failing server startup. When
the recursive file watcher hits its 8192-directory budget or the
OS inotify/file-descriptor limit (`EMFILE`/`ENOSPC`), the affected
root falls back to the existing 15-minute periodic sync plus a new
2-minute poll loop, and the server logs which roots are watched
vs. polled. The HTTP listener now binds before the watcher is
registered, so users hitting these limits no longer see startup
abort with `socket: too many open files`.
- Sessions, Usage, and the Analytics dashboard now share a single
filter store: machine, agent, project, min user-message, and
one-shot/automated toggles applied in the sidebar carry across to
the Usage page header and the dashboard panels. The Usage page
reuses the same `SessionFilterControl` widget with searchable
agent and machine multi-selects (the sidebar's **Status** pills
are sidebar- and dashboard-only).
- Fix the README `agentsview stats` reference (the README previously
showed the non-existent `agentsview session stats` form).
**Bug fixes**
- Return `409 Conflict` when uploading a session that is already
excluded by config or sitting in the trash, instead of silently
dropping the upload.
- Allow compaction-boundary summary cards to expand in the message
viewer. Long or multi-line summaries get a "Show full summary"
toggle; short summaries stay inline.
- Read the `model` and `usage` fields from OpenClaw assistant turns
so `agentsview usage daily --agent openclaw` reports actual cost
and token totals instead of `$0.00`.
- Synthesize `Message.ID` from the message ordinal in
[`pg serve`](/pg-sync/) responses. PG's `messages` table has a
composite primary key (`session_id`, `ordinal`) and no `id`
column, which previously left every row with `id = 0` and broke
Svelte's keyed `{#each}` rendering in the message viewer.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for fixing session and usage filter behavior and tests covering Codex assistant blockquotes.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for using the Copilot workspace.yaml name as the session title.
- Thanks to [zerone0x](https://github.com/zerone0x) for fixing the README stats command reference, allowing compaction-boundary summaries to expand, and returning 409 for excluded or trashed uploads.
- Thanks to [juno02139](https://github.com/juno02139) for extracting OpenClaw per-message token usage and model.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for adding session termination status detection and StatusDot UI.
- Thanks to [Aaron Florey](https://github.com/aaronflorey) for the Docker deployment workflow.
---
## 0.26.1
<small>2026-04-30</small>
**Improvements**
- Refresh the filter controls and active-filter displays on the
Sessions, Usage, and Analytics views for clearer state and
more consistent behavior across the three pages.
- Add launchd support for running the PostgreSQL helper service
on macOS.
- Update frontend and Go dependencies.
**Bug fixes**
- Fix session filter behavior in the sidebar.
- Fix Usage page filter behavior and the selected-filter state.
- Keep timing API response arrays non-null.
- Disable the WebKit DMABUF renderer on Linux desktop builds to
avoid rendering issues.
---
## 0.26.0
<small>2026-04-29</small>
**New features**
- Add a [Trends page](/usage/#trends) for ad-hoc term-frequency line
charts over your session history. Plot up to 12 terms — each with
optional pipe-separated variants like `cat|cats` — at day, week, or
month granularity, and optionally normalize counts by message
volume. Backed by both SQLite and PostgreSQL, so the page works
under local `agentsview serve` and shared [`pg serve`](/pg-sync/)
deployments.
- Replace the right-column activity minimap with a richer
[Session Vital Signs](/usage/#session-vital-signs) panel covering
total wall-clock, slowest call, per-category time spent, a
per-category timeline, and a chronological calls list with parallel
groups bracketed and sub-agents expandable inline. Each tool block
in the conversation now also shows a duration badge, and each
assistant message shows a per-turn summary line.
- Make the default date range on the Usage and Analytics dashboards
*rolling* — pages left open across midnight roll the window forward
at the next refresh tick, sync event, or manual refresh, instead of
staying anchored to the day they loaded. Manual date edits or
`?from=…&to=…` URL parameters pin the window; preset buttons (`7d`,
`30d`, `90d`, `1y`) return to rolling mode.
**Improvements**
- Scale call duration bars in the Vital Signs Calls list relative to
the longest call in scope rather than total session wall-clock, so
call-vs-call comparison stays legible in long sessions.
- Lower the progressive-load threshold from 20,000 to 3,000 messages
so large sessions render the message viewer faster — older pages
lazy-load on scroll instead of all loading on session open.
- Reuse the shared `DateRangeSelector` component on the Usage page
for consistent presets and behavior between Analytics and Usage.
- Faster full resync: batched SQLite writes with per-session
savepoints, multi-row inserts for messages and tool calls, and a
single FTS rebuild on the temp database before the atomic swap. On
a 26.7k-session workload, full-resync wall-clock improved from
about 1m17s to about 34s.
- Expand [Gemini ingestion](/configuration/#session-discovery) to
discover and parse the newer streamed `session-*.jsonl` format
alongside the legacy `.json` Gemini session files.
- Render Claude Code `!cmd` bash shortcut wrappers (`<bash-input>`,
`<bash-stdout>`, `<bash-stderr>`) as code blocks in message bodies
and as inline `<code>` in sidebar previews and breadcrumbs, instead
of leaking the literal pseudo-HTML into the UI.
**Bug fixes**
- Recognize managed worktree project paths — Middleman GitHub
worktrees and Codex App's `~/.codex/worktrees/<id>/<repo>` layout —
as the owning repo, so sessions land under the right project
instead of the worktree id.
- Sync OpenCode SQLite sessions when `opencode.db` and the per-file
`storage/` layout coexist in the same root. SQLite virtual paths
are used as a fallback for source lookup and single-session sync
in those hybrid roots.
- Surface Claude Code `queued_command` attachments — the user
prompts submitted while a tool call is still running — as regular
user messages in the transcript instead of dropping them. The
embedded `dataVersion` bumps from 19 to 20 so existing databases
re-parse on next startup and recover any previously missed
mid-flight messages.
- Run remote [SSH sync](/commands/#agentsview-sync) commands through
`sh -c` so command parsing is independent of the remote login
shell and embedded single quotes are escaped safely.
- Atomically swap the binary during self-update by staging the new
binary at `dstPath + ".new"` (with the executable bit already set)
and renaming it into place, so concurrent `agentsview` invocations
during an update no longer hit a partially written or
non-executable file.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for reusing the shared date-range selector on the Usage page and recognizing managed worktree project paths.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for the rolling default date range for the Usage and Analytics dashboards, gating the frontend with svelte-check and vitest, the session-duration UX, and rendering Claude Code bash shortcut wrappers as code blocks.
- Thanks to [Aaron Florey](https://github.com/aaronflorey) for syncing OpenCode SQLite sessions in hybrid roots and running remote SSH sync commands through a POSIX shell.
- Thanks to [Christopher Swingley](https://github.com/cswingle) for the Gemini JSONL import fix.
---
## 0.25.0
<small>2026-04-25</small>
**Improvements**
- Use `is_automated` consistently across [`agentsview stats`](/stats/)
totals, archetypes, distributions, and agent portfolio metrics, so
the stats report uses the stored automation classification instead
of mixing in older user-message-count heuristics.
- Rename the data directory environment variable to
`AGENTSVIEW_DATA_DIR`. The legacy `AGENT_VIEWER_DATA_DIR` name is
still accepted as a fallback when the canonical variable is unset.
- Build and test against Go 1.26. Source builds now require Go
1.26+ with CGO.
**Bug fixes**
- Filter synthetic Copilot skill messages from parsed conversations,
so injected skill context no longer affects stored transcripts,
first messages, or user-message counts.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for NilAway lint checks and updating the build to Go 1.26 and fixing an arm64 desktop test flake.
- Thanks to [Tim O'Guin](https://github.com/timoguin) for filtering synthetic Copilot skill messages.
---
## 0.24.0
<small>2026-04-23</small>
**New features**
- Add OpenCode storage-backed session support. AgentsView now
auto-detects when an OpenCode root uses the per-file `storage/`
layout (`storage/session`, `storage/message`, `storage/part`)
and parses the JSON files directly. The legacy `opencode.db`
SQLite backend is still read transparently when that's what's
present — see [Session Discovery](/configuration/#session-discovery).
- Add [custom model pricing](/token-usage/#custom-model-pricing)
via `[custom_model_pricing.<model>]` tables in
`~/.agentsview/config.toml`, for models not in the LiteLLM
catalog or when you want to override the catalog's rates.
- Add configurable [automation patterns](/configuration/#automated-session-detection)
via `[automated] prefixes`, `substrings`, and `exact_matches` in
`~/.agentsview/config.toml`, so single-turn sessions with
first-message patterns unique to your own automation get filtered
from session lists and analytics alongside the built-in roborev
patterns.
**Improvements**
- Broaden built-in automated-session detection to cover Claude
Code conversation-title generation, warmup pings, roborev
review combiner prompts, and AgentsView's own changelog
generator.
- Refresh the `is_automated` classification at startup, using a
classifier hash that covers built-in patterns and configured
`[automated]` patterns, so edits to automation rules and rows
imported from other archives get re-labeled without a manual
resync.
- Improve Claude first-message selection in the sidebar by
skipping leading `/clear` and `/effort` command envelopes so
the session preview shows the next real user message instead.
**Bug fixes**
- Narrow OpenCode's storage-mode file-watch root to the `storage/`
subtree, reducing inotify pressure and spurious watch events on
binaries, logs, and caches. SQLite mode continues to watch the
`opencode.db` parent.
- Stop orphaned subagent/fork rows from surfacing as top-level
groups in the sidebar when their parent session has been
filtered or rotated off disk.
- Fix Codex parser handling so `codex exec` sessions interrupted
mid-run (which emit a synthetic `<turn_aborted>` user message)
are classified and counted correctly.
**Acknowledgements**
- Thanks to [Eran Sandler](https://github.com/erans) for adding OpenCode storage-backed session support.
- Thanks to [Antoine](https://github.com/anth2o) for custom model pricing via config.
---
## 0.23.5
<small>2026-04-20</small>
**Improvements**
- Coalesce rapid dashboard update events to cap refetch frequency and keep the UI smoother under heavy activity.
---
## 0.23.1
<small>2026-04-19</small>
**Bug fixes**
- Usage reporting excludes cached Codex tokens from `input_tokens`, making token totals more accurate.
---
## 0.23.0
<small>2026-04-19</small>
**New features**
- Add live dashboard refresh via Server-Sent Events so the Sessions and Usage views update without a full page reload when new sync data lands.
- Add [session intelligence](/session-intelligence/) with health signals, outcome classification, score/grade badges, a per-session signal panel, and aggregated dashboard health analytics.
- Add the [`agentsview session`](/session-api/) CLI as a programmatic surface for listing, inspecting, exporting, syncing, and watching session data.
- Add markdown export for sessions via `/api/v1/sessions/{id}/md`, including optional child-session depth controls.
- Add SSH remote sync to [`agentsview sync`](/commands/#agentsview-sync) so a local archive can pull session data from a remote machine over SSH.
- Add PostgreSQL-backed usage reporting so the Usage dashboard and related endpoints work under [`agentsview pg serve`](/pg-sync/).
- Add [`agentsview stats`](/stats/), an experimental window-scoped reporter for session, git, and outcome activity across the local archive.
**Improvements**
- Require the explicit `serve` subcommand to start the server; plain `agentsview` now shows help.
- Show session names in the Usage page's Top Sessions by Cost table.
- Preserve active filters when switching between the Sessions and Usage tabs.
- Link the Usage page's `Project | Model | Agent` group-by selectors so the chart and attribution panel stay in sync.
- Make incremental parsing more reliable by validating files with inode and device tracking in addition to size and mtime.
- Rewrite the project README as a clearer user-facing guide.
**Bug fixes**
- Surface the underlying login-shell probe failure reason for arm64 desktop flake cases instead of hiding the root cause.
- Only self-heal the frontend events store on transient failures, avoiding permanent retry loops against unsupported event streams.
- Accept raw session IDs in `agentsview token-use` in addition to canonical stored IDs.
- Resolve ephemeral `serve` port handling correctly.
- Parse Claude Code CLI JSON array output correctly in insight generation.
- Recognize the `"helpful assistant"` prefix as an automated session.
- Skip git-root walking for foreign-OS working directories.
**Acknowledgements**
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for linking usage group-by selectors, migrating command tree to Cobra, adding markdown session export, resolving ephemeral serve port, showing session name in Top Sessions by Cost, and preserving filters when switching between the Sessions and Usage tabs.
- Thanks to [Jesse Robbins](https://github.com/jesserobbins) for correctly parsing Claude Code CLI JSON array output in insight generation.
- Thanks to [Trent Nelson](https://github.com/tpn) for PostgreSQL-backed usage reporting.
- Thanks to [Phillip Cloud](https://github.com/cpcloud) for live dashboard refresh via Server-Sent Events and self-healing the frontend events store only on transient failures.
- Thanks to [AO](https://github.com/andrewwowens) for inode/device tracking to validate incremental parses.
---
## 0.22.2
<small>2026-04-13</small>
**Bug fixes**
- Correct fallback pricing for Claude Opus 4.6 so usage cost estimates use the proper `$5` input and `$25` output rates.
---
## 0.22.1
<small>2026-04-13</small>
**Bug fixes**
- Keep Codex model detection consistent during incremental syncs so usage reporting stays accurate.
---
## 0.22.0
<small>2026-04-13</small>
**Improvements**
- Extend usage cost tracking to [OpenCode and Pi](/token-usage/#agent-coverage) sessions alongside Claude Code and Codex. Their token counts now flow into the [Usage dashboard](/token-usage/#usage-dashboard) and `agentsview usage` CLI reports.
- Refine the Usage dashboard summary cards and cost-over-time chart for clearer cost reporting.
**Bug fixes**
- Sync Codex `exec` sessions so execution activity appears reliably in AgentsView.
- Fix usage accounting so total cost data stays complete across supported providers.
---
## 0.21.0
<small>2026-04-13</small>
**New features**
- Add a [token usage dashboard](/token-usage/#usage-dashboard) to the web UI for exploring cost and token totals across your agent sessions. The new `/usage` page shows summary cards, a cost-over-time chart, a cost attribution treemap with project/model/agent toggles, top sessions by cost, and a cache efficiency panel. Filter by project, agent, model, and date range — filter state is written back to the URL so views are shareable and bookmarkable.
- Add backing API endpoints for the usage dashboard so scripts and external tools can fetch the same summary, time series, and attribution data the UI uses.
**Bug fixes**
- Prevent some Claude usage records from being double-counted in cost and token totals.
- Correct Opus 4.6 pricing in usage cost calculations.
---
## 0.20.0
<small>2026-04-12</small>
**New features**
- Add [`agentsview usage daily`](/token-usage/#agentsview-usage-daily) and [`agentsview usage statusline`](/token-usage/#agentsview-usage-statusline) commands that report token usage and estimated cost by day or for the current day, scoped to Claude Code and Codex sessions. Pricing is pulled from the LiteLLM catalog with an embedded fallback for offline use. See [Token Usage & Costs](/token-usage/) for the full write-up, including benchmarks against `ccusage`.
- Add [OpenHands CLI](/configuration/#session-discovery) session support. Local OpenHands conversations under `~/.openhands/conversations` are discovered, synced, and rendered alongside other agents. A new shallow-watch mode is used for agents that store each conversation in its own subdirectory, so file watchers don't exhaust inotify limits.
- Add [Positron Assistant](/configuration/#session-discovery) session support. Positron is a VS Code–based IDE; chat sessions under `workspaceStorage/*/chatSessions/` are parsed using the VSCode Copilot format. Built-in discovery covers macOS only in 0.20.0 — Linux and Windows users need to set `POSITRON_DIR` or `positron_dirs`.
- Filter pinned messages by the currently selected project. The [Pinned](/usage/#pinned-messages) page only shows pins from the active project, the count badge reflects the filtered total, and a dedicated empty state is shown when the filter yields no results.
**Improvements**
- Drop the Intel macOS desktop builds regression. Release artifacts now include `.dmg` files for both Apple Silicon (`aarch64`) and Intel (`x86_64`) Macs, a Linux `arm64` AppImage for PR artifact coverage, plus the existing Linux `x86_64` AppImage and Windows `.exe`.
- Stop enumerating agent names in CLI help text so the `--agent` flag and one-line descriptions don't go stale every time a new agent lands.
**Bug fixes**
- Auto-recover the macOS desktop app when WKWebView's content process is killed during sleep/wake. A Rust-side focus probe detects a dead WebView and force-reloads it; a JavaScript `visibilitychange` handler pings the backend and reloads if unreachable.
- Honor `pi_dirs`, `cursor_project_dirs`, and `amp_dirs` from `config.toml`. These arrays were previously dropped by the loader because the registry entries for Pi, Cursor, and Amp were missing `ConfigKey`.
- Claude Code streaming messages were being recorded multiple times by the parser, inflating historical input-token totals by roughly 2×. The parser now deduplicates them. After upgrading, the first `agentsview usage` invocation triggers a full resync so historical totals are recomputed with the fix.
- Codex sessions now capture the per-request `token_count` events embedded in `event_msg` entries, so Codex messages populate token usage (and therefore show up in [`agentsview usage daily`](/token-usage/)) where they previously reported zero.
**Acknowledgements**
- Thanks to [kinglau66](https://github.com/kinglau66) for fixing the stale synced-status label and showing the exact sync time on hover.
- Thanks to [Srujun Thanmay Gupta](https://github.com/srujun) for adding Hermes Agent session support.
- Thanks to [Mario Witte](https://github.com/mariow) for adding Warp agent support.
- Thanks to [nodivbyzero](https://github.com/nodivbyzero) for adding Positron Assistant session support.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for filtering pinned messages by the selected project.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for restoring the Intel macOS desktop build.
- Thanks to [Rajiv Shah](https://github.com/rajshah4) for adding OpenHands CLI session support and shallow watch mode.
---
## 0.19.0
<small>2026-04-08</small>
**New features**
- Add Warp agent session support, reading AI conversations from Warp's local SQLite database with tool call breakdowns and token usage.
- Add Hermes Agent session support across CLI, Discord, webhook, and cron platforms, with per-platform project grouping and skill prefix handling.
- Add Cortex Code session support for Snowflake's AI coding agent, parsing both embedded-history and split-file formats.
- Add Kiro CLI and Kiro IDE session support for Amazon's AI coding assistant, including unified diff rendering for edit actions.
- Add Cursor session history with resume (`cursor agent --resume`) and automatic workspace recovery via `--workspace`.
- Add the ability to resume Claude sessions in Claude Desktop via the session resume menu (macOS).
**Improvements**
- Add [project filtering](/pg-sync/#project-filtering) to `pg push` with `--projects`, `--exclude-projects`, and `--all-projects` flags plus config file equivalents. A new [`agentsview projects`](/commands/#agentsview-projects) command lists all projects with session counts.
- Add an opt-out for the update check via `disable_update_check` in config, `AGENTSVIEW_DISABLE_UPDATE_CHECK=1` environment variable, or `--no-update-check` CLI flag.
**Bug fixes**
- Fix the synced status label staying stale after a sync completes. The relative time now refreshes every 10 seconds, and hovering shows the exact sync timestamp.
**Acknowledgements**
- Thanks to [Jacob Struzik](https://github.com/jstruzik) for resuming Claude sessions in Claude Desktop.
- Thanks to [Christian Bush](https://github.com/cbb330) for Cursor session history with resume and workspace recovery.
- Thanks to [AO](https://github.com/andrewwowens) for adding Cortex Code session support.
---
## 0.18.0
<small>2026-04-02</small>
**New features**
- Import [Claude.ai and ChatGPT conversations](/chat-import/) into AgentsView. Upload the zip file export from either service via the UI or CLI to bring your full conversation history — including ChatGPT images — into your local database alongside your agent coding sessions.
- Show token usage metrics across sessions, analytics views, and exports. Session breadcrumbs display peak context and output tokens, the analytics dashboard includes output token summary cards and heatmap metrics, and CSV exports include token totals.
**Improvements**
- Detect automated roborev sessions and filter them out of session lists, counts, and analytics by default. An "Include automated" toggle in the session filter dropdown opts back in.
**Bug fixes**
- Keep pinned messages pinned after a session resync. Previously, re-syncing a session's messages could silently remove all pins due to cascade deletes; pins are now preserved by matching on message ordinal.
- Reduce WebView memory usage when rendering message content by rekeying content-parser caches on message ID instead of full message text and lowering cache capacity.
**Acknowledgements**
- Thanks to [Trent Nelson](https://github.com/tpn) for token-usage metrics across sessions, analytics, and exports.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for preserving pinned messages after a session resync.
---
## 0.17.1
<small>2026-03-29</small>
**Bug fixes**
- `pg serve` automatically applies pending PostgreSQL schema migrations on startup, reducing upgrade friction and startup failures.
**Acknowledgements**
- Thanks to [Thomas Maloney](https://github.com/tlmaloney) for auto-migrating the PostgreSQL schema on pg serve startup.
---
## 0.17.0
<small>2026-03-28</small>
**New features**
- Add a session activity minimap with click-to-navigate support for quickly jumping to activity hotspots within a session.
- Add a resizable session sidebar so you can drag the divider to adjust the layout to fit your workflow.
- Capture and display Codex subagent result events in session transcripts, with an expandable history of status updates per tool call.
**Improvements**
- Support Cursor's nested transcript directory layout for more reliable transcript discovery.
**Bug fixes**
- Restore Copilot as an insight-generation agent alongside Claude, Codex, and Gemini.
- Fix transcript strip pill spacing in WebKit browsers.
**Acknowledgements**
- Thanks to [Trent Nelson](https://github.com/tpn) for a resizable session sidebar and modeling Codex subagent result events.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for fixing transcript-strip pill spacing in WebKit.
- Thanks to [Christian Bush](https://github.com/cbb330) for supporting Cursor's nested transcript directory layout.
---
## 0.16.2
<small>2026-03-25</small>
**Bug fixes**
- Detect Claude conversation forks across the full reply subtree so branched threads display correctly.
---
## 0.16.1
<small>2026-03-25</small>
**Bug fixes**
- Fix Linux container builds by disabling VCS stamping in the Go build.
**Acknowledgements**
- Thanks to [Trent Nelson](https://github.com/tpn) for adding managed Caddy support to pg serve and adding multi-host machine filtering and labels.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for adding URL-based session linking.
---
## 0.16.0
<small>2026-03-24</small>
**New features**
- Add direct URL links for opening specific sessions, enabling bookmarks and sharing of session deep links.
- Add machine labels and multi-host filtering to separate sessions by source machine in shared deployments.
- Add focused transcript mode with a responsive header that strips intermediate tool calls and thinking blocks for easier reading.
- Add `Del` as a keyboard shortcut to delete or archive the selected session.
- Add Kimi (Moonshot AI) session support for importing and viewing Kimi conversations.
- Add PostgreSQL push sync and a read-only server mode (`pg push`, `pg serve`) for shared multi-user deployments backed by a central PostgreSQL database.
**Improvements**
- Group command palette search results by session, add a relevance/recency sort toggle, and match against session names in addition to message content.
- Show model information in the session UI, including Codex session models, displayed in message headers.
- Use OpenCode session titles as display names in the session list.
- Improve the mobile layout for smaller screens with a responsive sidebar and viewport-aware keyboard shortcuts.
- Add managed Caddy support to `pg serve` for simpler TLS-terminated shared deployments.
- Publish platform-specific wheels to PyPI for easier installation via `pip install agentsview`.
- Add standard macOS app menu actions for Hide and Hide Others.
**Bug fixes**
- Show user messages that begin with skill or command invocations (e.g. `[Skill: name]`) in transcripts instead of hiding them.
- Prevent Linux desktop app freezes with improved runtime CSP handling in the Tauri configuration.
- Restore desktop copy, paste, and cut keyboard shortcuts through the Edit menu.
- Fix pinned message navigation in very large sessions where the virtualizer could stop mid-scroll before reaching the target message.
- Surface insight generation errors directly in the UI with error status and message display instead of silently failing.
**Acknowledgements**
- Thanks to [Thomas Maloney](https://github.com/tlmaloney) for PostgreSQL push sync and read-only server mode and showing user messages that begin with skill or command invocations.
- Thanks to [CL Kao](https://github.com/clkao) for showing which model Codex sessions use.
- Thanks to [Adam Hjerpe](https://github.com/hjerpe) for using the OpenCode session title as the display name.
- Thanks to [Gary Ritchie](https://github.com/gtritchie) for Hide and Hide Others actions in the macOS app menu.
- Thanks to [0xjjjjjj](https://github.com/0xjjjjjj) for the mobile responsive layout.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for repairing pinned-message navigation in large sessions.
- Thanks to [Li Ye](https://github.com/liye71023326) for adding Kimi (Moonshot AI) agent support.
- Thanks to [Maxim Khailo](https://github.com/mempko) for fixing a Linux desktop app freeze with layered CSP and runtime port pinning.
- Thanks to [Trent Nelson](https://github.com/tpn) for a focused transcript mode with a responsive header.
- Thanks to [Stan Rosenberg](https://github.com/srosenberg) for a Del-key shortcut to delete or archive sessions.
---
## 0.15.0
<small>2026-03-17</small>
**New features**
- Add `agentsview token-use`, a CLI command that outputs machine-readable token usage data for scripts and automation.
**Improvements**
- Improve cross-platform token usage reporting on macOS, Linux, and Windows.
- Make token usage insights more consistent across application and system restarts.
**Bug fixes**
- Fix cases where token usage can be attributed to the wrong process after PID reuse or restarts.
---
## 0.14.0
<small>2026-03-15</small>
**New features**
- Add in-session search with `Cmd+F` / `Ctrl+F` and keyboard navigation between matches for finding text within a session's messages.
- Display token usage for each session, showing input and output token counts in the session detail header.
- Add Zencoder CLI session support for importing and viewing Zencoder conversations.
- Add GitHub Copilot CLI resume support in the session dropdown, letting you reopen Copilot CLI sessions directly.
- Ship Linux desktop builds as AppImages, adding Linux to the desktop app platform matrix alongside macOS `.dmg` and Windows `.exe`.
**Improvements**
- Improve insight agent detection for sandboxed sessions and GitHub Copilot, producing more accurate and relevant insights.
- Speed up session resync for larger histories, reducing the time to re-parse all session files.
**Bug fixes**
- Fix updater output so the verify step starts on a new line after download progress.
**Acknowledgements**
- Thanks to [Aleksei Sotov](https://github.com/asotov-zen) for adding Zencoder CLI agent support.
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for adding Copilot CLI resume support to session dropdown and in-session search with keyboard navigation, plus a resync performance fix.
- Thanks to [CL Kao](https://github.com/clkao) for collecting and displaying per-session token usage.
---
## 0.13.0
<small>2026-03-12</small>
**New features**
- Add a Settings page for appearance, terminal, GitHub, agent directory, and remote access options — centralizing configuration that was previously spread across individual modals and config file edits.
- Add remote access with bearer token authentication, trusted public origins, and managed Caddy reverse proxy mode for secure multi-device access.
- Organize sub-agents and teams in a collapsible tree view in the sidebar, making complex multi-agent sessions easier to navigate.
- Update live sessions incrementally as new activity arrives, replacing full refreshes for faster real-time updates.
- Add desktop zoom controls for adjusting the interface scale.
**Improvements**
- Skip common dependency and build folders (e.g. `node_modules`, `__pycache__`, `.git`) during recursive watching to reduce noise and overhead.
- Show release information in a new About dialog accessible from the header.
- Shut down cleanly on `Ctrl+C` and stop auto-opening the browser on startup by default.
**Bug fixes**
- Preserve original project name casing in group headers.
- Resolve project names correctly for deleted nested worktrees.
- Fix navigation issues in the Windows desktop app.
**Acknowledgements**
- Thanks to [Trent Nelson](https://github.com/tpn) for adding trusted public origins and managed Caddy mode.
- Thanks to [Ben Sedat](https://github.com/bsedat) for excluding common dependency and build directories from the recursive watcher.
- Thanks to [TalesOfThales](https://github.com/userFRM) for a centralized settings page with remote-access authentication and a configurable API base URL, the sub-agent and team tree view with collapsible hierarchy, and preserving project-name casing in group headers.
---
## 0.12.0
<small>2026-03-10</small>
**New features**
- Add iFlow agent support for importing and viewing iFlow conversations, including JSONL session parsing and tool calls.
- Add a session resume menu with three actions: reopen a session, launch a terminal in its working directory, and open the directory in Finder/Explorer.
- Ship packaged desktop releases (`.dmg` for macOS, `.exe` for Windows) as the recommended install path, with built-in auto-update support.
**Improvements**
- Replace the single-select agent filter with a multi-select agent filter, allowing multiple agents to be selected at once.
- Improve cross-platform path handling for more reliable session discovery on Windows and WSL.
**Bug fixes**
- Fix Amp tool output rendering so tool results display correctly in expanded tool blocks.
**Acknowledgements**
- Thanks to [Michael Chapman](https://github.com/MCBoarder289) for surfacing Copilot reasoningText as thinking blocks.
- Thanks to [CL Kao](https://github.com/clkao) for category-based tool-metadata dispatch for cross-agent consistency.
- Thanks to [Song Li](https://github.com/boltomli) for iFlow agent support, the multi-select agent filter, and cross-platform path handling fixes.
- Thanks to [Luis Colunga](https://github.com/sinnet3000) for fixing missing Amp tool output in the UI.
---
## 0.11.0
<small>2026-03-08</small>
**New features**
- Add Pi agent support for importing and viewing Pi conversations, including JSONL session parsing, thinking blocks, and tool calls.
- Add an `agentsview sync` command to populate the database without starting the HTTP server. Supports a `--full` flag to force a complete resync.
- Add session renaming (double-click or right-click context menu), soft delete with trash and undo, and pinned messages with a gallery view.
- Persist starred sessions in SQLite so stars survive server restarts. Existing localStorage stars are automatically migrated on first load.
**Improvements**
- Exclude single-turn sessions (one or fewer user messages) by default in session lists and analytics views to reduce noise. A new "Include single-turn" toggle in the sidebar filter dropdown opts back in.
- Normalize tool metadata across agents so tool calls from Gemini, Pi, and other agents display with the same metadata tags as their Claude equivalents.
**Bug fixes**
- Align timestamps between message headers and grouped tool call headers so they sit at the same right edge in all layouts.
- Show Copilot `reasoningText` as thinking blocks instead of discarding it.
- Extract Gemini tool results more reliably and recognize additional Gemini tool names (`replace`, `run_shell_command`, `grep_search`, `glob`, `list_directory`).
**Acknowledgements**
- Thanks to [TalesOfThales](https://github.com/userFRM) for OpenClaw agent support, removing the redundant toggle-thinking button, persisting starred sessions in SQLite, and session management with rename, trash/undo, and pinned messages.
- Thanks to [CL Kao](https://github.com/clkao) for storing tool-result content with a category blocklist, the sync subcommand that populates data without serving, and extracting Gemini tool-result content and expanding tool-name coverage.
- Thanks to [Cesar Arze](https://github.com/carze) for adding Pi agent support.
---
## 0.10.0
<small>2026-03-04</small>
**New features**
- Add Amp, VS Code Copilot, and OpenClaw agent support, including session parsing, filtering, and agent-colored display.
- Add a Tauri-based desktop app wrapper that runs the web UI in a native window (in development, not yet released).
- Add session starring with `s` key toggle and a starred-only filter for quick access to important sessions.
- Add switchable message layouts — Default, Compact, and Stream — cycled with the `l` key.
- Add collapsible sidebar grouping by agent to organize sessions by tool.
- Add block-type filtering to toggle visibility of user messages, assistant responses, thinking blocks, tool calls, and code blocks.
- Add a copy button on message headers to copy message content to the clipboard.
- Add inline subagent transcript viewing for Task and Agent tool calls, loading the full subagent conversation on demand.
**Improvements**
- Enrich Codex tool call display with structured formatting for bash, write_stdin, and apply_patch calls.
- Store tool result content alongside tool calls, with configurable category blocklists to control database size.
- Use a non-destructive database resync flow that preserves existing session data instead of dropping the database.
- Simplify the message viewer header by removing the dedicated toggle-thinking button (use block-type filtering instead).
**Bug fixes**
- Return an empty array instead of `null` from the sessions API when no sessions match.
- Fix dashboard date handling in analytics and insights views for consistent date-range filtering.
**Acknowledgements**
- Thanks to [Luis Colunga](https://github.com/sinnet3000) for Amp agent support and centralizing the agent registry.
- Thanks to [Christoph Deil](https://github.com/cdeil) for returning an empty array instead of null from the sessions API and adding VSCode Copilot agent support.
- Thanks to [thellert](https://github.com/thellert) for subagent transcript viewing for Task and Agent tool calls.
- Thanks to [TalesOfThales](https://github.com/userFRM) for the per-message copy button, block-type filtering by content category, collapsible sidebar grouping by agent, switchable message layouts (default, compact, stream), and session starring with localStorage persistence.
---
## 0.9.0
<small>2026-02-27</small>
**New features**
- Add Cursor agent support, including parsing Cursor sessions and filtering them in the UI.
**Improvements**
- Show tool call parameters in expanded tool blocks for better execution visibility.
- Restrict CORS to `localhost` origin to improve local security defaults.
**Bug fixes**
- Fix `install.sh` version parsing so installs work correctly with minified release JSON.
**Acknowledgements**
- Thanks to [procrypt](https://github.com/procrypto) for restricting CORS to the localhost origin.
---
## 0.8.0
<small>2026-02-26</small>
**New features**
- Replace the project dropdown with a filterable typeahead to find and switch projects faster.
**Improvements**
- Improve resync reliability so session data stays in sync more consistently.
- Polish startup UX to make initial loading clearer and smoother.
**Bug fixes**
- Fix Gemini message parsing and display for thinking blocks.
- Fix text selection inside tool call blocks.
**Acknowledgements**
- Thanks to [CL Kao](https://github.com/clkao) for the session DAG view with fork detection and subagent linking.
- Thanks to [Marius van Niekerk](https://github.com/mariusvniekerk) for fixing text selection inside tool-call blocks and the filterable project typeahead.
---
## 0.7.0
<small>2026-02-25</small>
**New features**
- Add a session DAG view that detects forks and shows branch relationships.
- Add inline subagent linking so parent and subagent conversations are connected in context.
- Add an `All` option to the Analytics date range picker.
- Add a `Hide unknown` filter to reduce noise from unclassified items.
**Improvements**
- Improve Gemini project resolution for more accurate project attribution.
- Update Gemini model handling to support newer model variants.
**Bug fixes**
- Fix Analytics message counting so totals match actual message data.
- Fix agent color assignment for more consistent visual identification.
---
## 0.6.0
<small>2026-02-25</small>
**New features**
- Support multiple Claude project directories, including mixed Windows/WSL setups.
- Add session filters to quickly narrow the session list and analytics views.
- Add in-app resync so you can refresh data without restarting AgentsView.
- Support theme control via `postMessage` when embedding AgentsView in an iframe.
**Improvements**
- Condense watcher warnings to reduce noisy sync notifications.
- Add a polling fallback for unwatchable directories to keep sync running reliably.
**Bug fixes**
- Fix an app freeze when search returns no results.
- Fix Gemini project detection so sessions map to the correct project.
---
## 0.5.0
<small>2026-02-25</small>
**New features**
- Add Copilot CLI session support so Copilot CLI conversations appear in AgentsView.
- Add OpenCode session history support so OpenCode conversations can be synced and viewed.
- Show a copyable Session ID in the session detail header for quicker sharing and lookup.
**Improvements**
- Improve session source classification and sync coverage for newly supported tools.
- Follow symlinks during project discovery so linked workspaces are detected correctly.
- Improve interrupted-run recovery so valid sync results are preserved more reliably.
**Acknowledgements**
- Thanks to [Shreyas Karnik](https://github.com/shreyaskarnik) for the copyable Session ID in the session detail header.
- Thanks to [CL Kao](https://github.com/clkao) for following symlinks when discovering project directories.
- Thanks to [thellert](https://github.com/thellert) for theme control via postMessage for iframe embedding.
- Thanks to [Nat Torkington](https://github.com/njt) for multi-directory Claude project support (including mixed Windows/WSL), condensed watcher warnings, and a polling fallback for unwatchable directories.
---
## 0.4.1
<small>2026-02-24</small>
**Improvements**
- Speed up sync to reduce startup and refresh time.
- Improve startup logging to make initialization progress clearer.
**Bug fixes**
- Fix insights generation/store behavior to improve stability and accuracy.
- Restore `CLAUDE_NO_SOUND=1` for Claude subprocesses to keep background runs silent.
---
## 0.4.0
<small>2026-02-24</small>
**New features**
- Add AI-powered Insights with multi-agent generation for session analysis.
- Introduce an Insights page to view and manage generated insights.
- Add structured tool-call metadata for clearer, richer tool output display.
**Improvements**
- Normalize worktree project names so sessions stay grouped consistently across worktrees.
- Improve message and tool block presentation for better readability.
**Bug fixes**
- Fix insight generation authentication failures.
- Skip oversized JSONL lines during ingest so one bad line no longer fails the whole session.
- Embed the IANA timezone database to improve timezone support on Windows.
---
## 0.3.2
<small>2026-02-23</small>
**New features**
- Add session continuity via `sessionId` chaining, so resumed conversations stay linked as one ongoing session across sync/import.
**Improvements**
- Improve sidebar session list and item behavior to better represent continued sessions.
- Make session list state updates and virtualization smoother for larger histories.
**Bug fixes**
- Fix cases where continued conversation segments appear as separate sessions instead of a single chain.
- Fix Claude parsing/sync edge cases so session links persist reliably.
---
## 0.3.1
<small>2026-02-22</small>
**Bug fixes**
- Keep exported and gist HTML styling in sync with current app design tokens for consistent visuals.
---
## 0.3.0
<small>2026-02-22</small>
**New features**
- Add an Activity Timeline in Analytics to visualize session activity over time.
**Improvements**
- Improve the message viewer with clearer rendering for code blocks, tool calls, and thinking content.
- Refine the analytics experience for easier session exploration and readability.
- Improve sync performance to load and refresh data faster.
- Update project dependencies to improve compatibility and stability.
- Standardize session count formatting with explicit `en-US` locale handling for consistent display.
---
## 0.2.2
<small>2026-02-22</small>
**Improvements**
- Reduce Hour-of-Week heatmap cell size by 20% for a denser, easier-to-scan analytics view.
**Bug fixes**
- Fix available-port probing to bind the correct host, improving startup reliability.
- Ensure builds compile without frontend assets by providing `go:embed` stubs.
---
## 0.2.1
<small>2026-02-21</small>
**Improvements**
- Improve Codex output parsing so edge cases are handled more reliably.
**Bug fixes**
- Make installer exit on `SHA256SUMS` download failures to prevent incomplete or unverified installs.
---
## 0.2.0
<small>2026-02-21</small>
**New features**
- Render Codex function calls as informative tool blocks in session views and exports.
**Improvements**
- Make the activity calendar full-width and centered for a cleaner analytics layout.
- Increase heatmap cell size (about 20%) to improve readability.
- Combine day and hour activity charts into a more streamlined analytics view.
- Default analytics to a 1-year date range instead of 30 days.
- Match gist/export styling with the app's visual theme for consistent output.
- Filter out system-injected user messages from the message list display.
---
## 0.1.0
<small>2026-02-21</small>
**New features**
- Launch AgentsView with an integrated Go backend and Svelte frontend.
- Add analytics as the home screen with a persistent sidebar.
- Add rich dashboard views, including summary cards, activity timeline, project breakdown, top sessions, and session shape metrics.
- Add hour-of-week heatmap analytics with timezone display and interactive filtering.
- Add tool-aware analytics, including tool usage, thinking/tool counts, velocity metrics, and agent comparison.
- Add analytics permalinks, drill-down navigation, transitions, and CSV export.
- Add Gemini CLI session ingestion.
- Add tool-call ingestion and parsing (including Codex function calls) for deeper analytics.
- Add self-update support and cross-platform install scripts.
- Add frontend/backend version tracking with mismatch detection.
**Improvements**
- Improve dashboard usability with centralized active filter badges, project filtering, top sessions, and layout updates.
- Improve session pane performance and virtualized list stability for deep scrolling.
- Load sessions and selected session messages fully by default for smoother browsing.
- Improve search UX by scrolling to and highlighting the matched message.
- Keep sessions newest-first while showing messages in chronological order.
- Refresh branding with the AgentsView name, periscope logo, and favicon.
- Update assistant message colors to a warmer, higher-contrast palette.
**Bug fixes**
- Fix analytics drill-down behavior so heatmap and project clicks filter and navigate correctly.
- Fix `prune --max-messages` so it counts user messages correctly.
- Fix Claude parsing to skip system-injected user messages.
- Fix chart panels so they stay within dashboard grid bounds.
- Fix route and query handling to reject invalid routes and empty filters.
- Fix concurrent load/search race conditions to keep results consistent.
- Harden markdown sanitization to prevent XSS and preserve escaped content.
- Fix theme persistence when browser `localStorage` is unavailable.
- Fix session-loading edge cases, including short session IDs and empty Gemini directories.
- Fix Darwin release builds by targeting the macOS 15 runner.