ironcode-ai 1.8.0 โ†’ 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +154 -42
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -22,6 +22,57 @@
22
22
 
23
23
  ---
24
24
 
25
+ ## ๐ŸŽ‰ What's New
26
+
27
+ ### February 2026 - Git Source Control UI
28
+
29
+ **Built-in Git UI for seamless version control within TUI:**
30
+
31
+ - ๐ŸŽฏ **Full Git Integration** - Stage, commit, push without leaving IronCode
32
+ - ๐Ÿ“Š **Visual Status View** - See staged/unstaged changes with color-coded icons
33
+ - ๐ŸŒฟ **Branch Management** - Quick checkout between branches
34
+ - ๐Ÿ“ **Inline Commit** - Type commit messages directly in TUI
35
+ - ๐Ÿ” **Syntax-Highlighted Diffs** - Review changes with color-coded diffs
36
+ - โšก **Multi-Auth Push** - Supports SSH keys, SSH agent, and HTTPS with credential helper
37
+ - ๐ŸŽจ **Intuitive UI** - Keyboard shortcuts (p: push, a: stage all, Space: stage/unstage)
38
+
39
+ **Open Git panel with `Ctrl+X` then `I` or `/git` command**
40
+
41
+ ### February 2026 - Streaming Optimizations
42
+
43
+ **Massive performance and memory improvements through streaming patterns:**
44
+
45
+ #### File Read Optimization
46
+
47
+ - โšก **1.17-1.56x faster** across all file sizes
48
+ - ๐Ÿ’พ **99.7% memory savings** on large files (39MB โ†’ 0.13MB for 100K lines)
49
+ - ๐Ÿ“– 64KB buffer with pre-allocated capacity eliminates reallocation
50
+ - โœ… **100% identical results** - zero breaking changes
51
+
52
+ #### Grep Search Optimization
53
+
54
+ - ๐Ÿ’พ **90-99% memory reduction** when searching large files
55
+ - ๐Ÿ” Stream lines instead of loading entire files
56
+ - โšก Early exit after 1000 matches for efficiency
57
+ - ๐ŸŽฏ Can search **GB-sized files** without running out of memory
58
+ - โœ… **100% identical results** - verified with comprehensive tests
59
+
60
+ **Why streaming matters:**
61
+
62
+ - Search 100 files ร— 1MB each: **100MB โ†’ 10MB memory** usage
63
+ - No data loss - regex matches on full line content before display truncation
64
+ - Scales to much larger codebases on memory-constrained systems
65
+
66
+ ### Previous Updates
67
+
68
+ - **Memory optimization** - 97.6% faster message processing (254ms โ†’ 6ms) - Feb 2026
69
+ - **Resource monitoring** - Automatic throttling with 300MB default limit - Feb 2026
70
+ - **PTY/Terminal native** - 15.29x speedup, powers Bash tool - Feb 2026
71
+ - **Edit tool optimization** - 2-6x faster with 9 smart strategies
72
+ - **Archive extraction** - 3-5x faster with s-zip native
73
+
74
+ ---
75
+
25
76
  ## What is IronCode?
26
77
 
