Repository navigation
Releases
v0.7.6
Summary
Preserves each model thinking step on its own line during analytical reasoning, adds a live progress spinner with real-time generation metrics during buffered inference, and enables instant sub-millisecond caching for live news briefings with a 2-hour TTL.
Changes
- Multi-Line Thinking Trace (
src/engine/llm.rs): Preserves intermediate thinking steps (💭 Thinking: <Step> (Xs)) on dedicated lines above the active spinner as reasoning transitions, settling cleanly into the collapsible dropdown indicator (💭 Thought for Xs ›). - Live Buffered Generation Status (
src/engine/llm.rs): Keeps the progress spinner active during buffered content accumulation with live metrics (token count, generation rate int/s, and elapsed time), ensuring clear visual feedback throughout inference. - News Briefing Caching & Fast-Path (
src/main.rs,src/commands/summarize.rs,src/storage/cache.rs): Added sub-millisecond cache hits for news queries within the 2-hour news TTL (news_ttl_hours), eliminating redundant LLM re-synthesis on repeated invocations while preserving--no-cacherefresh support.
v0.7.5
Summary
Unifies caching and persistence into a single DuckDB store (
srz.duckdb), adds pure SQL windowed LRU pruning, shortens news caching to 2 hours, makes reader view file exports strictly opt-in, and adds intuitive cache clear aliases.
Changes
- Unified DuckDB Storage (
src/storage/): Consolidated all caching intosrz.duckdband eliminated redundant cache tables in favor of indexed library lookups, removing cross-database locking overhead. - Pure SQL LRU Pruning (
src/storage/cache.rs): Replaced in-memory sorting with windowed SQL eviction in DuckDB, reclaiming disk space atomically with zero memory allocations. - 2-Hour News TTL (
src/sources/news.rs,src/config/file.rs): Shortened news and feed caching to 2 hours (news_ttl_hours) to keep briefings fresh while preserving fast repeat lookups. - Opt-In View Exports (
src/main.rs): Made standalone HTML and Markdown file generation inviews/strictly opt-in via--openor--output, keeping disk storage clean. - Cache Clear Aliases (
src/config/cli.rs,src/storage/cache.rs): Addedsrz cache clear(along withpurgeandwipe), invalidating cached summaries and server capabilities while keeping user reading history intact.
v0.7.4
Summary
Introduces an Antigravity/Gemini-style compact thinking UI with live one-liner step summaries and collapsible dropdowns, native zero-dependency EPUB book extraction, sub-millisecond cache fast-paths and offline chat management, dynamic per-turn BM25 grounding in interactive Q&A, calibrated single-pass token chunking, and deterministic release CI builds.
Changes
- Compact Thinking UI (
src/engine/llm.rs,src/ui/render.rs): Replaced multi-line raw thinking trace dumps with a live, real-time one-liner spinner summary (💭 Thinking: <Step> (Xs)...) and an Antigravity/Gemini-style collapsible dropdown indicator (💭 Thought for Xs ›), preserving the full chain-of-thought in HTML reader views and opt-in--show-thinkingCLI streaming. - Native EPUB Ingestion (
src/sources/epub.rs,src/sources/document.rs): Pure-Rust zero-dependency EPUB book extraction and chapter stitching in reading order using existing zip and XML dependencies. - Cache Fast-Paths & Offline Chat (
src/main.rs,src/commands/ask.rs): Instantaneous sub-millisecond cache hit delivery for web, books, and local files before initializing network or LLM engines, complete reasoning trace preservation, and offline chat management (--chats,--show-chat,--delete-chat). - Dynamic BM25 Grounding & Index Filtering (
src/commands/ask.rs,src/storage/db.rs): Re-ranks grounding context dynamically per turn in interactive Q&A, optimizes single-pass BM25 chunk scoring, and filters stop words and short tokens in the library search index to prevent table bloat. - Engine & Streaming Fixes (
src/engine/llm.rs,src/ui/printer.rs): Calibrated single-pass tokenization ratios eliminating N+1/tokenizeloops, aligned tree reduction tokens with active profiles, and preserved line buffering inStreamMarkdownRendererwhen color is disabled. - Security Hardening (
src/storage/db.rs,src/sources/youtube.rs): Sanitized YAML frontmatter scalars and filename collisions in Markdown vault exports, validated SQL attachment identifiers, and hardened YouTube transcript parsing against malformed escapes. - Build & CI Pipeline (
.github/workflows/release.yml): Streamlined release workflow usingrust-cachefor deterministic, reliable release artifact generation.
v0.7.3
Summary
Delivers major performance, UX, and architectural upgrades: in-process hardware profiling with
sysinfo, semantic HTML-to-Markdown scraping withhtmd, crash-safe atomic file persistence, strict XDG data directory compliance, seamless in-TUI grounded chat (ainsrz browse), user-facing DuckDB SQL analytics (srz query), multi-format library vault exports (srz export), unified URL context fetching, and RAG/cache optimizations.
Changes
- Hardware & Scraping Modernization (
src/system/,src/sources/): Replaced subprocess inspection with pure-Rustsysinfohardware profiling, and integratedhtmdfor semantic Markdown scraping preserving headings, tables, and code fences. - Storage & XDG Architecture (
src/system/fs_util.rs,src/storage/db.rs): Migrated user database and chats toXDG_DATA_HOME(~/.local/share/srz) with automatic migration from legacy cache paths, and hardened writes with atomic tempfiles and0600permissions. - Interactive Tools & Analytics (
src/commands/,src/ui/tui.rs): Addedsrz queryfor analytical SQL queries,srz exportfor Obsidian/Logseq Markdown vaults, JSON, CSV, and Parquet, and theakeybinding insrz browsefor instant grounded chat. - Unified Ingestion (
src/commands/): Unified URL fetching sosrz ask <url>natively supports YouTube video transcripts and remote PDFs alongside web articles. - RAG & Cache Optimizations (
src/engine/chunker.rs,src/storage/cache.rs,src/ui/render.rs): Eliminated redundant BPE passes during context selection (cutting tokenization passes by ~67%), bypassed startup DDL for existing caches, batched LRU evictions in a single transaction, and pre-allocated HTML card buffers. - Correctness & Safety (
src/commands/library.rs,src/config/cli.rs,src/main.rs): Sanitized terminal tables and guarded against multi-byte UTF-8 slice panics inhandle_query, registered missing typo suggestions forquery/export, and removed unreachable CLI match arms.
v0.7.2
Summary
Introduces intelligent local model diagnostics and CLI typo suggestions, week-by-default news search recency with empty-feed guidance, comprehensive Security Audit #5 hardening, simplified Llama GUI model recommendations, and dynamic token budgeting up to 128k context.
Changes
- News Recency Defaults & Guidance (
srz news): Defaults news search recency toweek(past 7 days) across CLI options and natural queries to prevent empty feeds on niche topics, and adds actionable diagnostic tips suggesting-t monthor-t allwhen feeds return no results. - Local Model Diagnostics & Command Typo Guidance (
src/engine/llm.rs,src/config/cli.rs): Replaces raw JSON dumps with clear 'Local model not detected' diagnostics on model mismatch, suggests closest available models from the backend via string similarity, and offers command typo suggestions (e.g.srz doctur->doctor). - Security Audit #5 Hardening (Findings 26–31): Enforces input bounds across JSON responses, syndication feeds, and config files; neutralizes dangerous URI schemes in markdown; sanitizes control codes in terminal outputs; and adds symlink guards to database initialization.
- Static Analysis & Session ID Disambiguation (
src/commands/ask.rs): Disambiguated chat session IDs to clear CodeQLrust/cleartext-loggingfalse positives. - Dual Model Naming Strategy (
srz recommend,src/config/cli.rs): Retains full verbose model IDs (ggml-org/gemma-4-E4B-it-GGUF:Q8_0) for CLI defaults, configuration templates, and backend API requests while providing concise Llama GUI model cards (gemma-4withE4B/26B-A4Bbadges andQ8_0quant) insrz recommendand diagnostic tips. - Dynamic Token Budget Precision (
format_untrusted_section): Honors dynamic token budgets (e.g., 28k–56k on 32k–64k servers) up to 128k context rather than clamping to legacy 16,000 token limits. - Storage & Ingestion Deduplication (
src/storage/,src/system/,src/sources/): Centralized URL helpers, unified DuckDB query constants, optimized feed parsing, and consolidated LLM retry paths.
v0.7.1
Summary
Fixes cross-platform compiler and Clippy warnings on Linux and Windows targets, and removes the
rust-versionconstraint to allow Cargo to freely resolve the latest dependencies.
Changes
- Cross-Platform Compatibility & Clippy Fixes: Resolved target-specific unused import warnings under
-D warningson Linux (std::process::Commandinhardware.rs) and Windows (super::*infs_util.rs), expanding cross-platform unit test coverage. - Dependency Resolution: Removed the explicit
rust-versionconstraint fromCargo.tomlto allow Cargo's 2024 resolver to freely select the latest SemVer-compatible releases (includinguuidv1.29.0) without holding packages back or emitting MSRV warnings.
v0.7.0
Summary
Introduces intelligent hardware-based model recommendations, server capability discovery with dynamic token budgeting, direct syndication feed ingestion in
srz news, and normalized DuckDB storage.
Changes
- Hardware Advisor & Tailored Setup (
srz recommend): Inspects host RAM tier to recommend optimal Gemma 4 Q8_0 models, launch commands, and context windows (with--jsonsupport);srz config initnow auto-populates hardware-tailored defaults and provides connection error guidance. - Dynamic Token Budgeting (
DynamicBudget): Automatically detects server context window (n_ctx) and slot capacity to mathematically size prompt budgets, chunk overlap, and completion headroom without manual tuning or OOMs. - Server-Native Tokenization (
POST /tokenize): Queries native/tokenizeendpoints inllama.cpp,Ollama, andvLLMfor exact token counting across code and multilingual text, cached in DuckDB for instant startup. - Syndication Feed Ingestion (
srz news): Supports direct RSS, Atom, and JSON feed URLs with feed auto-detection, concurrent article scraping, and offline caching. - Storage & Engine Performance: Unified DuckDB SQL LRU cache eviction, eliminated dual-writes, and added
--context-window,--max-tokens, and--concurrencyflags for fine-grained runtime control.
v0.6.2
Summary
Expands project documentation with the official mdBook static website, brand logo assets, and architectural and learning guides.
Changes
- Documentation Website: Launched official mdBook documentation site at
https://newguy012.github.io/srz/with complete CLI guides and tutorials. - Book Refresh & Logo: Synchronized all
book/srcdocumentation with current CLI features, updated configuration schemas, and added the official logo banner to the landing page. - Rust Guide & Security Audit: Added
RUST_LEARNING_GUIDE.mdsystems architecture case study andSECURITY_AUDIT.md. - README & Overview References: Integrated doc site links across
README.mdanddocs/OVERVIEW.md.
v0.6.1
Summary
Updates core dependencies to their latest major releases (
feed-rsv3,dom_smoothiev0.19,tiktoken-rsv0.12,rustylinev19,quick-xmlv0.42), modernizes CI crates.io release workflows, and improves development tooling.
Changes
- Dependency Upgrades: Upgraded parsing and ingestion libraries (
feed-rs3,dom_smoothie0.19,tiktoken-rs0.12,rustyline19,quick-xml0.42, andhtml-escape0.3) for improved feed compatibility, token budgeting, and terminal prompt ergonomics. - CI / Crates.io Release Hardening: Modernized Cargo token configuration to
CARGO_REGISTRY_TOKENand added idempotent crates.io publishing to ensure reliable automated releases and retry resilience. - Release Automation: Updated
./scripts/release.shto default to patch version increments (0.6.0->0.6.1). - Developer Experience: Added standard Git pre-commit hooks and format-on-save configuration enforcing
cargo fmtacross all staged Rust sources.
v0.6.0
v0.6.0
Summary
Upgrades core content ingestion with industry-standard Rust parsers (
feed-rs,dom_smoothie,tiktoken-rs,pulldown-cmark,quick-xml,rustyline) and streamlines runtime pipelines for faster, zero-allocation processing and single-pass cache management.
Changes
- Universal News & Syndication Feeds (
srz news): Integratedfeed-rsfor robust parsing of RSS 0.9/1.0/2.0, Atom, and JSON feeds alongside automated Google News query resolution and URL un-obfuscation. - Readability Web Extraction: Integrated Mozilla Readability DOM density scoring via
dom_smoothie, cleanly stripping ads, navigation bars, cookie prompts, and sidebars before LLM synthesis. - BPE Token Budgeting & Fast Chunking: Adopted OpenAI
cl100k_baseBPE token counting viatiktoken-rswith unified paragraph chunking and an O(1) fast-path that avoids redundant tokenization for short documents. - Interactive Chat Line Editing (
srz ask -i): Upgraded the interactive Q&A REPL withrustylinefor in-line arrow-key editing, command history, Ctrl+C/Ctrl+D handling, and exact session ID display for easy resumption. - GitHub Flavored Markdown & Web Views: Switched Markdown-to-HTML rendering to
pulldown-cmarkfor standards-compliant tables, task lists, and strikethrough, opened cross-platform viaopen::that_detached. - Streaming YouTube Captions: Replaced manual caption tag matching with
quick-xmlstreaming event parsing and multi-client Innertube player fallbacks. - Optimized Cache Pruning: Refactored cache retention to collect surviving file metadata in a single pass, running LRU size evictions completely in memory without redundant disk re-scans.
- Zero-Allocation Text & Query Processing: Replaced ad-hoc string parsing with zero-allocation ASCII case-insensitive matching in CLI routing, term search, and HTML entity decoding (
html-escape).