Releases
0.6.0Latest
macOS
Added
- Open a workspace pane beside any conversation with its changes, files, and interactive terminals. It previews PDFs, tables, Markdown, and documents, highlights code, draws side-by-side diffs, opens files in their default app, lists the commands the agent ran, and follows file paths and links in the conversation. Resume in terminal types a conversation’s resume command at a workspace terminal’s prompt.
- Import Claude Code cloud and Codex cloud sessions as their own providers. Codex cloud tasks import full transcripts through the saved ChatGPT sign-in, and both imports read every registered profile. Settings → Imports → Cloud agents turns on cloud histories for Claude Code, Codex, the GitHub Copilot coding agent, Amp, Augment, Devin, Jules, Cursor, Factory, OpenHands, Warp, Kilo Code, and Qoder, which the watcher then refreshes every six hours.
- Support the Cursor CLI as a current agent: import its chat and ACP stores,
launch and resume it over
cursor-agent acp, sign in its accounts with isolated profiles, read its usage pools and on-demand spending, and let helpers start it in Agent, Plan, or Ask mode. Cursor sessions are listed as Cursor CLI, Cursor cloud, and Cursor 1, 2, and 3. - Import gptme histories, Posit Assistant conversation trees, NotebookLM Takeout exports, and Ask Devin conversations with their child sessions.
- Open the alternate branches of Claude.ai and ChatGPT conversations from their archived captures, and keep each chat’s model, settings, project, and provider state in one conversation record.
- Show everything a provider recorded about a session, including Devin status, billing, and pull requests, in a record dialog opened from Session details.
- Forecast when each plan limit runs out, list the sessions spending it, and alert once before a provider runs out.
- Answer Claude questions and plan reviews, reply to MCP elicitations, and pick each harness’s own approval choices from one request card in the conversation. Grok Build, Devin, OpenCode, and the Cursor CLI now run over the Agent Client Protocol, so their prompts, questions, and stops reach Hansard.
- Add model-aware Codex speed controls to the composer and settings, carried through launches and resumed runs.
- Add a short first-visit guide to each main page, project coordinators, Imports, and Personal Sync, with rows that sign in or turn a feature on in place, replayable from Settings → About → Guides.
- Announce each release once with New in Hansard, a dialog with the
release’s highlights and the setup steps that apply to this computer, a note
after the first interactive command, and
hansard whats-new. - Add
hansard why <file>:<line>to find the archived agent edit that wrote a line. - Render TeX formulas in conversation text as MathML.
Improved
- Resume turns that quitting, updating, or a crash cut short when Hansard opens again (Resume after a restart turns it off). The desktop quit review now also covers macOS menu, Dock, scripted, and logout quits, orchestrator runs, and terminals running a command; an idle shell prompt does not block quitting. Agent runs and the desktop app start without the launching terminal’s session variables.
- Fold steered messages into a running Claude turn, offer Stop in place of Send while a turn runs (Escape stops it), keep runs streaming across view switches, and paste rich text into composers as Markdown so links keep their addresses.
- Rework remote control (alpha) around Settings → Remote access: one switch allows access, devices list the agents installed and signed in on each, direct connections run over Tailscale by default, a self-hosted relay adds one-use links and a browser conversation page, and a grant reaches every project folder or one portfolio.
- Serve every agent session’s recall tools from one shared MCP host run by the watcher, and keep prompt hooks and MCP startup independent of peer discovery.
- Keep older Hansard copies from rewriting conversations a newer importer archived, and alert when another device’s newer Hansard holds back conversations until this copy updates.
- Offer every installed harness unless it is turned off, list installed
harnesses first in Settings, hide unavailable harnesses from conversation
controls, and import agents installed after setup, as
hansard initdoes. - Run imports, archive maintenance, and diagnostics from Settings, which also shows older imports, the watcher’s copy, and the command line tool. Setup offers detected recoveries on its import page and explains incomplete storage estimates.
- Pair the browser extension and manage its captures from Settings → Imports. The extension gains Hansard icons, a toolbar badge for failures, per-check provider status, and automatic retries of failed capture imports.
- Gather resume, session details, and other conversation actions into one Actions menu led by Resume in terminal, lead the header with the most-used model, show cache reads and writes in the Tokens row, and show a time recorded without a time zone as its recorded clock.
- Show web chat account portfolios on the Projects page and in scoped Stats, and count Claude.ai conversations under their selected model.
- Surface relevant board threads and unread reminders to agents, show board participation, and bring new posts and messages in place.
- Animate the viewer through one shared motion library: panels, sheets, lists, the workspace pane, composer attachments and requests, boards, and charts.
- Recover legacy Antigravity conversations through the running app’s language server, recover Cursor models and token counts from the account’s usage history, and read Devin cloud models from the recorded Devin version.
- Preserve more of what each provider records, with model settings kept apart from reply evidence, for Claude desktop and cloud, Copilot, OpenCode, Factory, Grok Build, Goose, pi, Qwen, MiMo, Qoder, Trae, and Antigravity.
- Bound archive, index, sync, and cache writes against configurable storage
allowances (
storage.limits), keep incomplete raw snapshots from blocking cleanup, explain cleanup blockers in plain language, and recover the archive after an interrupted update withhansard update --list-recoveriesandhansard update --recover. - Offer in-app desktop updates only on Developer ID signed installs and check the signature before downloading.
- Speed up large archives: skip idle heartbeat imports of unchanged sources, re-archive only the Claude subagent runs whose files changed, refresh a dirty search index at most once a minute, load boards from a saved index, write only changed session rows, and build transcript rows within a frame budget.
- Add Sol 6.1, Sonnet 5.5, and Cursor Composer model identities and pricing.
Windows
- Harden the Windows desktop app and CLI: resume conversations in workspace
terminals with
cmd.exesyntax, copy and paste with Windows Terminal keys, minimize to the taskbar while work keeps running, open archived Codex threads in Codex Desktop, find the Cursor CLI, the Codex CLI bundled with Codex Desktop, whisper.cpp, and the running Antigravity language server, and read Claude desktop data from the Microsoft Store package. - Replace in-use binaries when upgrading the Windows app, flush and replace read-only archive files, identify tracked storage by volume and file ID, and move the shared MCP host to another port when Windows refuses the recorded one.
Upgrading to 0.6.0Fixed
- Match native Claude peer deliveries, messages received during a turn, and archived message reads inside Codex tool batches.
- Keep title band alerts visible after their entrance animation, and let an alert’s hover fill reach both edges.
- Stop repeating session briefings on follow-up turns and keep conversation identity stable across follow-up runs.
- Keep Warp imports and memory backup running past inaccessible or macOS-withheld folders.
0.5.6
macOS
Windows
Windows desktop preview
- Add a Windows x64 installer with the Node.js runtime and native dependencies bundled. Installation uses the current user’s account without elevation.
- Add a Windows download to the website and manual installer updates through Settings → About → Check now. This Windows preview is unsigned: Windows may show an unrecognized-app warning or block installation under Smart App Control or an organization’s security policy.
- Align navigation, branding, sidebar controls, alerts, and themed window controls in the Windows title bar while preserving resizing and Snap Layouts.
- Keep background setup, import, and supervisor subprocesses from opening transient console windows on Windows.
The published macOS 0.5.6 installer and its signed native update remain available. Windows updates use a downloaded installer; finish active work and quit Hansard before running it. Automatic CLI installation continues to require a trusted signed release.
Added
- Update the desktop app in place. It checks for releases on launch and hourly, and Update and restart downloads and verifies the signed update, then relaunches with rollback. Active runs and imports defer the restart.
- Control agents on another computer (alpha). A macOS or Linux host accepts
work over SSH or a direct encrypted connection paired with a one-time code;
the composer’s device menu selects the host, provider, and project folder,
and sends, live output, approvals, and interruptions stay in the
conversation.
hansard remoteand the Remote control dock action manage hosts, access grants, and pairing. - Add Boards for persistent discussions: General and topic boards, a
board for each project, portfolio, and detected agent harness, threads with
Follow and in-place search, direct messages with live sessions, and
hansard boards. Agents post project findings on their project board. - Replace the desktop first-run page with a guided multi-page setup that selects history sources, offers to raise agent retention limits, reviews disk space, imports with live progress, and configures agents, the account router, classification, Personal Sync, and Slack. Deferred steps stay at the top of Settings.
- Review running agent work, Deep Recall, and classification before the desktop app quits, with Keep Running in Background, Cancel, or Stop Work and Quit.
- Move primary navigation into an app dock that collapses into a floating island, and add Back and Forward (Command-[ and Command-]), Command-1 through 9 for dock views, and keycap shortcut hints revealed while Command is held.
- Add sidebar themes under Appearance: solid, gradient, and custom themes that color the dock, title band, alerts bar, and optionally the session list, plus animated pixel animals for empty states.
- Attach dropped or pasted images in the conversation composer, including files dropped in the desktop app, and insert dropped file paths at the caret.
- Mark conversations with activity since they were last viewed, and show each conversation’s run state and unread activity in one dot beside its title.
- Add range-scoped Stats headline tiles with marked favorites, leader timelines for models, projects, harnesses, and kinds of work, and Session rhythm charts by local hour, hour of the week, and when each day starts and ends.
- Count mid-turn interruptions for Claude Code, Codex, Grok Build, and OpenCode and compare models by them in Work & autonomy, and show time savings, effective horizons, expertise, and decision ownership from classified work.
- Import Devin Desktop ACP message stores with full tool inputs, capture Devin cloud sessions from signed-in tabs in the browser extension, and keep one archive session per Devin cloud or CLI session across Desktop, web, API, and CLI copies. Devin cloud is listed as its own harness.
- Install managed integrations for Factory Droid, Augment CLI, Cursor IDE,
Cline CLI, GitHub Copilot CLI, Amp, Kimi Code, Kiro, Zed, and Claude
Desktop, and report status and identity from conversations opened directly
in supported agents through
hansard session. - Let Source and Model filters hold several values, and order model and harness filters by capability, use, name, or most recent use.
Improved
- Rebuild Stats charts as ranked tables and bars in place of scatter plots and donuts, give every provider, model, project, and device one color per range, label series with brand and project marks, and open every folded tail in place instead of capping it silently.
- Fold the Behavior page into a Stats Changes tab that compares the
selected range with the equally long period before it;
hansard behavior --startsets the first day of a comparison. - Rework Reliability around ranked error rates, a project error table, API error kinds, and the spend of sessions that hit API errors; rank models by spend in Tokens & spend; and rank Work & autonomy models on judged success with cost per success.
- Label each conversation with one conversation request and one task request, rate ten difficulty facets from 1 to 10, default to the light claude-sonnet-5 and gpt-6-luna models, limit automatic labeling to the last 30 days, run classifier CLIs without tools, MCP servers, project files, or hooks, and add a Jev backend.
- List Accounts sections and accounts in the session browser, rename accounts in place, gather connections that need attention at the top of the page, chart each usage limit’s history, and read Antigravity, Grok Build, Cursor, and Codex workspace plan details.
- Redesign Routing as a summary per tool with one ordered account list, read rule usage about every two minutes with rate-limit backoff, include router quotas in Capture, fold router sign-in into Add account, restart the managed router from the watcher after a restart or crash, and warn that Claude Code routing turns off claude.ai connectors.
- Run every project coordinator from one Settings → Coordinator configuration, start it with the project’s first message, show its whole conversation with helpers as threads, persist its tasks and rules, show its plans, and require verification before a task completes. Orchestrator runs no longer stop at a concurrency cap or elapsed-time deadline.
- Separate passive peer notices from work requests, bound inbox previews
with paged
hansard peers read, list live Codex threads beside Claude Code sessions, and expose coordinator identity through peer and session tools. - Receive Personal Sync changes incrementally through verified inventory
checkpoints, show progress per device, receive device profiles
concurrently, add an upload-only
hansard personal-sync publisherpreset, and keep failed captures from blocking other sync work. - Show ten conversations per folder, hang subagent fan-outs off one guide line, list each project folder with the device that holds it, fold Claude Code scratch folders into the uncategorized folder, and keep rows in place as activity changes.
- Show harness and GitHub marks in place of typed provider and repository names, and use shared dropdowns, styled tooltips, date pickers, and show-more disclosures across the viewer, with focus rings only after keyboard navigation.
- Cluster the Graph by connection communities, connect conversations whose agents read the same files or fetched the same pages, keep placed nodes still through refreshes, and add Reset beside Fit.
- Draw recovered memory snapshots as numbered file lines linked to their source conversation, read memories in the centered conversation column, and keep scratch checkouts and skill folders out of the memory archive.
- Describe what each skill, plugin, and server is, who uses it, and where it comes from, including skills Warp and Amp load from other agents’ folders, and name Codex plugins by their manifest display names.
- Separate generated launch instructions from user prompts, name delegated conversations from their assignments, accept large Codex tool results, keep Perplexity research steps, cited sources, and media, and classify Perplexity chats as web chats. The watcher keeps a browser receiver running for paired browsers.
- Pin the conversation composer to the reading column, float its status and the full-access confirmation above it, and stop repeating archived turns in the live run overlay.
- Share one resource budget across background workers, bound regenerable caches, serve memory and Stats reads from indexed catalogs, load optional viewer features when their views open, checkpoint SQLite stores without blocking readers, and release idle Codex servers after fifteen minutes.
Upgrading to 0.5.6Fixed
- Render conversations that hold a redacted secret instead of failing to display them.
0.5.5
macOS
Added
- Import local history from Crush, Goose, Continue, Roo Code, Kilo Code, Amp, Zed, DeepSeek Harness, Hermes, OpenClaw, OpenHands, Junie, Warp, Kiro, Augment, Qoder, TRAE, and MiniMax Code, including provider instruction files and memories where the agent keeps them. Explicit imports cover Amp, Kilo Code, OpenHands, Warp, Roomote, MiniMax Code, Qoder, Augment, and Kiro cloud or export records.
- Capture ChatGPT, Claude, Gemini, and Perplexity conversations from
signed-in Chromium tabs through a preview browser extension, a durable local
receiver, and
hansard browser serve,pair,status, andrevoke. - Share a reviewed text copy of a conversation as standalone HTML or Markdown. Tools, reasoning, context, and attachments are omitted.
- Add Stats → Year in review, a full-screen recap of one year with one assistant as downloadable 9:16 cards.
- Filter conversations by device, person, edited file, and commit, and filter Memories by harness, type, scope, device, update time, and folder.
- Count the lines each conversation’s file edits add and remove and show them on project overview rows, run rows, and coordinator workstreams.
- Recover memory history from archived file operations, including files deleted before backups began, with recovered versions and gaps labeled.
- Present the project coordinator as a chat with a composer, setup card, and settings popover.
- Add Copy resume command, Fork, and Continue from actions to the conversation header, and Dictation settings for the transcription engine and language.
Upgrading to 0.5.5Improved
- Rebuild Stats around range-aware charts: Tools & harnesses, Reliability, Projects, and Work outcome tabs; weekday rhythm by local day, spend per prompt, top models, busiest day, model takeover, working styles, and a combined memory activity chart.
- Redesign Settings as grouped cards with searchable rows, keycap shortcut editing, and rebuilt Imports, Projects, Portfolios, Privacy & Sharing, Personal Sync, Teams, Slack, Classification, and Handoff & helpers pages.
- Rebuild the conversation view with a compact header, hover message metadata, one-line thinking previews, finished turns folded under a Worked for row, a magnifying outline rail, overlay find bars, and full tool inputs, exit codes, and durations in expanded tool rows.
- Rebuild the continuation composer around a context strip, a permission label, and one model and effort chip that shows the settings that will apply. The coordinator and Deep Recall use the same chip.
- Show Accounts as compact rows with usage meters, unify router and native account identities, connect new coding accounts through one router sign-in, and keep router selections through cooldowns.
- Represent cloud accounts as separate Personal Sync owners, receive updates promptly by default, and retry blocked or interrupted transfers.
- Pair agent messages with verified inbox receipts and link them across archived conversations. Keep stale peer leases from hiding live sessions.
- Redesign Skills & plugins as a grouped list and show kind icons and a key on Graph nodes.
- Move viewer navigation validation off the request path, bound native transcript loading, and cancel superseded project statistics requests.
- Build every main-pane control from shared component primitives.
- Read LevelDB histories through isolated database snapshots.
- Refresh pricing and model catalogs while retaining historical entries.
- Illustrate the documentation website with product screenshots and diagrams.
0.5.4
macOS
Build 2
Build 1
Added
- Import ChatGPT, Claude.ai, and Gemini Takeout exports directly from the app, including ZIPs, split exports, and extracted folders. The bundled backend provides progress, cancellation, account selection, and recovery after navigating away without requiring a separately installed CLI.
- Add guided two-step desktop setup using shared settings controls, visible defaults, and an export-import link after setup.
- Make Accounts the primary destination for provider connections, captured usage, reported subscription details, reset allowances, and capture status. Support saved native profiles, isolated browser profiles, and private usage API connections, with verified identity and duplicate-workspace protection.
- Add guided local request routing for Codex and Claude Code through a verified managed CLIProxyAPI runtime, with explicit client configuration and restore controls. Native account pools support ordered and quota-aware selection.
- Add Graph v2 Projects, Conversations, and Local views with evidence-backed relationships, background indexing, bounded layout workers, search, filtering, and connection inspection.
- Add persistent project coordinators, independent helpers, durable result delivery, and peer coordination across connected sessions.
- Configure ordered account-routing rules, preview account selection, reuse saved native logins, and continue routed conversations after usage limits.
Upgrading to 0.5.4Improved
- Upload ready Personal Sync snapshots promptly, capture the final snapshot after conversations become idle, and remove obsolete local outbox payloads while preserving pending uploads and recovery data.
- Preserve provider-reported account activity, optional subscription fields, availability, and reset eligibility without treating local session totals as account-wide usage.
- Improve account actions, composer picker sizing, model defaults, and dictation placement in the desktop webview.
- Resolve installed harness executables before terminal wrappers and allow Codex continuation outside Git repositories.
- Exclude received sessions from missing-source warnings, retain visible import errors alongside progress, and let classification skip sessions awaiting a parser refresh.
- Refresh pricing and model catalogs while retaining historical entries.
- Unify sidebar controls and typography, add shared motion behavior, and support multiple Graph filters. Open conversations at the latest message.
- Improve large and synced conversation reads with targeted archive access, consistent browser requests, and bounded replica validation.
- Simplify transcript context cards, show Claude subagents in expandable cards, and preserve original image links when a preview cannot decode.
- Reorganize website documentation around features with separate app and CLI instructions and verified signed download links.
0.5.3
macOS
Release
Preview 1
Added
-
Add standalone macOS packaging for Apple silicon and Intel, with a bundled Node.js runtime, native SQLite support, and on-device dictation helper. Public downloads depend on signing, notarization, and download hosting.
-
Import Muse Code native session journals, including linked subagent runs and named skill usage, and restore missing originals from preserved raw files.
-
Explore archived relationships through the knowledge graph viewer.
-
The transcript View menu adds Thinking, Tool activity, and Subagents switches beside the context-card filters, plus a Messages only preset that leaves just the user and assistant prose. The switches are display only.
-
List the harness’s full catalog under
/,$, and@in the composer. Claude Code discovery now covers skills synced from claude.ai, subagents, plugin commands and MCP servers, every MCP configuration scope, claude.ai connectors, and the bundled skills and built-in commands reported by the last turn; Codex discovery covers system and plugin skills from disk and MCP server status from the app server; Grok discovery covers agents and MCP servers. Discovery CLIs resolve through the known install locations, and a catalog the server reports as still pending is retried instead of cached. -
Use each harness’s own model and mode vocabulary in the composer. Claude Code offers its alias menu with older generations under More models and its permission modes (Manual, Accept edits, Plan, Auto, Bypass permissions); Codex offers the models and reasoning levels from its models cache with descriptions and its Read only, Auto, and Full access presets; Grok offers the models its CLI lists. Handoffs and new conversations share the same pickers. Claude Code turns can set the effort level (low, medium, high, xhigh, max) through the CLI’s
--effortflag.orchestrate.claudePermissionModeandorchestrate.grokPermissionModeacceptauto. -
Dictate into the composer. The microphone button records while held (or toggles, per its menu), the menu picks the input device, and punctuated text lands at the caret. The page records 16 kHz WAV and the viewer transcribes it with the best engine on the machine: the on-device macOS 26 speech recognizer through the bundled
hansard-speechhelper (hansard dictation setupbuilds it for the CLI), whisper.cpp with a local model (hansard dictation setup --whisper), OpenAI transcription withOPENAI_API_KEY, or a local command fromdictation.command. The browser’s own speech recognition is the fallback.hansard dictation statusshows the engines;dictation.backendanddictation.localepin an engine and a language. -
The plus menu and the inline pickers open flush with the composer bubble’s left edge and share its corner radius.
-
Offer every harness with a live adapter as a handoff target by default (
orchestrate.handoffProvidersnow defaults to Codex, Claude Code, Antigravity, OpenCode, and Grok). -
Open a project overview from the Conversations rail. Selecting a project name expands its folder and shows a work board for the project: header with working directories and providers, then Pinned, Waiting on you, Working, Resolved, and Recent conversations as collapsible groups with counts. Group membership comes only from orchestrator run state and from state a session reported about itself; archived history alone stays under Recent. The folder glyph only expands or collapses rows, the project label in a conversation header returns to the overview, and Settings → General → When opening a project can open the last viewed conversation in the project instead (
web.projectOpenBehavior). -
Add
report_statusandsession_contextto the collaboration-enabled Hansard MCP entry. A live Codex or Claude Code session can report working, blocked, needs_review, or done with a note and next step; the project overview shows the report marked as reported by the session, below any observed approval request or terminal run outcome. Conversations Hansard starts receive a short instruction naming the tools when messaging or helper launches are enabled. -
Fork an archived Codex or Claude Code conversation into a new native session from the composer’s Continue in… menu. The fork runs the harness’s own fork command (
codex exec fork,claude --resume --fork-session), keeps the full history, and links both conversations through lineage as “Forked into” and “Forked from”. The web route isPOST /api/orchestrate/fork. -
Find harness CLIs outside
PATH. Continuation preflight and the exec adapters resolve binaries from known install locations, including the Codex CLI inside the ChatGPT desktop bundle, the Claude Code launcher under~/.local/bin, and Grok under~/.grok/bin, so the desktop app offers the same harnesses as a login shell. Harnesses that cannot start stay in the menu as disabled rows with the reason. -
Rework the continuation composer: the insert control sits in the toolbar, popovers open above the bubble instead of overlapping it, the chosen harness tints the composer border and send action, and slash, dollar, and at completions answer from prefetched per-harness catalogs on every keystroke.
-
Track whether archived sessions still have their original provider files. The watcher records
state/source-presence.jsonevery 15 minutes and logs a warning naming the repair command when archived sessions lose their originals, for example after a reinstall recreates~/.claude.hansard statusshows the same count, andhansard doctornow runs the unavailable-sources check without--deep. -
Keep an archived conversation when its append-only JSONL source shrinks to less than half the archived message count (for example
claude -rstarting a fresh file under an old session id after~/.claudewas recreated). The shorter transcript is not imported; the event is recorded instate/source-regressions.jsonwith the archived raw copy’s path, the watcher logs a warning, andhansard statusandhansard doctorreport it. SetHANSARD_ACCEPT_SOURCE_REGRESSIONS=1on an import to accept the shorter transcript deliberately.
Fixed
-
Fix Windows archive manifest flushes, refreshes of read-only raw projections, and folder-backed personal sync publication.
-
Commands typed in Claude Code bash mode render as a command card with their output instead of raw
<bash-input>and<bash-stdout>markup. -
Setup source inventory and the import storage preflight count Cursor’s workspace and global SQLite stores, so a Cursor install whose history exists only in those stores is offered for the initial import and measured.
-
Cursor workspace chats are fingerprinted by parser revision and conversation content, so parser changes and grown conversations reach the archive while store rewrites alone do not trigger a re-import.
-
Foreground imports of sources that continue across several bounded slices print one scan line, keep cumulative imported and skipped counts, and report whole-source session totals. Cursor slices no longer recount sessions an earlier slice already handled.
-
Make the stats section tabs work on the Projects page. The tab strip was meant to be hidden there with every section shown, but its layout rule kept it visible with no effect, so switching tabs changed nothing. The Stats page and a project’s stats now share the strip, and either view keeps the selected tab in its URL.
-
Classify Claude Code transcripts whose first prompt line exceeds a megabyte, for example a desktop session opened with pasted screenshots. The importer read only the first megabyte when deciding whether a
~/.claude/projectsfile was a conversation, saw nothing but the queue records ahead of that prompt, and left the session out of every import. The classifier now streams the leading lines, and the classification cache version is bumped so cached verdicts are recomputed on the next scan; no reimport is needed. -
Escalate an import worker’s heap after it dies of V8 heap exhaustion (768, 1536, 3072, then 4096 MB, remembered in
state/import-heap.json) instead of retrying at the same size on every tick, and log the sizes rather than the garbage-collector trace. -
Let
hansard repair claude-code-backupsfall back to the per-session.raw/copy, verified against the recorded digest, when a raw record’s content-addressed archive object is missing.
Upgrading to 0.5.3Changed
-
Keep the npm README focused on installation, first use, and upgrade guidance. Detailed maintainer references remain in the source repository’s
docs/tree. -
Ship only the compiled graph viewer. Graphology, Sigma, and the browser build tools remain development dependencies, with bundled licenses included in the package notices.
-
Refresh model identities and pricing while retaining historical rates.
-
Earlier pages of a long transcript load automatically. Ordinary sessions stream in completely; a very large session loads ahead of the scroll position. The former Load earlier messages button remains only as a retry after a failed page request.
-
Subagent runs render as pills that share one wrapped row. A pill opens the run’s transcript and its arrow expands the prompt and result in place. Runs that started before the loaded page now appear with the page that holds their start time instead of collecting at the top.
-
Dates and times now share one display standard across the viewer and the CLI: a medium date with a short time (
Sep 7, 2026, 9:10 AM) and a medium date (Sep 7, 2026), both in the local time zone and locale. Relative times keep their4h agoform and fall back to the standard date after a week. Raw ISO days no longer appear in the pricing footnote, the model lifecycle chart, behavior trend buckets, or the import summary, and the Memories history list uses the standard datetime. -
Default new Personal Sync spaces to the versioned immutable-revision protocol. Compatible Hansard releases exchange complete revisions by wire capability rather than package-version equality. Upload and receive schedules now run independently of provider imports while the desktop app or watcher is active; existing
archive-filesspaces retain their protocol. -
Capture OpenCode and MiMo Code SQLite state coherently, then publish only an audited history projection for conversion and raw replay. Credential, account, and share-secret tables are excluded, session share URLs are cleared, and raw manifests record the privacy filter. Legacy OpenCode CLI, Desktop, and Web selectors forward to the canonical source without creating separate roots or parser identities.
-
Preserve OpenCode and MiMo Code ordered current todo snapshots and OpenCode global JSON session diffs with bounded summaries, full-list digests, exact source accounting, and offline replay. OpenCode JSON
session/shareandsession_sharerecords remain outside raw publication and replay, and early embedded share secrets are removed before conversion and raw publication. -
Render web links in conversations, memories, and recall answers in a dedicated link color without a standing underline, led by the linked site’s favicon and a hover title with the full URL. The page requests icons only from the viewer’s own
/api/faviconroute; the viewer process fetches each icon from the linked site over HTTPS, refuses private and reserved addresses, caches results undercache/link-favicons/for seven days, and never uses a third-party favicon service. A letter badge stands in while an icon loads or when a site has none. Setweb.linkFaviconstofalsewithhansard config set web.linkFavicons falseto keep the viewer from contacting linked sites. Restarthansard webor the desktop app to pick up the new rendering. -
Make the session tree folder glyph the disclosure control, replacing the chevron: it crossfades between its closed and open forms as a folder opens or closes. Attachment cards redraw their document lines on hover or keyboard focus. Both use the shared motion tokens and follow reduced-motion preferences, and the attachment glyphs now come from the vendored icon set.
-
0.5.2
Added
- Add resumable in-view conversations, handoffs, new sessions, steering, approvals, context resources, and persistent transports for supported agent harnesses.
- Add local and cloud import coverage for Prime Agent, Claude Cowork, Copilot in VS Code and the Copilot coding agent, Cursor cloud, Factory cloud, Codex cloud, Devin cloud, Jules, Qwen Code, iFlow, Kimi, Mistral Vibe, MiMo Code, CodeBuddy, Cline SDK sessions, and recoverable Windsurf histories.
- Add a first-class memory archive with snapshots, search, viewer history, project grouping, agent retrieval integrations, and memory statistics.
- Add subscription-usage history, task and work-frontier analysis, model/lab lifecycle views, reliability statistics, and model effort and service-tier breakdowns.
- Add structured file and commit facets to archived tool usage and expose them
through
hansard history --fileandhansard history --commit.
Changed
- Keep conversation navigation responsive during imports by using bounded projections, targeted detail reads, persisted Stats payloads, background reconciliation, bounded viewer caches, and one reusable Stats generation for presentation-range switches during archive writes.
- Keep the Pricing reference canonical by excluding unused provider-route aliases from the release catalog and disclosing archive-observed identities that still need mapping separately with their recorded usage.
- Preserve deeper provider lifecycle, tool, token, model, timestamp, raw-source, and attachment evidence while keeping machine probes, SDK batch jobs, and subagents out of human-conversation metrics where appropriate.
- Add transactional raw recovery, stale-parser refresh, source-retention diagnostics, and safer full-update behavior for provider histories that have aged out.
- Add desktop deep links for cold and warm opens, app-first Slack session links, adaptive splash themes, and a public documentation site.
Upgrading to 0.5.2Security and privacy
- Treat archived content as untrusted across recall and viewer surfaces, enforce archive path containment, restrict link schemes, and strengthen viewer response headers.
- Remove install-time side effects, ship an audited shrinkwrap, verify exact package dependency closure, and gate publishing through the reviewed trusted workflow and package tripwire.
- Exclude raw provider backups from Teams, require explicit sharing consent, remove legacy raw team objects, scan public files for identifying data, and use visibly synthetic fixtures throughout release checks.