grok-cli-acp 0.1.2
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.
- package/.env.example +42 -0
- package/.github/workflows/ci.yml +30 -0
- package/.github/workflows/rust.yml +22 -0
- package/.grok/.env.example +85 -0
- package/.grok/COMPLETE_FIX_SUMMARY.md +466 -0
- package/.grok/ENV_CONFIG_GUIDE.md +173 -0
- package/.grok/QUICK_REFERENCE.md +180 -0
- package/.grok/README.md +104 -0
- package/.grok/TESTING_GUIDE.md +393 -0
- package/CHANGELOG.md +465 -0
- package/CODE_REVIEW_SUMMARY.md +414 -0
- package/COMPLETE_FIX_SUMMARY.md +415 -0
- package/CONFIGURATION.md +489 -0
- package/CONTEXT_FILES_GUIDE.md +419 -0
- package/CONTRIBUTING.md +55 -0
- package/CURSOR_POSITION_FIX.md +206 -0
- package/Cargo.toml +88 -0
- package/ERROR_HANDLING_REPORT.md +361 -0
- package/FINAL_FIX_SUMMARY.md +462 -0
- package/FIXES.md +37 -0
- package/FIXES_SUMMARY.md +87 -0
- package/GROK_API_MIGRATION_SUMMARY.md +111 -0
- package/LICENSE +22 -0
- package/MIGRATION_TO_GROK_API.md +223 -0
- package/README.md +504 -0
- package/REVIEW_COMPLETE.md +416 -0
- package/REVIEW_QUICK_REFERENCE.md +173 -0
- package/SECURITY.md +463 -0
- package/SECURITY_AUDIT.md +661 -0
- package/SETUP.md +287 -0
- package/TESTING_TOOLS.md +88 -0
- package/TESTING_TOOL_EXECUTION.md +239 -0
- package/TOOL_EXECUTION_FIX.md +491 -0
- package/VERIFICATION_CHECKLIST.md +419 -0
- package/docs/API.md +74 -0
- package/docs/CHAT_LOGGING.md +39 -0
- package/docs/CURSOR_FIX_DEMO.md +306 -0
- package/docs/ERROR_HANDLING_GUIDE.md +547 -0
- package/docs/FILE_OPERATIONS.md +449 -0
- package/docs/INTERACTIVE.md +401 -0
- package/docs/PROJECT_CREATION_GUIDE.md +570 -0
- package/docs/QUICKSTART.md +378 -0
- package/docs/QUICK_REFERENCE.md +691 -0
- package/docs/RELEASE_NOTES_0.1.2.md +240 -0
- package/docs/TOOLS.md +459 -0
- package/docs/TOOLS_QUICK_REFERENCE.md +210 -0
- package/docs/ZED_INTEGRATION.md +371 -0
- package/docs/extensions.md +464 -0
- package/docs/settings.md +293 -0
- package/examples/extensions/logging-hook/README.md +91 -0
- package/examples/extensions/logging-hook/extension.json +22 -0
- package/package.json +30 -0
- package/scripts/test_acp.py +252 -0
- package/scripts/test_acp.sh +143 -0
- package/scripts/test_acp_simple.sh +72 -0
- package/src/acp/mod.rs +741 -0
- package/src/acp/protocol.rs +323 -0
- package/src/acp/security.rs +298 -0
- package/src/acp/tools.rs +697 -0
- package/src/bin/banner_demo.rs +216 -0
- package/src/bin/docgen.rs +18 -0
- package/src/bin/installer.rs +217 -0
- package/src/cli/app.rs +310 -0
- package/src/cli/commands/acp.rs +721 -0
- package/src/cli/commands/chat.rs +485 -0
- package/src/cli/commands/code.rs +513 -0
- package/src/cli/commands/config.rs +394 -0
- package/src/cli/commands/health.rs +442 -0
- package/src/cli/commands/history.rs +421 -0
- package/src/cli/commands/mod.rs +14 -0
- package/src/cli/commands/settings.rs +1384 -0
- package/src/cli/mod.rs +166 -0
- package/src/config/mod.rs +2212 -0
- package/src/display/ascii_art.rs +139 -0
- package/src/display/banner.rs +289 -0
- package/src/display/components/input.rs +323 -0
- package/src/display/components/mod.rs +2 -0
- package/src/display/components/settings_list.rs +306 -0
- package/src/display/interactive.rs +1255 -0
- package/src/display/mod.rs +62 -0
- package/src/display/terminal.rs +42 -0
- package/src/display/tips.rs +316 -0
- package/src/grok_client_ext.rs +177 -0
- package/src/hooks/loader.rs +407 -0
- package/src/hooks/mod.rs +158 -0
- package/src/lib.rs +174 -0
- package/src/main.rs +65 -0
- package/src/mcp/client.rs +195 -0
- package/src/mcp/config.rs +20 -0
- package/src/mcp/mod.rs +6 -0
- package/src/mcp/protocol.rs +67 -0
- package/src/utils/auth.rs +41 -0
- package/src/utils/chat_logger.rs +568 -0
- package/src/utils/context.rs +390 -0
- package/src/utils/mod.rs +16 -0
- package/src/utils/network.rs +320 -0
- package/src/utils/rate_limiter.rs +166 -0
- package/src/utils/session.rs +73 -0
- package/src/utils/shell_permissions.rs +389 -0
- package/src/utils/telemetry.rs +41 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the Grok CLI project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Input cursor positioning**: Fixed cursor appearing outside the input box when typing long text
|
|
13
|
+
- Implemented horizontal scrolling for input text that exceeds box width
|
|
14
|
+
- Cursor now stays properly positioned within the visible box area
|
|
15
|
+
- Text automatically scrolls as you type beyond the visible area
|
|
16
|
+
- Works correctly on window resize
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Migrated to `grok_api` crate**: Replaced local API implementation with published `grok_api = "0.1.0"` crate from crates.io
|
|
21
|
+
- Removed local `src/api` module
|
|
22
|
+
- Created `grok_client_ext` compatibility wrapper to maintain existing API surface
|
|
23
|
+
- All existing functionality preserved with minimal changes
|
|
24
|
+
- Benefits: Better maintenance, version management, and reusability across projects
|
|
25
|
+
- All 78 tests passing successfully
|
|
26
|
+
|
|
27
|
+
## [0.1.2] - 2026-01-13
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **Automatic Tool Execution**: Grok can now execute file operations automatically during conversations!
|
|
32
|
+
- Integrated tool calling support into interactive and single-query chat modes
|
|
33
|
+
- Grok can create files and directories directly without manual copy-pasting
|
|
34
|
+
- Supported tools:
|
|
35
|
+
- `write_file` - Create or overwrite files with content
|
|
36
|
+
- `read_file` - Read file contents
|
|
37
|
+
- `replace` - Find and replace text in files
|
|
38
|
+
- `list_directory` - List directory contents
|
|
39
|
+
- `glob_search` - Find files matching glob patterns
|
|
40
|
+
- `save_memory` - Save facts to long-term memory
|
|
41
|
+
- `run_shell_command` - Execute shell commands (cargo, git, etc.)
|
|
42
|
+
- Automatic PowerShell syntax conversion: bash-style `&&` converted to `;` on Windows
|
|
43
|
+
- Automatic parent directory creation: creates `.grok/` and other nested directories automatically
|
|
44
|
+
- Security-restricted to current directory and subdirectories
|
|
45
|
+
- Visual feedback with ✓ confirmation for each operation
|
|
46
|
+
- Example: Ask "Create a new Rust project structure" and files are created automatically
|
|
47
|
+
- Comprehensive documentation in `docs/FILE_OPERATIONS.md` (402 lines)
|
|
48
|
+
- Works seamlessly with session persistence and context discovery
|
|
49
|
+
|
|
50
|
+
- **Chat Session Logging**: Comprehensive conversation logging system
|
|
51
|
+
- Automatic logging of all chat sessions (ACP and interactive modes)
|
|
52
|
+
- Dual format output: JSON (machine-readable) and TXT (human-readable)
|
|
53
|
+
- Unique session IDs with timestamps for easy retrieval
|
|
54
|
+
- Full metadata tracking (timestamps, roles, optional data)
|
|
55
|
+
- Automatic log rotation based on size limits
|
|
56
|
+
- Network-resilient with proper error handling for Starlink drops
|
|
57
|
+
- Configuration via environment variables:
|
|
58
|
+
- `GROK_CHAT_LOGGING_ENABLED` - Enable/disable logging (default: true)
|
|
59
|
+
- `GROK_CHAT_LOG_DIR` - Custom log directory
|
|
60
|
+
- `GROK_CHAT_LOG_MAX_SIZE_MB` - Max file size before rotation
|
|
61
|
+
- `GROK_CHAT_LOG_ROTATION_COUNT` - Number of files to keep
|
|
62
|
+
- `GROK_CHAT_LOG_INCLUDE_SYSTEM` - Include system messages
|
|
63
|
+
- Default location: `~/.grok/logs/chat_sessions/`
|
|
64
|
+
|
|
65
|
+
- **Chat History Commands**: New `grok history` command suite
|
|
66
|
+
- `grok history list` - List all saved chat sessions with previews
|
|
67
|
+
- `grok history view <session-id>` - View complete conversation transcript
|
|
68
|
+
- `grok history search "query"` - Search through all sessions with highlighting
|
|
69
|
+
- `grok history clear --confirm` - Clear all chat history
|
|
70
|
+
- Rich terminal formatting with colored output
|
|
71
|
+
- Session metadata display (start time, duration, message count)
|
|
72
|
+
- Context-aware search results with line previews
|
|
73
|
+
|
|
74
|
+
- **Documentation**: New comprehensive chat logging guide
|
|
75
|
+
- `docs/CHAT_LOGGING.md` - Complete feature documentation (415 lines)
|
|
76
|
+
- Configuration examples and environment variable reference
|
|
77
|
+
- Usage examples and troubleshooting guide
|
|
78
|
+
- Privacy and security best practices
|
|
79
|
+
- API reference for programmatic access
|
|
80
|
+
- Updated `CONFIGURATION.md` with chat logging settings
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
- **ACP Module Visibility**: Made `security` and `tools` modules public for use in chat commands
|
|
84
|
+
- Enables tool execution in regular chat mode (not just ACP/Zed integration)
|
|
85
|
+
- Maintains security policies across all modes
|
|
86
|
+
|
|
87
|
+
- **Rust 2024 Edition Upgrade**: Updated from Rust 2021 to Rust 2024 edition
|
|
88
|
+
- Improved safety requirements for environment variable operations
|
|
89
|
+
- Updated all unsafe operations to comply with edition 2024 standards
|
|
90
|
+
- All tests passing with new edition requirements
|
|
91
|
+
|
|
92
|
+
- **Chat Command Enhancement**: Enhanced chat commands to support tool calling
|
|
93
|
+
- Added tool definitions to API requests
|
|
94
|
+
- Integrated tool call response parsing and execution
|
|
95
|
+
- Improved error handling for tool operations
|
|
96
|
+
|
|
97
|
+
- **Shell Command Compatibility**: Fixed PowerShell command chaining issues
|
|
98
|
+
- Automatic conversion of bash-style `&&` to PowerShell `;` separator
|
|
99
|
+
- Enables natural command syntax across all platforms
|
|
100
|
+
- Example: `cargo new project && git init` works on Windows now
|
|
101
|
+
|
|
102
|
+
- **File Operations Enhancement**: Fixed directory creation for nested paths
|
|
103
|
+
- Parent directories now created before path resolution
|
|
104
|
+
- Fixes "file not found" errors when writing to `.grok/context.md` and similar nested paths
|
|
105
|
+
- Added `working_directory()` getter to SecurityPolicy for proper path handling
|
|
106
|
+
|
|
107
|
+
- **Dependency Updates**: Updated all major dependencies to latest versions
|
|
108
|
+
- `tokio` updated to 1.49.0 (from 1.40.0) - Async runtime improvements
|
|
109
|
+
- `reqwest` locked to 0.13.1 with `native-tls-vendored` for Windows compatibility
|
|
110
|
+
- `clap` updated to 4.5.54 (from 4.5.20) - CLI parsing improvements
|
|
111
|
+
- `toml` updated to 0.9.11 (from 0.9.8) - TOML parsing updates
|
|
112
|
+
- `anyhow` updated to 1.0.100 - Error handling improvements
|
|
113
|
+
- `uuid` updated to 1.19.0 - UUID generation updates
|
|
114
|
+
- `chrono` updated to 0.4.42 - Date/time handling improvements
|
|
115
|
+
- `thiserror` updated to 2.0.17 - Error derive macro improvements
|
|
116
|
+
- All dependencies tested and working with Rust 2024 edition
|
|
117
|
+
|
|
118
|
+
- **TLS Backend Configuration**: Optimized for Windows 11 development
|
|
119
|
+
- Using `native-tls-vendored` instead of `rustls` for reqwest 0.13.1
|
|
120
|
+
- Avoids CMake/NASM build dependencies on Windows
|
|
121
|
+
- Uses native Windows SChannel API for TLS
|
|
122
|
+
- Faster build times (~30s vs ~60s with rustls)
|
|
123
|
+
- Automatic Windows certificate store integration
|
|
124
|
+
- Reliable network operations for Starlink connectivity
|
|
125
|
+
- See `docs/TLS_BACKEND_WINDOWS.md` for detailed TLS backend options
|
|
126
|
+
|
|
127
|
+
- **Security: Replaced Unmaintained Dependencies**
|
|
128
|
+
- Replaced `dotenv` (unmaintained) with `dotenvy` (maintained)
|
|
129
|
+
- Replaced `atty` (unmaintained) with `std::io::IsTerminal` (stdlib)
|
|
130
|
+
- Removed `term_size` (unmaintained) - using `terminal_size` instead
|
|
131
|
+
- TLS implementation using Windows-native SChannel (native-tls-vendored)
|
|
132
|
+
- All security advisories resolved
|
|
133
|
+
- Zero vulnerabilities in dependency tree
|
|
134
|
+
|
|
135
|
+
### Documentation
|
|
136
|
+
- Added `docs/TLS_BACKEND_WINDOWS.md` - Comprehensive TLS backend configuration guide
|
|
137
|
+
- Added `TLS_UPDATE_SUMMARY.md` - Quick reference for TLS backend changes
|
|
138
|
+
- Documented native-tls vs rustls trade-offs for Windows development
|
|
139
|
+
- Included instructions for switching to rustls if pure Rust TLS is required
|
|
140
|
+
|
|
141
|
+
### Added
|
|
142
|
+
- **Shell Command Permission System**: Comprehensive security for `!` commands
|
|
143
|
+
- Interactive approval prompts with allow/deny/always options
|
|
144
|
+
- Session-level allowlist (temporary permissions)
|
|
145
|
+
- Persistent allowlist saved to `~/.grok/shell_policy.json`
|
|
146
|
+
- Automatic blocklist for dangerous commands (rm, shutdown, format, etc.)
|
|
147
|
+
- Command root extraction for intelligent permission management
|
|
148
|
+
- Approval modes: Default (prompt) and YOLO (always allow)
|
|
149
|
+
- Configuration via `GROK_SHELL_APPROVAL_MODE` environment variable
|
|
150
|
+
- Inspired by Gemini CLI's security model
|
|
151
|
+
|
|
152
|
+
- **Shell Command Execution**: Local command execution in interactive mode
|
|
153
|
+
- Execute shell commands with `!` prefix (e.g., `!ls`, `!git status`)
|
|
154
|
+
- Cross-platform support (Windows cmd, Unix sh)
|
|
155
|
+
- Real-time stdout/stderr output
|
|
156
|
+
- Exit code reporting for failed commands
|
|
157
|
+
- Commands never sent to AI - executed locally only
|
|
158
|
+
- Integrated with permission system for safety
|
|
159
|
+
|
|
160
|
+
- **Configuration Consolidation**: Unified `.env`-based configuration
|
|
161
|
+
- Migrated from mixed TOML/env to pure `.env` files
|
|
162
|
+
- Hierarchical loading: project `.grok/.env` → system `~/.grok/.env` → defaults
|
|
163
|
+
- 50+ environment variables for all settings
|
|
164
|
+
- Clear configuration priority rules
|
|
165
|
+
- Project-specific overrides in `.grok/.env`
|
|
166
|
+
- System-wide settings in `~/.grok/.env`
|
|
167
|
+
- Removed redundant TOML config files
|
|
168
|
+
|
|
169
|
+
- **Hierarchical Configuration System**: Multi-tier config loading (Task 12)
|
|
170
|
+
- Project-level: `.grok/.env` in project root
|
|
171
|
+
- System-level: `~/.grok/.env` in home directory
|
|
172
|
+
- Built-in defaults with proper fallback
|
|
173
|
+
- Configuration source tracking and display
|
|
174
|
+
- Proper field-level merging with serde defaults
|
|
175
|
+
- Environment variable overrides (highest priority)
|
|
176
|
+
|
|
177
|
+
- **Session Persistence**: Implemented full session save/load functionality
|
|
178
|
+
- Added `/save <name>` command to save current conversation session
|
|
179
|
+
- Added `/load <name>` command to load a previously saved session
|
|
180
|
+
- Added `/list` command to show all saved sessions
|
|
181
|
+
- Sessions stored as JSON in `~/.grok/sessions/`
|
|
182
|
+
- Full conversation history and context preserved across sessions
|
|
183
|
+
|
|
184
|
+
- **Context File Integration**: Automatic project context loading
|
|
185
|
+
- Detects and loads project context files on startup (GEMINI.md, .grok/context.md, .ai/context.md, CONTEXT.md)
|
|
186
|
+
- Context automatically injected into system prompt to ground the agent
|
|
187
|
+
- Support for multiple context file locations with priority order
|
|
188
|
+
- File size validation (5 MB max) and error handling
|
|
189
|
+
- Visual feedback when context is loaded
|
|
190
|
+
|
|
191
|
+
- **Extension Loading System**: Complete extension framework implementation
|
|
192
|
+
- Extension discovery from `~/.grok/extensions/` directory
|
|
193
|
+
- Extension manifest parsing (`extension.json`)
|
|
194
|
+
- Hook-based extension API with `before_tool` and `after_tool` hooks
|
|
195
|
+
- Extension Manager and Hook Manager for lifecycle management
|
|
196
|
+
- Configuration-based extension enabling/disabling
|
|
197
|
+
|
|
198
|
+
- **Comprehensive Documentation**:
|
|
199
|
+
- `SECURITY.md` - Shell command security guide (460+ lines)
|
|
200
|
+
- `INTERACTIVE.md` - Interactive mode complete guide (400+ lines)
|
|
201
|
+
- `QUICKSTART.md` - Quick start guide (378+ lines)
|
|
202
|
+
- `CONFIGURATION.md` - Configuration guide (458+ lines)
|
|
203
|
+
- Updated all existing documentation with new features
|
|
204
|
+
- Support for extension dependencies
|
|
205
|
+
- Example logging-hook extension included
|
|
206
|
+
|
|
207
|
+
- **Hierarchical Configuration Loading**: Three-tier configuration priority system
|
|
208
|
+
- Project-local settings (`.grok/config.toml` in project root)
|
|
209
|
+
- System-level settings (`~/.grok/config.toml` or `%APPDATA%\.grok`)
|
|
210
|
+
- Built-in defaults
|
|
211
|
+
- Automatic project root detection (walks up directory tree)
|
|
212
|
+
- Config merging with proper priority: project → system → defaults
|
|
213
|
+
- Environment variable overrides still take highest priority
|
|
214
|
+
- Supports per-project customization while maintaining global preferences
|
|
215
|
+
|
|
216
|
+
- **Enhanced Context Rules Discovery**: Multi-editor context file support
|
|
217
|
+
- Expanded context file discovery to include editor-specific files:
|
|
218
|
+
- `.zed/rules` (Zed editor)
|
|
219
|
+
- `.gemini.md` (Gemini CLI)
|
|
220
|
+
- `.claude.md` (Claude AI)
|
|
221
|
+
- `.cursor/rules` (Cursor editor)
|
|
222
|
+
- `AI_RULES.md` (generic)
|
|
223
|
+
- Support for loading and merging multiple context files
|
|
224
|
+
- Visual feedback shows all loaded context sources
|
|
225
|
+
- Annotated context with source file information
|
|
226
|
+
- Compatible with existing GEMINI.md and other formats
|
|
227
|
+
|
|
228
|
+
### Changed
|
|
229
|
+
- Enhanced interactive session startup with context loading feedback
|
|
230
|
+
- Improved session info display to show loaded context files
|
|
231
|
+
- CLI now uses hierarchical config loading by default
|
|
232
|
+
- Context loading supports merging multiple files with source annotations
|
|
233
|
+
- Added comprehensive extension system documentation (docs/extensions.md)
|
|
234
|
+
|
|
235
|
+
### Technical Details
|
|
236
|
+
- Added `Config::load_hierarchical()` for cascading configuration
|
|
237
|
+
- Added `Config::find_project_config()` to walk directory tree
|
|
238
|
+
- Added `Config::merge_configs()` for proper config priority merging
|
|
239
|
+
- Enhanced `src/utils/context.rs` with multi-file support:
|
|
240
|
+
- `load_and_merge_project_context()` for merging multiple files
|
|
241
|
+
- `get_all_context_file_paths()` to list all available contexts
|
|
242
|
+
- Added `src/hooks/loader.rs` for extension loading and management
|
|
243
|
+
- Extended `Config` with `ExtensionsConfig` structure
|
|
244
|
+
- Session persistence uses Serde serialization with proper error handling
|
|
245
|
+
- Network resilience built into context loading (Starlink-aware)
|
|
246
|
+
|
|
247
|
+
### Documentation
|
|
248
|
+
- Added comprehensive extension system documentation (docs/extensions.md)
|
|
249
|
+
- Created example extension with full README (examples/extensions/logging-hook/)
|
|
250
|
+
- Created progress report (docs/PROGRESS_REPORT.md)
|
|
251
|
+
- Created quick reference guide (docs/QUICK_REFERENCE.md)
|
|
252
|
+
- Documented context file integration in code comments
|
|
253
|
+
- Added task tracking updates in .zed/tasks.json
|
|
254
|
+
|
|
255
|
+
## [0.1.1] - 2024-01-XX
|
|
256
|
+
|
|
257
|
+
### Fixed
|
|
258
|
+
- **Critical**: Resolved "failed to deserialize response" error in Zed editor integration (TWO ROOT CAUSES)
|
|
259
|
+
|
|
260
|
+
**Issue 1: Clap Argument Definitions**
|
|
261
|
+
- Added missing `#[arg(...)]` attributes to all Clap command-line argument definitions
|
|
262
|
+
- Fixed `ConfigAction::Init` force flag parsing
|
|
263
|
+
- Fixed `AcpAction::Server` port and host argument parsing
|
|
264
|
+
- Fixed `AcpAction::Test` address argument parsing
|
|
265
|
+
- Fixed `CodeAction` boolean flags and optional parameters
|
|
266
|
+
- Fixed `SettingsAction` optional parameters
|
|
267
|
+
|
|
268
|
+
**Issue 2: Protocol Serialization Mismatch**
|
|
269
|
+
- Fixed protocol version serialization (was returning "2024-04-15" instead of echoing client's version)
|
|
270
|
+
- Added camelCase field names for JSON-RPC protocol (protocolVersion, agentCapabilities, etc.)
|
|
271
|
+
- Added custom serializer to output protocol version as integer when numeric
|
|
272
|
+
- Fixed protocol version to echo back client's version instead of hardcoding
|
|
273
|
+
- Added flexible protocol version parser to handle both integer and string formats
|
|
274
|
+
- Updated all ACP protocol structs to use camelCase for Zed compatibility
|
|
275
|
+
|
|
276
|
+
- All commands now work correctly with proper flag and option parsing
|
|
277
|
+
- ACP protocol now fully compatible with Zed editor's JSON-RPC expectations
|
|
278
|
+
|
|
279
|
+
### Added
|
|
280
|
+
- Comprehensive Zed integration documentation (ZED_INTEGRATION.md)
|
|
281
|
+
- Technical fix documentation (FIXES.md)
|
|
282
|
+
- Quick fix guide (QUICKFIX_ZED.md)
|
|
283
|
+
- Complete project summary (SUMMARY.md)
|
|
284
|
+
- This CHANGELOG file
|
|
285
|
+
|
|
286
|
+
### Changed
|
|
287
|
+
- Updated README.md with fix notification and improved Zed integration section
|
|
288
|
+
- Improved ACP server command with default host value (127.0.0.1)
|
|
289
|
+
- Enhanced error messages and help text for all commands
|
|
290
|
+
|
|
291
|
+
### Documentation
|
|
292
|
+
- Added complete Zed editor setup guide with STDIO and Server mode instructions
|
|
293
|
+
- Added troubleshooting section with common issues and solutions
|
|
294
|
+
- Added quick reference guide for all commands
|
|
295
|
+
- Updated README with links to all new documentation
|
|
296
|
+
|
|
297
|
+
## [0.1.0] - 2024-01-XX
|
|
298
|
+
|
|
299
|
+
### Added
|
|
300
|
+
- Initial release of Grok CLI
|
|
301
|
+
- Beautiful interactive terminal interface inspired by Gemini CLI
|
|
302
|
+
- Adaptive ASCII art logo with multiple size variants
|
|
303
|
+
- Rich interactive mode with context-aware prompts
|
|
304
|
+
- Chat completion with Grok AI (grok-2-latest, grok-2, grok-1)
|
|
305
|
+
- Code operations (explain, review, generate, fix)
|
|
306
|
+
- Agent Client Protocol (ACP) support for Zed editor integration
|
|
307
|
+
- Configuration management system with TOML config files
|
|
308
|
+
- Settings management with interactive browser
|
|
309
|
+
- Health monitoring and diagnostics
|
|
310
|
+
- Network resilience features with Starlink optimizations
|
|
311
|
+
- Colored output with professional color scheme
|
|
312
|
+
- Progress indicators and status displays
|
|
313
|
+
- Session management and conversation history
|
|
314
|
+
- Temperature and token control
|
|
315
|
+
- Multi-language code support
|
|
316
|
+
- Security policy engine for shell command execution
|
|
317
|
+
- MCP (Model Context Protocol) integration
|
|
318
|
+
- Web search and fetch capabilities
|
|
319
|
+
- File search with glob patterns
|
|
320
|
+
- Content search with ripgrep integration
|
|
321
|
+
- Persistent memory system
|
|
322
|
+
- Comprehensive error handling and retry logic
|
|
323
|
+
- Windows, Linux, and macOS support
|
|
324
|
+
|
|
325
|
+
### Features
|
|
326
|
+
|
|
327
|
+
#### Core Functionality
|
|
328
|
+
- Interactive chat sessions with context tracking
|
|
329
|
+
- Single-shot queries for quick answers
|
|
330
|
+
- System prompts for specialized behavior
|
|
331
|
+
- Streaming responses with real-time display
|
|
332
|
+
- Token usage monitoring
|
|
333
|
+
- Session saving and restoration
|
|
334
|
+
|
|
335
|
+
#### Code Intelligence
|
|
336
|
+
- Code explanation with language detection
|
|
337
|
+
- Code review with focus areas (security, performance, style)
|
|
338
|
+
- Code generation from natural language
|
|
339
|
+
- Code fixing with issue descriptions
|
|
340
|
+
- Multi-file analysis support
|
|
341
|
+
|
|
342
|
+
#### Developer Tools
|
|
343
|
+
- ACP server mode for editor integration
|
|
344
|
+
- ACP STDIO mode for subprocess communication
|
|
345
|
+
- Configuration initialization and validation
|
|
346
|
+
- API key management
|
|
347
|
+
- Network connectivity testing
|
|
348
|
+
- Health checks (API, config, network)
|
|
349
|
+
|
|
350
|
+
#### Network Features
|
|
351
|
+
- Starlink satellite internet optimizations
|
|
352
|
+
- Smart retry logic with exponential backoff
|
|
353
|
+
- Connection drop detection and recovery
|
|
354
|
+
- Configurable timeouts and retry limits
|
|
355
|
+
- Network health monitoring
|
|
356
|
+
|
|
357
|
+
#### UI/UX
|
|
358
|
+
- Adaptive terminal width detection
|
|
359
|
+
- Unicode support with fallback to ASCII
|
|
360
|
+
- Colored output with theme support
|
|
361
|
+
- Progress bars for long operations
|
|
362
|
+
- Banner and tips system
|
|
363
|
+
- Status indicators
|
|
364
|
+
- Error formatting with context
|
|
365
|
+
|
|
366
|
+
#### Configuration
|
|
367
|
+
- TOML-based configuration system
|
|
368
|
+
- Environment variable support
|
|
369
|
+
- Per-user config files
|
|
370
|
+
- Config validation
|
|
371
|
+
- Interactive settings editor
|
|
372
|
+
- Import/export capabilities
|
|
373
|
+
|
|
374
|
+
### Fixed
|
|
375
|
+
- **ACP Protocol Serialization**: Fixed `SessionUpdate` enum tag from `sessionUpdate` to `type`
|
|
376
|
+
- Corrected JSON output to match ACP specification
|
|
377
|
+
- All 68 tests now passing
|
|
378
|
+
|
|
379
|
+
### Technical Details
|
|
380
|
+
- Built with Rust 2024 edition
|
|
381
|
+
- Async runtime with Tokio
|
|
382
|
+
- HTTP client with reqwest (rustls-tls)
|
|
383
|
+
- CLI parsing with Clap 4.x
|
|
384
|
+
- Comprehensive test suite (68 tests passing)
|
|
385
|
+
- Structured logging with tracing
|
|
386
|
+
- JSON serialization with serde
|
|
387
|
+
- Terminal UI with ratatui and crossterm
|
|
388
|
+
- File operations with walkdir and glob
|
|
389
|
+
- Regex search with ripgrep integration
|
|
390
|
+
- Secure random with rand
|
|
391
|
+
- Date/time handling with chrono
|
|
392
|
+
|
|
393
|
+
### Dependencies
|
|
394
|
+
- Rust 1.70 or later
|
|
395
|
+
- X/Grok API key from x.ai
|
|
396
|
+
- Internet connection (with resilience for Starlink)
|
|
397
|
+
|
|
398
|
+
### Installation
|
|
399
|
+
- Source build with Cargo
|
|
400
|
+
- Windows, Linux, and macOS support
|
|
401
|
+
- Optional PATH configuration
|
|
402
|
+
|
|
403
|
+
### Known Issues
|
|
404
|
+
- None at this time
|
|
405
|
+
|
|
406
|
+
### Security
|
|
407
|
+
- API keys stored securely in config or environment
|
|
408
|
+
- Shell command execution requires trusted directory approval
|
|
409
|
+
- Localhost-only binding for ACP server by default
|
|
410
|
+
- Policy engine for tool execution control
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## Release Notes
|
|
415
|
+
|
|
416
|
+
### Version 0.1.1
|
|
417
|
+
This is a critical bug fix release that resolves Zed editor integration issues. The "failed to deserialize response" error was caused by two separate issues:
|
|
418
|
+
|
|
419
|
+
1. **Command-line parsing**: Missing Clap attributes causing argument parsing failures
|
|
420
|
+
2. **Protocol serialization**: Field name and type mismatches between grok-cli and Zed's expectations
|
|
421
|
+
|
|
422
|
+
Both issues have been completely resolved. All users experiencing integration errors should upgrade immediately. The fixes are backward compatible with no breaking changes to existing functionality.
|
|
423
|
+
|
|
424
|
+
### Version 0.1.0
|
|
425
|
+
This is the initial public release of Grok CLI, featuring a complete implementation of the Agent Client Protocol for Zed editor integration, beautiful terminal UI, and comprehensive AI capabilities powered by X/Grok API.
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Upgrade Guide
|
|
430
|
+
|
|
431
|
+
### From 0.1.0 to 0.1.1
|
|
432
|
+
|
|
433
|
+
1. Pull latest changes from repository
|
|
434
|
+
2. Rebuild: `cargo clean && cargo build --release`
|
|
435
|
+
3. No configuration changes required
|
|
436
|
+
4. Test with: `grok config init --force`
|
|
437
|
+
5. Verify Zed integration: `grok acp capabilities`
|
|
438
|
+
|
|
439
|
+
No breaking changes - all existing configurations remain compatible.
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Contributing
|
|
444
|
+
|
|
445
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on:
|
|
446
|
+
- How to report issues
|
|
447
|
+
- How to submit pull requests
|
|
448
|
+
- Code style guidelines
|
|
449
|
+
- Testing requirements
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## Links
|
|
454
|
+
|
|
455
|
+
- **Repository**: https://github.com/microtech/grok-cli
|
|
456
|
+
- **Issues**: https://github.com/microtech/grok-cli/issues
|
|
457
|
+
- **Discussions**: https://github.com/microtech/grok-cli/discussions
|
|
458
|
+
- **Author**: John McConnell (john.microtech@gmail.com)
|
|
459
|
+
- **License**: MIT
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
**Maintained by**: John McConnell
|
|
464
|
+
**Project Start**: 2024
|
|
465
|
+
**Current Version**: 0.1.1
|