lacy 1.8.10 → 1.8.12
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/.claude/settings.local.json +26 -0
- package/.github/FUNDING.yml +3 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +28 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- package/.github/SECURITY.md +32 -0
- package/.github/assets/logo-horizontal-dark.png +0 -0
- package/.github/assets/logo-horizontal-dark.svg +17 -0
- package/.github/assets/logo-horizontal.png +0 -0
- package/.github/assets/logo-horizontal.svg +17 -0
- package/.github/assets/logo.png +0 -0
- package/.github/assets/logo.svg +12 -0
- package/.github/assets/social-preview.png +0 -0
- package/.github/assets/social-preview.svg +50 -0
- package/.github/dependabot.yml +21 -0
- package/.github/workflows/ci.yml +80 -0
- package/.github/workflows/dependabot-auto-merge.yml +32 -0
- package/CHANGELOG.md +366 -0
- package/CLAUDE.md +340 -0
- package/CONTRIBUTING.md +141 -0
- package/LICENSE +110 -0
- package/README.md +201 -31
- package/RELEASING.md +148 -0
- package/STYLE.md +202 -0
- package/assets/hero.jpeg +0 -0
- package/assets/mode-indicators.jpeg +0 -0
- package/assets/real-time-indicator.jpeg +0 -0
- package/assets/supported-tools.jpeg +0 -0
- package/bin/lacy +1028 -0
- package/docs/ADDING-BACKENDS.md +124 -0
- package/docs/DEVTO-ARTICLE.md +94 -0
- package/docs/DOCS.md +68 -0
- package/docs/GROWTH-STRATEGY.md +119 -0
- package/docs/HN-RESPONSES.md +122 -0
- package/docs/LAUNCH-COPY-FINAL.md +105 -0
- package/docs/MARKETING.md +411 -0
- package/docs/NATURAL_LANGUAGE_DETECTION.md +204 -0
- package/docs/UGC_VIDEO_SCRIPT.md +114 -0
- package/docs/articles/devto-how-i-made-my-terminal-understand-english.md +117 -0
- package/docs/demo-color-transition.gif +0 -0
- package/docs/demo-full.gif +0 -0
- package/docs/demo-indicator.gif +0 -0
- package/docs/launch-thread-may6.sh +158 -0
- package/docs/videos/README.md +189 -0
- package/docs/videos/generate_frames.py +510 -0
- package/docs/videos/generate_frames_v2.py +729 -0
- package/docs/videos/generate_short.py +328 -0
- package/docs/videos/generate_short_v2.py +526 -0
- package/docs/videos/lacy-shell-demo-v2.mp4 +0 -0
- package/docs/videos/lacy-shell-demo.mp4 +0 -0
- package/docs/videos/lacy-shell-short-v2.mp4 +0 -0
- package/docs/videos/lacy-shell-short.mp4 +0 -0
- package/install.sh +1009 -0
- package/lacy.plugin.bash +75 -0
- package/lacy.plugin.fish +43 -0
- package/lacy.plugin.zsh +65 -0
- package/lib/animations.zsh +3 -0
- package/lib/bash/completions.bash +40 -0
- package/lib/bash/execute.bash +233 -0
- package/lib/bash/init.bash +40 -0
- package/lib/bash/keybindings.bash +134 -0
- package/lib/bash/prompt.bash +85 -0
- package/lib/commands/info.sh +25 -0
- package/lib/config.zsh +3 -0
- package/lib/constants.zsh +3 -0
- package/lib/core/animations.sh +271 -0
- package/lib/core/commands.sh +297 -0
- package/lib/core/config.sh +340 -0
- package/lib/core/constants.sh +366 -0
- package/lib/core/context.sh +260 -0
- package/lib/core/detection.sh +417 -0
- package/lib/core/mcp.sh +741 -0
- package/lib/core/modes.sh +123 -0
- package/lib/core/preheat.sh +496 -0
- package/lib/core/spinner.sh +174 -0
- package/lib/core/telemetry.sh +99 -0
- package/lib/detection.zsh +3 -0
- package/lib/execute.zsh +3 -0
- package/lib/fish/config.fish +66 -0
- package/lib/fish/detection.fish +90 -0
- package/lib/fish/execute.fish +105 -0
- package/lib/fish/keybindings.fish +42 -0
- package/lib/fish/prompt.fish +30 -0
- package/lib/keybindings.zsh +3 -0
- package/lib/mcp.zsh +3 -0
- package/lib/modes.zsh +3 -0
- package/lib/preheat.zsh +3 -0
- package/lib/prompt.zsh +3 -0
- package/lib/spinner.zsh +3 -0
- package/lib/zsh/completions.zsh +60 -0
- package/lib/zsh/execute.zsh +294 -0
- package/lib/zsh/init.zsh +26 -0
- package/lib/zsh/keybindings.zsh +551 -0
- package/lib/zsh/prompt.zsh +90 -0
- package/package.json +42 -27
- package/packages/lacy/README.md +61 -0
- package/packages/lacy/commands/info.sh +25 -0
- package/{index.mjs → packages/lacy/index.mjs} +247 -20
- package/packages/lacy/package-lock.json +71 -0
- package/packages/lacy/package.json +42 -0
- package/script/release.ts +487 -0
- package/squirrel.toml +36 -0
- package/tests/test_bash.bash +163 -0
- package/tests/test_core.sh +607 -0
- package/tests/test_gemini.sh +119 -0
- package/tests/test_gemini_mcp.sh +126 -0
- package/tests/test_preheat_server.zsh +446 -0
- package/uninstall.sh +52 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Lacy 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
|
+
## [1.7.0] - 2026-02-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Bash 4+ adapter** — Lacy Shell now works in Bash 4+ in addition to ZSH. Uses `bind -x` for Enter override, `PROMPT_COMMAND` for post-execution hooks, and `PS1` badge for mode display. Requires Bash 4+ (macOS: `brew install bash`); shows a clear error on Bash 3.2
|
|
13
|
+
- **Standalone CLI** (`bin/lacy`) — pure-bash CLI with zero dependencies. Commands: `lacy setup`, `lacy status`, `lacy doctor`, `lacy update`, `lacy uninstall`, `lacy reinstall`, `lacy config`, `lacy version`, `lacy help`. Delegates to `npx lacy@latest` for rich UI when Node is available, falls back to bash
|
|
14
|
+
- **Multi-shell architecture** — `lib/core/*.sh` (portable Bash 4+/ZSH shared logic), `lib/zsh/*.zsh` (ZLE widgets, `region_highlight`, `print -P`), `lib/bash/*.bash` (`bind -x`, `PROMPT_COMMAND`, `printf` ANSI). Old `lib/*.zsh` files are thin backward-compat wrappers
|
|
15
|
+
- `lacy.plugin.bash` entry point — sets `LACY_SHELL_TYPE=bash`, `_LACY_ARR_OFFSET=0`, loads bash adapter modules
|
|
16
|
+
- `tests/test_bash.bash` — 16 Bash-specific integration tests (detection, prompt, modes, command functions)
|
|
17
|
+
- `tests/test_core.sh` — 81 cross-shell tests (runs under both ZSH and Bash 4+)
|
|
18
|
+
- **Layer 1: Shell reserved word filtering** — words like `do`, `done`, `then`, `else`, `in`, `select`, `function` that pass `command -v` but are never standalone commands are now routed directly to the agent
|
|
19
|
+
- **Layer 2: Post-execution natural language detection** — `lacy_shell_detect_natural_language()` analyzes failed command output against 17 error patterns and checks for NL signals
|
|
20
|
+
- `LACY_SHELL_RESERVED_WORDS`, `LACY_SHELL_ERROR_PATTERNS` constants
|
|
21
|
+
- Expanded `LACY_NL_MARKERS` from 14 to ~108 common English words
|
|
22
|
+
- `NATURAL_LANGUAGE_DETECTION.md` — shared spec for NL detection (synced with lash)
|
|
23
|
+
- npm installer (`packages/lacy/index.mjs`) rewritten with `@clack/prompts` — interactive setup, tool selection, mode picker, doctor diagnostics
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Reorganized `lib/` into `lib/core/` (shared), `lib/zsh/`, `lib/bash/` with backward-compat wrappers in old `lib/*.zsh` locations
|
|
28
|
+
- `lacy_shell_classify_input()` now checks `LACY_SHELL_RESERVED_WORDS` before `command -v`
|
|
29
|
+
- `install.sh` now detects Bash vs ZSH and sources the appropriate plugin file
|
|
30
|
+
- `uninstall.sh` cleans up both `~/.lacy` and legacy `~/.lacy-shell` paths
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- **Tool invocation with special characters** — replaced `eval` with array-based `_lacy_run_tool_cmd()` so queries containing double quotes (e.g. `what does "map" do`) no longer break command parsing
|
|
35
|
+
- **Ctrl+Space history pollution** (Bash) — the injected `_lacy_mode_toggle_` command is now removed from history immediately
|
|
36
|
+
- **Config cache freshness check inverted** — `config.yaml -nt cache` was incorrectly using the stale cache; now correctly checks `! -nt` so config changes take effect
|
|
37
|
+
- **Config cache write injection** — cache values are now written with `printf %q` instead of raw single-quote interpolation
|
|
38
|
+
- **`bin/lacy setup_tool` crash on non-numeric input** — added regex validation before numeric comparison
|
|
39
|
+
- **`bin/lacy reinstall` destroys user config** — config.yaml is now backed up and restored across reinstall
|
|
40
|
+
- **`yaml_write` sed injection** — sed special characters (`\`, `|`, `&`) in values are now escaped
|
|
41
|
+
- **`commandExists` shell injection** (Node installer) — command names are validated against `/^[a-zA-Z0-9._-]+$/` before `execSync`
|
|
42
|
+
- **PROMPT_COMMAND not restored on cleanup** (Bash) — `lacy_shell_cleanup()` now restores `_LACY_ORIGINAL_PROMPT_COMMAND`
|
|
43
|
+
- **Reroute candidate fires when disabled** — moved disabled/quitting guard before reroute check in both `execute.bash` and `execute.zsh`
|
|
44
|
+
- **`python3` subprocess on every Ctrl+C** (macOS Bash) — replaced with `$(( $(date +%s) * 1000 ))` fallback for second-precision timestamps
|
|
45
|
+
- **`(( PASS++ ))` in tests** — replaced with `PASS=$(( PASS + 1 ))` to avoid exit code 1 when counter is 0
|
|
46
|
+
- Removed dead `lacy_shell_detect_mode()` function from `detection.sh`
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## [1.4.0] - 2026-02-04
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
|
|
54
|
+
- Post-execution error fallback for smart command routing — when a valid command has 3+ bare words with natural language markers (e.g. `kill the process on localhost:3000`), shell executes first; if it fails, input is automatically re-routed to the agent
|
|
55
|
+
- `lacy_shell_has_nl_markers()` — NL detection function that counts bare words (excluding flags, paths, numbers, variables) and checks for strong markers (articles, pronouns, question words, "please")
|
|
56
|
+
- First-word syntax highlighting via ZSH `region_highlight` — the first word is highlighted green for shell commands and magenta for agent queries in real-time as you type
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- `lacy_shell_precmd()` now captures `$?` as its first operation to support exit code checking for reroute candidates
|
|
61
|
+
- Exit codes >= 128 (signal-based: Ctrl+C, SIGKILL) are excluded from reroute triggering
|
|
62
|
+
- Explicit `mode shell` never triggers rerouting — only auto mode
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## [1.3.0] - 2026-02-03
|
|
67
|
+
|
|
68
|
+
### Added
|
|
69
|
+
|
|
70
|
+
- Agent preheating to reduce per-query latency
|
|
71
|
+
- Background server mode for lash and opencode — starts `lash serve` / `opencode serve` in background, routes queries via local REST API to eliminate cold-start
|
|
72
|
+
- Claude session reuse — captures `session_id` from `--output-format json` and passes `--resume` on subsequent queries for conversation continuity
|
|
73
|
+
- New `preheat` config section with `eager` (start server on plugin load) and `server_port` (default 4096) options
|
|
74
|
+
- Automatic server lifecycle management: lazy start on first query, health checks, crash recovery, cleanup on quit or tool switch
|
|
75
|
+
|
|
76
|
+
### Fixed
|
|
77
|
+
|
|
78
|
+
- Fixed JSON output parsing in zsh — replaced `echo` with `printf '%s
|
|
79
|
+
'` to prevent zsh from interpreting escape sequences (`
|
|
80
|
+
`, `\"`) in JSON strings
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## [1.1.1] - 2026-02-03
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
|
|
88
|
+
- Leading whitespace no longer misroutes input to agent (` ls -la` now correctly executes in shell)
|
|
89
|
+
- Spinner no longer permanently disables job control (`fg`/`bg` work after AI queries)
|
|
90
|
+
- Spinner no longer leaves cursor hidden after Ctrl+C interrupts
|
|
91
|
+
- `exit` no longer shadowed by alias — passes through to shell builtin in shell mode, quits lacy in auto/agent mode
|
|
92
|
+
|
|
93
|
+
### Changed
|
|
94
|
+
|
|
95
|
+
- Centralized detection logic into single `lacy_shell_classify_input()` function — indicator and execution can no longer disagree
|
|
96
|
+
- Added single-entry cache for `command -v` lookups to reduce input lag with large PATH
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## [1.1.0] - 2024-12-19 - SMART AUTO MODE 🧠
|
|
101
|
+
|
|
102
|
+
### ⚡ Major Enhancement: Intelligent Auto Mode
|
|
103
|
+
|
|
104
|
+
**Smart Command Execution**: Auto mode now executes real commands first, then falls back to AI
|
|
105
|
+
|
|
106
|
+
- **Command-First Strategy**: Real shell commands execute immediately without AI overhead
|
|
107
|
+
- **Natural Language Detection**: Obvious questions go directly to AI (no failed shell attempts)
|
|
108
|
+
- **Smart Fallback**: Unknown commands try shell first, then automatically ask AI for help
|
|
109
|
+
- **Better Performance**: Eliminates unnecessary AI calls for standard commands
|
|
110
|
+
|
|
111
|
+
### 🎯 New Smart Auto Mode Features
|
|
112
|
+
|
|
113
|
+
- `lacy_shell_execute_smart_auto()` - Core smart execution logic
|
|
114
|
+
- `lacy_shell_command_exists()` - Robust command existence checking (includes builtins)
|
|
115
|
+
- `lacy_shell_is_obvious_natural_language()` - Natural language pattern detection
|
|
116
|
+
- Smart routing indicators: 💻 for commands, 🤖 for AI, ❓ for fallback attempts
|
|
117
|
+
|
|
118
|
+
### 🧪 Testing & Validation
|
|
119
|
+
|
|
120
|
+
- `test-smart-auto.sh` - Comprehensive test suite for smart auto mode
|
|
121
|
+
- `test_smart_auto` alias for quick function testing
|
|
122
|
+
- Real-world test cases covering edge cases and common scenarios
|
|
123
|
+
|
|
124
|
+
### 📈 Performance Improvements
|
|
125
|
+
|
|
126
|
+
- ⚡ Real commands execute instantly (no AI delay)
|
|
127
|
+
- 🧠 Natural language bypasses shell attempts
|
|
128
|
+
- 🔄 Graceful fallback maintains workflow continuity
|
|
129
|
+
- 📚 Educational feedback when introducing new tools
|
|
130
|
+
|
|
131
|
+
### 🔄 Breaking Changes
|
|
132
|
+
|
|
133
|
+
- Auto mode behavior significantly improved (backwards compatible)
|
|
134
|
+
- Detection logic now optimized for performance over pattern matching
|
|
135
|
+
- Mode descriptions updated to reflect new "try shell first" behavior
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## [1.0.1] - 2024-12-19 - PRODUCTION HARDENING 🛡️
|
|
140
|
+
|
|
141
|
+
### 🚨 Critical Fixes
|
|
142
|
+
|
|
143
|
+
- **Fixed Input "Swallowing" Issue**: Resolved commands disappearing with no feedback
|
|
144
|
+
- **MCP Server Error Handling**: Added proper startup validation and error reporting
|
|
145
|
+
- **Emergency Recovery System**: Multiple escape routes when things go wrong
|
|
146
|
+
- **API Timeout Protection**: 30-second timeout prevents hanging on AI calls
|
|
147
|
+
|
|
148
|
+
### 🔧 New Emergency Commands
|
|
149
|
+
|
|
150
|
+
- `!command` - Emergency bypass prefix for direct shell execution
|
|
151
|
+
- `disable_lacy` - Disable input interception entirely (alias: `lacy_shell_disable_interception`)
|
|
152
|
+
- `enable_lacy` - Re-enable input interception (alias: `lacy_shell_enable_interception`)
|
|
153
|
+
- `mcp_check` - Verify MCP package dependencies with installation instructions
|
|
154
|
+
- `mode status` - Show detailed mode information including persistence state
|
|
155
|
+
|
|
156
|
+
### 🛡️ Reliability Improvements
|
|
157
|
+
|
|
158
|
+
- Pre-flight API key validation before agent execution
|
|
159
|
+
- Process validation for MCP servers with PID checking
|
|
160
|
+
- Clear error messages with actionable troubleshooting steps
|
|
161
|
+
- Graceful fallback to shell execution when AI services unavailable
|
|
162
|
+
- Enhanced error logging for MCP server diagnostics
|
|
163
|
+
|
|
164
|
+
### 📚 Documentation Updates
|
|
165
|
+
|
|
166
|
+
- Comprehensive troubleshooting section in README
|
|
167
|
+
- Emergency recovery procedures in all docs
|
|
168
|
+
- API documentation for new diagnostic functions
|
|
169
|
+
- Architecture docs updated with error handling patterns
|
|
170
|
+
|
|
171
|
+
### 🎯 Mode Persistence Enhancement
|
|
172
|
+
|
|
173
|
+
- **Persistent Mode Memory**: Your preferred mode is saved across shell sessions
|
|
174
|
+
- Mode state file: `~/.lacy-shell/current_mode`
|
|
175
|
+
- Enhanced `mode status` command shows current, default, and saved modes
|
|
176
|
+
- Graceful handling of invalid saved modes with fallback to default
|
|
177
|
+
|
|
178
|
+
## [1.0.0] - 2024-12-19
|
|
179
|
+
|
|
180
|
+
### 🎉 Initial Release
|
|
181
|
+
|
|
182
|
+
#### Added
|
|
183
|
+
|
|
184
|
+
- **Three intelligent modes**: Shell, Agent, and Auto
|
|
185
|
+
- **Smart mode switching** with `Ctrl+Space` keybinding
|
|
186
|
+
- **AI integration** with OpenAI and Anthropic APIs
|
|
187
|
+
- **Streaming responses** with typewriter effect
|
|
188
|
+
- **Persistent conversation history** across sessions
|
|
189
|
+
- **MCP (Model Context Protocol) support** for extensible AI capabilities
|
|
190
|
+
- **Auto-detection engine** for command vs. query classification
|
|
191
|
+
- **Visual mode indicators** in shell prompt
|
|
192
|
+
- **Comprehensive configuration system** via YAML
|
|
193
|
+
- **Zero-configuration setup** with sensible defaults
|
|
194
|
+
|
|
195
|
+
#### Features
|
|
196
|
+
|
|
197
|
+
**Core Functionality:**
|
|
198
|
+
|
|
199
|
+
- 🐚 **Shell Mode** (`$`) - Pure shell execution
|
|
200
|
+
- 🤖 **Agent Mode** (`?`) - AI-powered assistance
|
|
201
|
+
- ⚡ **Auto Mode** (`~`) - Smart routing between shell and agent
|
|
202
|
+
|
|
203
|
+
**User Interface:**
|
|
204
|
+
|
|
205
|
+
- Single-character mode indicators on prompt right side
|
|
206
|
+
- Clean, minimal visual design
|
|
207
|
+
- Real-time streaming AI responses
|
|
208
|
+
- Context-aware help system
|
|
209
|
+
|
|
210
|
+
**AI Integration:**
|
|
211
|
+
|
|
212
|
+
- Support for OpenAI GPT-4 and Anthropic Claude models
|
|
213
|
+
- Conversation memory and context preservation
|
|
214
|
+
- Streaming responses for real-time feedback
|
|
215
|
+
- MCP server integration framework
|
|
216
|
+
|
|
217
|
+
**Smart Detection:**
|
|
218
|
+
|
|
219
|
+
- Keyword-based classification (help, how, what, etc.)
|
|
220
|
+
- Command pattern recognition (git, npm, docker, etc.)
|
|
221
|
+
- Natural language query detection
|
|
222
|
+
- Customizable detection rules
|
|
223
|
+
|
|
224
|
+
**Configuration:**
|
|
225
|
+
|
|
226
|
+
- YAML-based configuration with fallback parsing
|
|
227
|
+
- API key management
|
|
228
|
+
- MCP server configuration
|
|
229
|
+
- Custom detection keywords and commands
|
|
230
|
+
|
|
231
|
+
**Keybindings:**
|
|
232
|
+
|
|
233
|
+
- `Ctrl+Space` - Primary mode toggle (universal compatibility)
|
|
234
|
+
- `Ctrl+T` - Alternative mode toggle
|
|
235
|
+
- `Ctrl+X` prefix commands for direct mode switching
|
|
236
|
+
- Compatible with Mac, VS Code, and all major terminals
|
|
237
|
+
|
|
238
|
+
**Developer Features:**
|
|
239
|
+
|
|
240
|
+
- Modular architecture with clear separation of concerns
|
|
241
|
+
- Comprehensive test suite
|
|
242
|
+
- Debug and troubleshooting commands
|
|
243
|
+
- Extension points for custom functionality
|
|
244
|
+
|
|
245
|
+
#### Technical Implementation
|
|
246
|
+
|
|
247
|
+
**Architecture:**
|
|
248
|
+
|
|
249
|
+
- ZSH plugin with widget-based input interception
|
|
250
|
+
- Modular design with 7 core components
|
|
251
|
+
- Hook-based integration with existing shell setups
|
|
252
|
+
- Thread-safe mode management
|
|
253
|
+
|
|
254
|
+
**Performance:**
|
|
255
|
+
|
|
256
|
+
- Lazy loading for fast startup
|
|
257
|
+
- Minimal memory footprint
|
|
258
|
+
- Efficient detection algorithms
|
|
259
|
+
- API response caching
|
|
260
|
+
|
|
261
|
+
**Compatibility:**
|
|
262
|
+
|
|
263
|
+
- Works with zsh, starship, oh-my-zsh
|
|
264
|
+
- MacOS, Linux, and WSL support
|
|
265
|
+
- VS Code terminal integration
|
|
266
|
+
- Compatible with existing shell configurations
|
|
267
|
+
|
|
268
|
+
**Security:**
|
|
269
|
+
|
|
270
|
+
- Local API key storage
|
|
271
|
+
- No automatic command execution from AI
|
|
272
|
+
- Sandboxed execution environment
|
|
273
|
+
- User-controlled data sharing
|
|
274
|
+
|
|
275
|
+
#### Installation & Setup
|
|
276
|
+
|
|
277
|
+
**Installation Methods:**
|
|
278
|
+
|
|
279
|
+
- Automated installer script
|
|
280
|
+
- Manual plugin installation
|
|
281
|
+
- Package manager support (planned)
|
|
282
|
+
|
|
283
|
+
**Dependencies:**
|
|
284
|
+
|
|
285
|
+
- zsh shell
|
|
286
|
+
- Python 3.x for configuration parsing
|
|
287
|
+
- curl for API communication
|
|
288
|
+
- Optional: Node.js for MCP servers
|
|
289
|
+
|
|
290
|
+
#### Documentation
|
|
291
|
+
|
|
292
|
+
**Comprehensive Documentation:**
|
|
293
|
+
|
|
294
|
+
- User guide with examples
|
|
295
|
+
- API documentation for developers
|
|
296
|
+
- Architecture deep dive
|
|
297
|
+
- Contributing guidelines
|
|
298
|
+
- Troubleshooting guide
|
|
299
|
+
|
|
300
|
+
**Example Workflows:**
|
|
301
|
+
|
|
302
|
+
- Development assistance scenarios
|
|
303
|
+
- System administration tasks
|
|
304
|
+
- Learning and exploration use cases
|
|
305
|
+
- Debugging and problem-solving
|
|
306
|
+
|
|
307
|
+
### Known Issues
|
|
308
|
+
|
|
309
|
+
- JSON escaping edge cases in complex queries (workaround available)
|
|
310
|
+
- MCP server integration is framework-only (servers not auto-started)
|
|
311
|
+
|
|
312
|
+
### Breaking Changes
|
|
313
|
+
|
|
314
|
+
None (initial release)
|
|
315
|
+
|
|
316
|
+
### Migration Guide
|
|
317
|
+
|
|
318
|
+
None (initial release)
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## [Unreleased]
|
|
323
|
+
|
|
324
|
+
### Added
|
|
325
|
+
|
|
326
|
+
- feat: add GitHub Copilot CLI as a supported backend (LAC-1144)
|
|
327
|
+
|
|
328
|
+
### Planned Features
|
|
329
|
+
|
|
330
|
+
- **Fish shell support**
|
|
331
|
+
- **Real MCP server auto-startup**
|
|
332
|
+
- **Plugin ecosystem support**
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Version History Summary
|
|
337
|
+
|
|
338
|
+
| Version | Release Date | Key Features |
|
|
339
|
+
| ------- | ------------ | -------------------------------------------------------------------------- |
|
|
340
|
+
| 1.7.0 | 2026-02-07 | Bash 4+ adapter, standalone CLI, multi-shell architecture, security fixes |
|
|
341
|
+
| 1.5.0 | 2026-02-07 | NL detection layers 1 & 2, reserved word filtering, error pattern matching |
|
|
342
|
+
| 1.4.0 | 2026-02-04 | Post-exec reroute, NL markers, first-word syntax highlighting |
|
|
343
|
+
| 1.3.0 | 2026-02-03 | Agent preheating, background server, claude session reuse |
|
|
344
|
+
| 1.1.1 | 2026-02-03 | Centralized detection, spinner/cursor fixes, whitespace handling |
|
|
345
|
+
| 1.1.0 | 2024-12-19 | Smart auto mode, command-first strategy, NL detection |
|
|
346
|
+
| 1.0.1 | 2024-12-19 | Production hardening: error handling, emergency recovery, mode persistence |
|
|
347
|
+
| 1.0.0 | 2024-12-19 | Initial release with three modes, AI integration, MCP support |
|
|
348
|
+
|
|
349
|
+
## Contributors
|
|
350
|
+
|
|
351
|
+
- **Initial Development**: Lacy Shell Team
|
|
352
|
+
- **Architecture Design**: Core development team
|
|
353
|
+
- **Documentation**: Community contributors
|
|
354
|
+
- **Testing**: Beta user community
|
|
355
|
+
|
|
356
|
+
## Acknowledgments
|
|
357
|
+
|
|
358
|
+
- Inspired by Warp Terminal's AI integration
|
|
359
|
+
- Built on the Model Context Protocol (MCP) standard
|
|
360
|
+
- Thanks to the zsh and shell scripting community
|
|
361
|
+
- OpenAI and Anthropic for AI API access
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
_For detailed technical changes, see the git commit history._
|
|
366
|
+
_For upgrade instructions, see the [README.md](README.md) file._
|