Releases: tylergraydev/fury
Release list
Fury v2.1.0
What's New
Persistent Memory System
AI agents now retain knowledge across sessions with a 3-layer memory architecture:
- Layer 1 (Context Injection): SQLite-backed observations, compressed snapshots, and curated learnings are injected into agent system prompts automatically
- Layer 2 (Observation Extraction): PostToolUse hooks capture high-signal events (file edits, test results, errors, git ops) and compress them into concise snapshots — zero API token cost
- Layer 3 (On-Demand Tools): In-process MCP server exposes
memory_recall,memory_save_learning, andmemory_searchtools that Claude can call during sessions - MemPalace Integration: Optional Python-based MCP sync for cross-session memory persistence
- Settings UI: New Memory tab in settings for configuring memory behavior
Browser, Codebase Search, Inline Edit, Notepads, AI PR Review
- Built-in browser for web research during agent sessions
- Codebase-wide search with file and symbol navigation
- Inline edit support for targeted code modifications
- Notepads for persistent scratch notes across sessions
- AI-powered pull request review
Bug Fixes
- Fix clippy 1.94 errors blocking CI
- Fix TypeScript build errors
- Address security and reliability issues in new features
- Fix async executor blocking during memory context building
- Fix memory context not being injected on followup agent messages
Fury v2.0.0
See the assets to download and install this version.
v1.16.0
What's New
Enhanced Permission System
The permission flow gets a major upgrade. "Always Allow" now works — when you approve a tool with Always Allow, the rule persists to ~/.claude/settings.json and carries across sessions. No more re-approving the same tools every time you restart.
Permission timeout safety. A 120-second timeout in the sidecar prevents indefinite hangs when HMR reloads disconnect the frontend mid-permission-prompt. Previously this could leave the agent frozen waiting for a response that would never come.
New Permissions settings tab. Manage your allow/deny rules from Settings with suggested presets for common tool patterns. View, add, and remove rules without editing JSON files.
Other permission improvements:
- Pending permissions tracked in AppState for re-emission on frontend reconnect
- Switched from
bypassPermissionsto default permission mode for safer defaults - Built-in slash commands (
/clear, etc.) now work while an agent is running /clearstops running agents before clearing chat
Bug Fixes
- Sidecar camelCase serialization — Fixed sidecar command fields to serialize as camelCase, matching the TypeScript protocol contract. This resolves deserialization failures between the Rust backend and Node.js sidecar. (#139)
E2E Coverage
- Expanded permission flow E2E test coverage
Full Changelog: v1.15.0...v1.16.0
v1.15.0
What's New
Claude Agent SDK Migration
Fury now uses the Claude Agent SDK (@anthropic-ai/claude-agent-sdk) instead of spawning the Claude CLI directly. This is the biggest architectural change since launch.
Permission control now works. Safe mode surfaces an Allow/Deny bar for every tool call the agent makes — file writes, shell commands, everything. Users can approve or deny each action individually. The SDK's canUseTool callback gives programmatic control that the CLI's stream-json mode never supported.
.claude/settings.json respected automatically. If you have existing permission rules (allow, deny) in your project or user settings, the SDK loads and enforces them. Pre-approved tools skip the prompt entirely.
Real-time streaming. The SDK emits character-by-character text deltas (content_block_delta) for smoother streaming output, plus tool input deltas so you can see commands being composed live.
Architecture: A Node.js sidecar process wraps the SDK and communicates with the Rust backend via stdin/stdout NDJSON. Single sidecar handles all workspaces (multiplexed by ID). The frontend is unchanged — same event format, same UI.
Other Changes
- Removed
--sandboxflag from Claude process args (#135)
Full Changelog: v1.14.0...v1.15.0
v1.14.0
What's New
Features
- One-click repo containerization via AI (#131) — AI-powered Dockerfile and docker-compose generation for any repository
Security & Stability
- Path traversal protection —
read_file_base64, diff, and branch file operations now validate paths against known workspace/repo roots - Container ID validation — all
docker execcalls validate container IDs match hex format - Env var key sanitization — prevents argument injection via
docker exec -eflags - Deadlock prevention — fixed 3 lock ordering violations in agent and devcontainer commands
- Poisoned lock hardening — security validation now fails hard instead of silently degrading
Accessibility
- WCAG AA improvements:
aria-labelon chat textarea, icon buttons, notification bell - Dialog semantics (
role="dialog", focus trap, Escape key) on settings and notification overlays - Keyboard navigation on model dropdown menu
aria-livestatus announcements on agent status indicator
Performance
- Scroll-aware auto-scroll in chat — no longer force-scrolls when reading earlier messages
- Adaptive polling in ChangesPanel (3s when active, 15s when idle)
- MarkdownContent memoization — components no longer rebuild on every streaming chunk
- Fixed 8 components using non-selective Zustand subscriptions
- Output arrays capped at 5000 lines in script/test runner stores
Bug Fixes
- Fixed keybindings shift-match bug —
Cmd+Shift+*shortcuts now work correctly - Fixed chatStore stale closure losing content blocks during fast streaming
- Fixed chatStore subscribe race condition causing duplicate listeners
- Fixed workspace archive/delete navigating to stale repo
- Added cross-store cleanup on workspace delete to prevent memory leaks
- UTF-8 safe string truncation in Rust (10 sites) — prevents panics on multi-byte characters
- Fixed devcontainer stderr race between tokio task and
wait_with_output - Converted Linear and Azure DevOps services from blocking to async HTTP
- Added Copilot LSP pending request cleanup on timeout
- Added
restoreMocks: trueto vitest config
Docs
- Added 12 missing feature pages and updated 6 existing pages (#132)
Full Changelog: v1.13.1...v1.14.0
v1.13.1
What's New
- fix: resolve CI test flake in UpdatesTab — replaced dynamic
import("@tauri-apps/api/app")with the existinggetAppVersion()wrapper to fix unreliable mock interception in CI
Full Changelog: v1.13.0...v1.13.1
v1.13.0
What's New
- Codebase refactor: split 15 large files into focused domain modules — Pure structural refactoring with zero behavior changes. All files over 750 lines split into single-responsibility modules (#130)
Backend (Rust)
db/mod.rs(2,733 lines) → 9 domain modulesservices/gh.rs(2,322 lines) → 6 modulescommands/git.rs(2,131 lines) → 4 modulescommands/workspace.rs(2,121 lines) → 3 modulesservices/test_runner.rs(1,787 lines) → 4 modulesservices/claude_process.rs(1,767 lines) → 3 modulescommands/agent.rs(1,707 lines) → 2 modulescommands/pr.rs(1,693 lines) → 4 modules
Frontend (TypeScript/React)
lib/tauri.ts(2,004 lines) → 16-file directory moduleAppSettingsPanel.tsx(2,465 lines) → 11 tab componentsComposer.tsx(1,332 lines) → 3 components + 2 hooksTestRunnerPanel.tsx(1,086 lines) → 4 components + utilsChecksPanel.tsx(914 lines) → 3 row componentsNewWorkspaceDialog.tsx(907 lines) → 5 mode componentsMessageBubble.tsx(751 lines) → 3 components + utils
Full Changelog: v1.12.0...v1.13.0
Fury v1.12.0
What's New
Build & CI Fixes
- Fixed production build failure caused by missing
@xterm/addon-searchin vite manual chunks - Fixed E2E test selectors to match actual HTML structure (tabs use
role="tab", not<span>) - Fixed ESLint
prefer-constviolation in test file
Full Changelog: v1.11.0...v1.12.0
Fury v1.11.0
What's New
Rust Backend Expansion
- Major expansion of Rust backend with new service modules: branch management, checkpoint system, Claude context indexing, dev container lifecycle, Linear integration, LSP support, performance server, test runner, and worktree management
- Comprehensive unit tests across all 27 command modules and service layers
- Fixed clippy warnings and improved code quality
Coverage
- Updated frontend test coverage reports
Full Changelog: https://github.com/tgray/fury/compare/v1.10.0...v1.11.0
v1.10.0
What's New
- Auto-update system with popup and signing — The app now supports automatic updates with a user-facing popup and code signing (#128)
Full Changelog: v1.9.0...v1.10.0