All notable changes to this project will be documented in this file.
This file is generated by Knope from Conventional Commits; this project adheres to Semantic Versioning.
- walk /releases array, filter to linesmith binary tag (#14)
- core: Close LogSink emit/swap race with RwLock dispatch (#9)(77086fb)
- core: Bound CapturedSink ring + add inter-frame wake signal (#8)(3248bc9)
- core: Split tool normalizers + ParseOpts entry point (#10) (BREAKING)(3c4c5ab)
- tui: PropertyScreen reusable widget(bd5c5a1)
- tui: Retry on EINTR + recoverable I/O blips in event loop(68f03c3)
- cli: Reject --check-config outside the render path(b27951f)
- cli: Route logging macros through swappable LogSink(eb1df31)
- cli: Filter non-Press key events to stop Windows double-fire(60abd53)
- repo: Cliff template emits blank line above first version heading(3dc71ea)
- data-context: Clear cache on 401 so peers skip the fresh short-circuit(0aa20fe)
- core: Floor_to_grain panic safety + close jiff-migration gaps(2ce2f30)
- core: Per-thread sink overlay for test capture of lsm_warn!/lsm_error!(f30f11e)
- core: Wire LayoutDecision emits at the five apply_layout sites(070ecb7)
- core: LayoutObservers struct + render_with_observers rename(089c060)
- core: LayoutDecision enum + variant constructors(2a23869)
- core: LineItem::Segment struct-variant refactor with id field(011be10)
- tui: Honor CliEnv env and CLI color flags(d1d7ecb)
- cli: Install/uninstall Claude Code statusLine(01e6713)
- cli: TUI instant-apply save model(4727269)
- cli: Theme picker + user-theme discovery(237a17e)
- cli: EnvironmentWarning footer (NO_COLOR / palette / VSCode / tmux)(5dcd964)
- cli: Items editor finishing slice (LinePicker + Space/m verbs)(f496b30)
- cli: Items editor raw value verb (r)(6782ed5)
- cli: Items editor type picker (a/i verbs + arrows)(aeece9b)
- cli: Items editor delete/clear/clone verbs(10098ac)
- cli: Items editor screen with move-mode reorder(866f5dc)
- cli: TOML write-back for linesmith config TUI(b9a539c)
- cli: Live-preview header for linesmith config TUI(32cd241)
- cli: Main menu screen + back-navigable placeholder(014ea83)
- cli: ListScreen widget for linesmith config TUI(c28d4b9)
- cli: Linesmith config TUI boot(5e98461)
- segments: Absolute-timestamp format for rate-limit reset segments(d53a5b8)
- core: Split resolve_proxy_from_env for testable warn paths(5d2e142)
- cli: Caller owns cursor on ListScreen MoveSwap(99d8941)
- core: Separator-as-item layout(4ecbefd)
- core: Finish jiff-migration cleanups (doc rot + dedupe helper)(370fbe4)
- repo: Migrate chrono → jiff across the workspace(0be2835)
- core: Graduate input.rs + layout.rs to folder modules(9c36c8f)
- segments: Split builder.rs into a folder of named files(486797f)
- data-context: Graduate cascade/credentials/jsonl to folder modules(3935840)
- env: Preserve non-UTF-8 paths through CliEnv + EnvVarState(f667eb4)
- segments: UsageWindow seam + workspace extras helper(c24ac59)
- segments: Graduate rate_limit/ to a folder(5378415)
- repo: Rename errors.rs modules to singular error.rs(68c8153)
- repo: Centralize lints in workspace.lints
- plugins: Consume plugin host types from origin(6199a33)
- plugins: Extract linesmith-plugin from linesmith-core(291cd09)
- doctor: Use FileCascadeEnv::new() in cross-crate test sites(1afa91a)
- doctor: Make cache-root check read-only + audit snapshot helpers(ff8c0d0)
- core: Cfg-gate
~to POSIX in needs_shell_quoting(8601a45) - core: Correct Windows test failures in driver.rs(c8c213f)
- ci: Use bare workspace version for dry-run tag(0a93c01)
- ci: Synthesize dry-run tag from current package version(2cf357c)
- deps: Bump gix from 0.82 to 0.83(f87897f)
- core: Tolerate Windows MoveFileEx race losers in cascade persistence(abe697d)
- core: Gate KEYCHAIN_SERVICE to macOS so Ubuntu clippy passes(769e355)
- core: Tolerate null required leaves in parse_context_window(93506ac)
- doctor: Land linesmith doctor v0.1 (Config..Self categories)(16d1950)
- doctor: Wire Environment + Self check categories(546029c)
- doctor: Scaffold linesmith doctor subcommand(bdac37f)
- data: Honor HTTPS_PROXY / HTTP_PROXY / NO_PROXY for OAuth fetcher(4cab952)
- config: Publish config.schema.json + wire CI drift check(70f0723)
- input: Warn-and-degrade for cost / effort / vim / output_style / agent / version(c6ea8cf)
- input: Warn-and-degrade parse for model/workspace/context_window(44b8d5a)
- layout: Add multi-line layout via [line.N] + layout key(414d955)
- cli: Add interactive
linesmith initsubcommand(7ce72d8) - layout: Add [layout_options].separator + powerline_width config(f34b8df)
- themes: Add 5 curated presets + extract default/minimal(e1d17ae)
- engine: Wire OSC 8 hyperlinks end-to-end with sanitized URLs(d016c72)
- segments: Add opt-in version segment for CC CLI version(d0bc5d7)
- layout: Add render_to_runs styled-run emit path(06945ad)
- core: Land render perf benchmarks + cold-start hyperfine task(f2d5096)
- segments: Add output_style + vim + agent segments(d249322)
- core: Add Segment::shrink_to_fit for layout-pressure compaction(327390f)
- segments: Add per-marker hide_below_cells thresholds to git_branch(ab74914)
- segments: Add model.format config (compact strips "context" filler)(8a5c845)
- core: Add RenderContext arg to Segment::render(fecbf33)
- core: Reflow truncatable segments before dropping(4ea4df1)
- segments: Add session_duration segment(5fdf737)
- segments: Add context_bar visual fill segment(b293f03)
- repo: Split linesmith into linesmith-core + linesmith-cli workspace(602d9f0)
- runtime: Extract runtime predicates into a dedicated module(88dc4f9)
- data: Collapse XDG cascade + lift credentials env to a snapshot(0141749)
- config: Pin schema URL to main per industry pragma(b1e83cc)
- themes: Remap Catppuccin Muted to subtext0 for readable text(535c3af)
- themes: Env-first force-color capability detection via CliEnv(acdf35f)
- core: Accept object-form effort payload(78d6a87)
- core: Clamp context_window.used_percentage above 100, reject below 0(bd58bb8)
- core: Lock-active refuses cached data when lock was written by 401(4a689d8)
- plugins: Cap ctx_mirror JSON recursion depth, breadth, and string size(5517bc8)
- segments: Harden ahead/behind resolver + de-slopify polish(4faf9a8)
- repo: Add statusline-tee.sh for live-capture workflow(dcaf198)
- segments: Add per-turn tokens_{input,output,cached,total} segments(028caaf)
- core: Parse context_window.current_usage as Option(39dad87)
- core: JSONL fallback returns Ok(UsageData::Jsonl) on endpoint failure(cc690f0)
- core: In-crate structured logger for silent Ok(None) paths(f9137ae)
- segments: Workspace reads worktree name from ctx.git()(4d60443)
- segments: Ahead/behind counters on git_branch(0798579)
- segments: Git_branch (branch + dirty indicator) via gix(72825cd)
- segments: Rate-limit segments on ctx.usage() + drop stdin rate_limits(971978d)
- data-context: Wire DataContext::usage() fallback cascade(ea814b9)
- data-context: JSONL aggregator (5h billing blocks + 7d window)(6cdf450)
- core: OAuth usage disk cache + lock file (atomic rename)(884862e)
- core: OAuth /api/oauth/usage HTTP client (ureq + retry-after)(215632f)
- core: Credential reader with Keychain + file cascade(e155d11)
- core: UsageApiResponse + UsageData + UsageError types(470043f)
- plugins: Wallclock timeout, log rate-limit, registry-stored load errors(57acfee)
- plugins: RhaiSegment + ctx mirror + return validator + builder wiring(4d0e529)
- plugins: Discovery + @data_deps parser + compilation registry(b493084)
- plugins: Rhai engine foundation for plugin runtime(e52e4af)
- core: DataContext skeleton and Segment::data_deps method(3ae96bc)
- segments: Annotate remaining Ok(None) hide paths(24cf621)
- core: Route diagnostic writes through the crate logger(7b624a2)
- segments: Simplify FormatTemplate + harden ahead/behind tests(50cff4f)
- ci: Add [profile.dist] inheriting from release so cargo-dist can build(1ab79e1)
- ci: Symlink CHANGELOG.md into crate dir for release-plz path resolution(138a131)
- segments: Strip control chars from RenderedSegment text(d4b1a78)
- ci: Wire cargo-dist + release-plz + git-cliff release pipeline(7c125e1)
- core: Linesmith presets list + presets apply(da45cfc)
- themes: Style-string parser + per-segment style overrides(49a2baa)
- themes: User theme TOML loading + themes list subcommand(64e470b)
- themes: Catppuccin Latte/Frappé/Macchiato/Mocha flavors(4491063)
- config: Warn on unknown keys in config.toml(fb9e9ea)
- config: Color policy precedence + claude_padding width factor(8421b9b)
- themes: Role-based theme engine with default + minimal built-ins(b622712)
- core: Load config.toml + CLI flags + per-segment overrides(938cfaf)
- core: Add layout engine with priority truncation + width hints(beaa216)
- core: Add rate_limit / cost / effort segments + chrono dep(f736607)
- core: Expand StatusContext to v0.2 + add model and context_window segments(33939d6)
- core: Scaffold Rust workspace with workspace-segment slice(5813b98)
- core: Drop beads-ID from driver test-section comment(de5c25c)
- core: Extract cli driver + segment builder from lib.rs(a87659c)
- core: Extract cli_main so main.rs orchestration is testable(4e91d81)
- segments: Return RenderResult so render errors propagate distinctly(af7a8a7)
- segments: Encapsulate RenderedSegment + add SegmentDefaults builders(9fd3b4e)