-
Notifications
You must be signed in to change notification settings - Fork 8
Improved Memory Usage, Incremental File Level Updates #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
7c29a95
Remove: Outdated info from CLAUDE.md
Sewer56 dfb6055
Changed: Use vendor agnostic AGENTS.md
Sewer56 ed8e885
Improve: Further cleanup of AGENTS.md for simplicity.
Sewer56 0240c89
Refactor: Split AGENTS.md into modular .agents/ files
Sewer56 005c816
Temporary: Make targeted fixes in .agents folder regarding missing info.
Sewer56 25e8250
Refactor: Trim agent docs to remove duplicated implementation details
Sewer56 5092907
Update verification steps with comprehensive cargo flags
Sewer56 a779016
Fix PRICING.md to reference MODEL_INDEX instead of non-existent provi…
Sewer56 82202e8
Replace serde_json with simd_json for all JSON operations
Sewer56 b71020a
Simplify verification commands to match single-binary project structure
Sewer56 df89709
Fix MD034 lint: convert bare URLs to inline links in PRICING.md
Sewer56 69d09f5
Updated: Project Dependencies to Latest
Sewer56 4e0080b
Improve TUI memory usage with view-based architecture and incremental…
Sewer56 6c50a92
Use PathHash newtype for file_contribution_cache keys
Sewer56 d6a6643
Don't store redundant data_source_cache & Optimize is_available() to …
Sewer56 62e6fb6
Improve: Attempt to deduplicate SessionAggregate instances
Sewer56 787550b
Improve: Use RwLock for zero-copy incremental updates
Sewer56 ac25a6c
Fix: Validate file paths before incremental reload
Sewer56 57deb54
Merge remote-tracking branch 'origin/main' into improve-memory-usage-2
Sewer56 2b781de
Fix: Preserve analyzer tab order across TUI updates
Sewer56 0b1a5bd
Add debug logging for diagnosing lock contention
Sewer56 ab4d163
Improve: Use Arc<str> for SessionAggregate analyzer_name to reduce me…
Sewer56 c59bb2d
Fix: Release read lock before draw_summary_stats to prevent deadlock
Sewer56 8d89d1a
Add TuiStats struct to reduce memory for TUI display aggregates
Sewer56 6dd8fd3
Revert "Add debug logging for diagnosing lock contention"
Sewer56 699a016
Reduce SessionAggregate memory with string interning and compact DayKey
Sewer56 bd3c6cc
Use DayKey for session_day_filters and DailyStats.date
Sewer56 932fd6c
Rename DayKey to CompactDate for clarity
Sewer56 f892634
Remove thread pool from load_all_stats_views, run sequentially
Sewer56 9b90b51
Replace rayon/jwalk with tokio/walkdir for parallelism
Sewer56 7e95fa4
Replace async parsing with rayon threadpool
Sewer56 ddedcc7
Add scoped threadpool helper to fix memory leaks in upload paths
Sewer56 0b5dc8e
Merge branch 'main' into improve-memory-usage-2
Sewer56 e82d6d5
Add incremental auto-upload to reduce memory usage
Sewer56 64eaaf8
Fix rustfmt formatting in upload.rs
Sewer56 92aa7e5
Fix MCP get_daily_stats to return actual file operation stats
Sewer56 26e99e9
Use official libmimalloc-sys crate instead of manual FFI
Sewer56 01fb5af
Update docs to reference walkdir instead of jwalk
Sewer56 85cee19
Migrate from std::sync::Mutex to parking_lot::Mutex
Sewer56 0aed0bc
Fix rustdoc warnings for bare URL and HTML tag
Sewer56 b019197
Use reference counting for session model tracking
Sewer56 b9b4ff0
Replace BTreeMap with TinyVec for SessionAggregate.models
Sewer56 5a3949e
Fix file contribution cache by preserving source-message association
Sewer56 0506b0c
Changed: Introduce a 3 tier contribution cache system for per-file up…
Sewer56 78fdcc7
Refactor: Extract contribution_cache into module with subfiles
Sewer56 5226764
Refactor: Split contribution_cache tests by strategy type
Sewer56 3d61ff2
Refactor: Add SessionHash newtype wrapper for session hash fields
Sewer56 06b8c27
Refactor: Migrate model interning from Spur to MiniSpur newtype
Sewer56 67e4294
Optimize SingleMessageContribution from 40 to 32 bytes
Sewer56 b46bf80
Merge branch 'main' into improve-memory-usage-2
bl-ue 0238275
Remove old .agents
bl-ue File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,49 +5,60 @@ edition = "2024" | |
| license = "MIT" | ||
| authors = ["Piebald LLC <[email protected]>"] | ||
|
|
||
| [features] | ||
| default = ["mimalloc"] | ||
| # Use mimalloc allocator for reduced memory usage. Disable for heaptrack profiling: | ||
| # cargo build --no-default-features | ||
| mimalloc = ["dep:mimalloc", "dep:libmimalloc-sys"] | ||
|
|
||
| [dependencies] | ||
| serde = { version = "1.0.219", features = ["derive"] } | ||
| mimalloc = { version = "0.1.48", default-features = false, features = ["v3"], optional = true } | ||
| libmimalloc-sys = { version = "0.1.44", features = ["extended"], optional = true } | ||
| serde = { version = "1.0.228", features = ["derive"] } | ||
| anyhow = "1.0" | ||
| glob = "0.3" | ||
| jwalk = "0.8" | ||
| walkdir = "2" | ||
| xxhash-rust = { version = "0.8", features = ["xxh3"] } | ||
| chrono = { version = "0.4", features = ["serde"] } | ||
| tokio = { version = "1", features = ["full"] } | ||
| rayon = "1.8" | ||
| lasso = { version = "0.7", features = ["multi-threaded"] } | ||
| futures = "0.3" | ||
| rayon = "1.10" | ||
| dashmap = "6" | ||
| num-format = "0.4" | ||
| ratatui = "0.29" | ||
| ratatui = "0.30.0" | ||
| crossterm = "0.29" | ||
|
|
||
| toml = "0.9.2" | ||
| toml = "0.9.10" | ||
| async-trait = "0.1" | ||
| notify = "8.1" | ||
| notify = "8.2" | ||
| notify-types = "2.0" | ||
| sha2 = "0.10" | ||
| phf = { version = "0.12.1", features = ["macros"] } | ||
| serde_bytes = "0.11.17" | ||
| simd-json = { version = "0.15.1", features = ["serde"] } | ||
| tiktoken-rs = "0.6" | ||
| phf = { version = "0.13.1", features = ["macros"] } | ||
| serde_bytes = "0.11.19" | ||
| simd-json = { version = "0.17.0", features = ["serde"] } | ||
| tiktoken-rs = "0.9.1" | ||
| parking_lot = "0.12" | ||
| bincode = "1.3" | ||
| tinyvec = { version = "1.8", features = ["alloc"] } | ||
| c2rust-bitfields = "0.18" | ||
| bincode = "2.0.1" | ||
| dirs = "6.0" | ||
| chrono-tz = "0.10" | ||
| rusqlite = { version = "0.35", features = ["bundled"] } | ||
| rusqlite = { version = "0.38.0", features = ["bundled"] } | ||
| iana-time-zone = "0.1" | ||
|
|
||
| # MCP server support | ||
| rmcp = { version = "0.9.1", features = ["server", "macros", "transport-io"] } | ||
| schemars = "1.0" | ||
| rmcp = { version = "0.12.0", features = ["server", "macros", "transport-io"] } | ||
| schemars = "1.2" | ||
|
|
||
| [dependencies.clap] | ||
| version = "4.5.41" | ||
| version = "4.5.53" | ||
| features = ["derive"] | ||
|
|
||
| [dependencies.reqwest] | ||
| version = "0.12.22" | ||
| version = "0.13.1" | ||
| default-features = false | ||
| features = ["rustls-tls"] | ||
| features = ["rustls"] | ||
|
|
||
| [dev-dependencies] | ||
| tempfile = "3.0" | ||
| tempfile = "3.24" | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.