27
78
  IronCode is a **high-performance CLI fork** of [OpenCode](https://github.com/anomalyco/opencode) - an AI coding agent that runs entirely on your machine. This fork focuses on the command-line experience, removes cloud dependencies, and **rewrites performance-critical components in Rust** for dramatically improved speed and efficiency.
@@ -29,6 +80,7 @@ IronCode is a **high-performance CLI fork** of [OpenCode](https://github.com/ano
29
80
  ### Key Features
30
81
 
31
82
  - โŒจ๏ธ **CLI-First**: Powerful terminal UI optimized for command-line workflows
83
+ - ๐ŸŽฏ **Git Source Control**: Full Git integration - stage, commit, diff, push without leaving TUI
32
84
  - ๐Ÿ  **100% Local**: No cloud services, works completely offline
33
85
  - ๐Ÿ”’ **Privacy First**: Your code never leaves your machine
34
86
  - ๐ŸŽฏ **Lightweight**: Stripped down to core functionality - CLI only
@@ -95,51 +147,61 @@ IronCode rewrites key operations in native Rust with **measured real-world perfo
95
147
  | **File Listing** | 15.80 ms | 11.50 ms | **1.37x faster** | Native ignore crate |
96
148
  | **File Glob (100 files)** | 9.74 ms | 3.55 ms | **2.74x faster** | Zero spawn overhead |
97
149
  | **Grep Search** | 34.84 ms | 19.35 ms | **1.80x faster** | Pattern: "function" |
150
+ | **Grep (streaming)** | N/A | Similar | **90-99% memory** | Can search GB files |
98
151
  | **VCS Info (git)** | 17.25 ms | 9.43 ms | **1.83x faster** | libgit2, no spawning |
99
152
  | **Archive (small, 10)** | 5.48 ms | 1.93 ms | **2.8x faster** | s-zip vs unzip |
100
153
  | **Archive (medium, 100)** | 90.43 ms | 18.07 ms | **5.0x faster** | s-zip vs unzip |
101
154
  | **Archive (large, 500)** | 740.29 ms | 142.88 ms | **5.2x faster** | s-zip vs unzip |
102
- | **Read (500 lines)** | 18 ยตs | 27 ยตs | 0.67x | Raw FFI |
103
- | **Read (1K lines)** | 29 ยตs | 47 ยตs | 0.62x | Raw FFI |
104
- | **Read (5K lines)** | 120 ยตs | 194 ยตs | 0.62x | Raw FFI |
105
- | **Write (1K lines)** | 49 ยตs | 139 ยตs | 0.35x | Raw FFI |
106
- | **Write (5K lines)** | 135 ยตs | 408 ยตs | 0.33x | Raw FFI |
155
+ | **Read (1K lines)** | 0.06 ms | 0.04 ms | **1.50x faster** | 64KB buffer + capacity |
156
+ | **Read (10K lines)** | 0.34 ms | 0.29 ms | **1.17x faster** | Pre-allocation |
157
+ | **Read (50K lines)** | 1.45 ms | 0.97 ms | **1.49x faster** | Streaming optimized |
158
+ | **Read (100K lines)** | 3.71 ms | 2.38 ms | **1.56x faster** | 99.7% memory savings |
159
+ | **Read (500K lines)** | 31.50 ms | 21.55 ms | **1.46x faster** | 30MB file |
160
+ | **Git Status** | ~15-20 ms | 9.43 ms | **1.83x faster** | libgit2, no spawn |
161
+ | **Git Stage/Unstage** | ~10-15 ms | <5 ms | **2-3x faster** | Native operations |
162
+ | **Git Commit** | ~15-20 ms | <10 ms | **2x faster** | Direct libgit2 |
163
+ | **Git Branch List** | ~10 ms | <5 ms | **2x faster** | No process spawn |
164
+ | **Git Diff** | ~20-30 ms | ~15 ms | **1.5x faster** | Streaming diff |
107
165
 
108
166
  **Key Insights:**
109
167
 
110
168
  - ๐ŸŽฏ **PTY/Terminal**: **15.29x faster** (exceeded 10x target!) - Native ring buffer, zero-copy reads
169
+ - โœ… **File Read**: **1.17-1.56x faster** with **99.7% memory savings** (39MB โ†’ 0.13MB for 100K lines) - 64KB buffer + pre-allocation
170
+ - โœ… **Grep Search**: **90-99% memory reduction** with streaming - Can search GB-sized files without OOM
111
171
  - โœ… **Edit Tool**: 2-6x faster across all file sizes with all 9 smart replacement strategies
112
172
  - โœ… **Bash Parser**: 50-100x faster using native tree-sitter vs WASM (0.020ms per command, no initialization overhead)
113
173
  - โœ… **Glob/Grep**: 1.8-2.7x faster by eliminating process spawn overhead
114
174
  - โœ… **VCS Info**: 1.83x faster using libgit2 directly (no process spawning, 45% latency reduction)
115
175
  - โœ… **Archive Extraction**: 3-5x faster using s-zip vs shell commands (unzip/PowerShell)
116
- - โš ๏ธ **File I/O**: Raw FFI is 1.5-3x slower than Bun native due to FFI overhead
117
- - ๐Ÿ“Š **Memory**: Equivalent peak heap usage between Rust and Node.js for file I/O
118
- - ๐ŸŽฏ **Lesson**: FFI overhead (~50ยตs) remains; only use Rust when compute > overhead
119
- - ๐Ÿ”ง **Decision**: We use raw Rust FFI for consistency across native tool suite
176
+ - ๐Ÿ“Š **Memory**: Streaming patterns use only 64KB buffer regardless of file size
177
+ - ๐ŸŽฏ **Lesson**: Pre-allocation + streaming + larger buffers = faster I/O with dramatically less memory
120
178
 
121
179
  **Native Rust Components:**
122
180
 
123
181
  - โœ… **PTY/Terminal**: Full terminal session management with 2MB ring buffer, zero-copy streaming (15.29x faster) - Powers all Bash tool operations
182
+ - โœ… **Git Source Control**: Complete Git operations via libgit2 (status, stage, commit, push, branch, diff) - 1.5-3x faster than subprocess
183
+ - โœ… **File Reading**: Streaming read with 64KB buffer and pre-allocation (1.2-1.6x faster, 99.7% memory savings)
184
+ - โœ… **Grep Search**: Streaming line-by-line search (90-99% memory reduction, scales to GB files)
124
185
  - โœ… **Edit Tool**: 9 smart replacement strategies with fuzzy matching (complex compute justifies FFI)
125
186
  - โœ… **File Listing**: Native ignore crate for fast directory traversal (eliminates process spawn)
126
187
  - โœ… **File Search (Glob)**: Pattern matching with gitignore support (eliminates process spawn)
127
- - โœ… **Code Search (Grep)**: Regex search across large codebases (eliminates process spawn)
128
188
  - โœ… **Archive Extraction**: ZIP file extraction using s-zip streaming reader (3-5x faster, cross-platform)
129
189
  - โœ… **Bash Parser**: Native tree-sitter bash command parsing (50-100x faster than WASM, 0.020ms per command)
130
- - โœ… **File I/O**: Native read/write with optimized raw FFI
131
190
  - โœ… **Directory Listing**: Fast recursive directory traversal
132
191
  - โœ… **VCS Info**: Lightning-fast git repository information (libgit2 vs subprocess)
133
192
  - โœ… **System Stats**: CPU and memory monitoring
134
193
 
135
194
  **Benefits:**
136
195
 
196
+ - ๐Ÿš€ **1.2-1.6x faster** file reading with 64KB buffer and pre-allocation
197
+ - ๐Ÿ’พ **99.7% memory savings** on large files (39MB โ†’ 0.13MB for 100K lines)
198
+ - ๐Ÿ” **90-99% memory reduction** for grep search - can search GB-sized files
137
199
  - ๐Ÿš€ **Up to 6x faster** text editing with 9 smart replacement strategies (Levenshtein, fuzzy matching)
138
200
  - ๐Ÿš€ **Up to 5x faster** archive extraction (ZIP files) with cross-platform native code
139
201
  - ๐Ÿ’š **83% less time** on large file edits (10K lines: 451ms โ†’ 75ms)
140
202
  - โšก **1.83x faster** git operations using libgit2 (no process spawning)
141
203
  - ๐ŸŽฏ **2-3x faster** glob/grep by eliminating process spawn overhead
142
- - ๐Ÿ“Š **Optimized I/O**: Raw FFI implementation for consistent performance
204
+ - ๐Ÿ“Š **Optimized I/O**: Streaming patterns with single-allocation for minimal memory footprint
143
205
  - ๐Ÿ”ง **Consistent tooling**: Native Rust across all file operations for predictable performance
144
206
  - ๐ŸŒ **Cross-platform**: No external dependencies (unzip/PowerShell) for archive extraction
145
207
 
@@ -166,11 +228,12 @@ IronCode rewrites key operations in native Rust with **measured real-world perfo
166
228
  **Enhanced:**
167
229
 
168
230
  - ๐Ÿš€ **Native Rust performance** for compute-heavy operations (2-6x faster)
231
+ - ๐Ÿ’พ **Streaming file reads** with 99.7% memory savings (1.2-1.6x faster)
169
232
  - โšก **Eliminated process spawns** for glob/grep (2-3x speedup)
170
233
  - ๐Ÿ—œ๏ธ **Fast archive extraction** with s-zip (3-5x faster, cross-platform native)
171
234
  - ๐Ÿ’š **Faster edits** (2-6x improvement, scales with file size)
172
235
  - ๐Ÿ”ฅ **Smart edit strategies** with fuzzy matching and Levenshtein similarity
173
- - ๐Ÿ“Š **Optimized I/O**: Raw FFI implementation for consistent performance
236
+ - ๐Ÿ“Š **Optimized I/O**: Streaming read with 64KB buffer and pre-allocation
174
237
  - ๐Ÿ”ง **Consistent native tooling**: All file operations use Rust for predictable performance
175
238
  - ๐ŸŽฏ **Memory efficiency**: Automatic resource monitoring with 300MB default limit
176
239
  - ๐Ÿšฆ **Auto-throttling**: Prevents memory spikes and system crashes
@@ -194,20 +257,36 @@ npx ironcode-ai
194
257
 
195
258
  ### Homebrew (macOS/Linux)
196
259
 
260
+ IronCode is available through a Homebrew tap. The formula automatically installs the appropriate binary for your platform.
261
+
197
262
  ```bash
198
263
  # Add the tap
199
- brew tap KSD-CO/tap
264
+ brew tap KSD-CO/tap https://github.com/KSD-CO/homebrew-tap
200
265
 
201
266
  # Install IronCode
202
267
  brew install ironcode
203
268
 
269
+ # Verify installation
270
+ ironcode --version
271
+
204
272
  # Update to latest version
205
273
  brew upgrade ironcode
206
274
  ```
207
275
 
208
- ### Direct Download
276
+ **Supported Platforms:**
209
277
 
210
- Download pre-built binaries for your platform from [GitHub Releases](https://github.com/KSD-CO/IronCode/releases):
278
+ - macOS (Intel x64)
279
+ - macOS (Apple Silicon arm64)
280
+ - Linux (x64)
281
+ - Linux (arm64)
282
+
283
+ The Homebrew formula is auto-generated from releases and maintained at [github.com/KSD-CO/homebrew-tap](https://github.com/KSD-CO/homebrew-tap/blob/main/ironcode.rb).
284
+
285
+ ### Direct Download (Standalone Binary)
286
+
287
+ For users who prefer not to use package managers, download the pre-built CLI binary directly from [GitHub Releases](https://github.com/KSD-CO/IronCode/releases).
288
+
289
+ These are **standalone executables** that require no additional installation - just download, extract, and run:
211
290
 
212
291
  **Linux (x64):**
213
292
 
@@ -314,6 +393,59 @@ Once started, IronCode provides an interactive terminal UI:
314
393
  - Use `Ctrl+C` to cancel operations
315
394
  - Use `Ctrl+D` or type `exit` to quit
316
395
 
396
+ ### Git Source Control
397
+
398
+ IronCode includes a built-in Git UI accessible within the TUI:
399
+
400
+ **Open Git Panel:**
401
+
402
+ - Press `Ctrl+X` then `I` (keybinding)
403
+ - Or type `/git` or `/source-control` command
404
+
405
+ **Features:**
406
+
407
+ - **Status View** - See all file changes (staged/unstaged)
408
+ - `โ†‘โ†“` or `j/k`: Navigate files
409
+ - `Space`: Stage/unstage selected file
410
+ - `Enter`: View diff
411
+ - `a`: Stage all files
412
+ - `u`: Unstage all files
413
+ - `r`: Refresh status
414
+ - `p`: Push to remote
415
+ - **Branches View** - Switch between branches
416
+ - `โ†‘โ†“` or `j/k`: Navigate branches
417
+ - `Enter`: Checkout branch
418
+ - Current branch marked with `*`
419
+ - **Commit View** - Create commits
420
+ - Type your commit message
421
+ - `Enter`: Commit staged changes
422
+ - `Esc`: Cancel
423
+ - **Diff View** - Review changes
424
+ - Syntax-highlighted diffs (green +, red -, blue line numbers)
425
+ - `h` or `Backspace`: Return to status view
426
+
427
+ **Push Authentication:**
428
+
429
+ IronCode supports multiple authentication methods:
430
+
431
+ - SSH keys (id_rsa, id_ed25519) from `~/.ssh/`
432
+ - SSH agent
433
+ - HTTPS with credential helper (GitHub CLI recommended)
434
+
435
+ For HTTPS authentication with GitHub:
436
+
437
+ ```bash
438
+ # Install GitHub CLI if not already installed
439
+ brew install gh # macOS
440
+ # or: sudo apt install gh # Linux
441
+
442
+ # Authenticate
443
+ gh auth login
444
+
445
+ # Configure git to use gh for credentials
446
+ git config --global credential.helper '!gh auth git-credential'
447
+ ```
448
+
317
449
  ---
318
450
 
319
451
  ## Agents
@@ -471,6 +603,9 @@ Contributions are welcome! Please read [CONTRIBUTING.md](./CONTRIBUTING.md) befo
471
603
 
472
604
  **Recent Contributions:**
473
605
 
606
+ - โœ… **Git Source Control UI** (Full TUI integration with libgit2 - Feb 2026)
607
+ - โœ… **Streaming read optimization** (1.2-1.6x faster, 99.7% memory savings - Feb 2026)
608
+ - โœ… **Grep streaming optimization** (90-99% memory reduction, GB-file capability - Feb 2026)
474
609
  - โœ… **Memory optimization deployed to production** (97.6% faster message processing - Feb 2026)
475
610
  - โœ… **Resource monitoring system** (automatic throttling, 300MB default limit - Feb 2026)
476
611
  - โœ… **Native PTY/Terminal deployed to production** (15.29x speedup, powers Bash tool - Feb 2026)
@@ -509,6 +644,9 @@ bun ./script/test-integration.ts # Integration tests
509
644
  # PTY/Terminal benchmark (15.29x speedup)
510
645
  bun script/bench-pty.ts
511
646
 
647
+ # File read benchmark (1.2-1.6x speedup, 99.7% memory savings)
648
+ # See STREAMING-READ-OPTIMIZATION.md for details
649
+
512
650
  # Rust micro-benchmarks
513
651
  cd packages/ironcode/native/tool
514
652
  cargo bench --bench edit_bench
@@ -553,33 +691,7 @@ _Benchmarked on IronCode repository (dev branch, 100 iterations)_
553
691
 
554
692
  ---
555
693
 
556
- ## Upstream Sync
557
-
558
- This fork periodically syncs with [upstream OpenCode](https://github.com/anomalyco/opencode) to incorporate new features and bug fixes.
559
-
560
- ```bash
561
- # To sync with upstream
562
- git remote add upstream https://github.com/anomalyco/opencode.git
563
- git fetch upstream
564
- git merge upstream/dev
565
- ```
566
-
567
- ---
568
-
569
- ## License
570
-
571
- This project maintains the same license as [OpenCode](https://github.com/anomalyco/opencode).
572
-
573
- ---
574
-
575
694
  ## Acknowledgments
576
695
 
577
696
  - **OpenCode Team**: For creating the original open-source AI coding agent
578
697
  - All contributors to this fork
579
-
580
- ---
581
-
582
- ## Links
583
-
584
- - [Upstream OpenCode](https://github.com/anomalyco/opencode)
585
- - [IronCode Documentation](https://ironcode.cloud/docs)
package/package.json CHANGED
@@ -6,11 +6,11 @@
6
6
  "scripts": {
7
7
  "postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
8
8
  },
9
- "version": "1.8.0",
9
+ "version": "1.10.0",
10
10
  "license": "MIT",
11
11
  "optionalDependencies": {
12
- "ironcode-darwin-arm64": "1.8.0",
13
- "ironcode-windows-x64": "1.8.0",
14
- "ironcode-linux-x64": "1.8.0"
12
+ "ironcode-darwin-arm64": "1.10.0",
13
+ "ironcode-windows-x64": "1.10.0",
14
+ "ironcode-linux-x64": "1.10.0"
15
15
  }
16
16
  }