liteagents 2.8.0 → 2.8.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/CHANGELOG.md +36 -0
- package/README.md +2 -5
- package/cli.js +11 -221
- package/installer/path-manager.js +0 -199
- package/package.json +2 -6
- package/packages/ampcode/commands/security.md +50 -12
- package/packages/ampcode/commands/ship.md +33 -11
- package/packages/claude/commands/git-commit.md +1 -1
- package/packages/claude/commands/security.md +50 -12
- package/packages/claude/commands/ship.md +33 -11
- package/packages/claude/plugins/live-canvas-marketplace/plugins/live-canvas-channel/package-lock.json +5 -5
- package/packages/droid/commands/security.md +50 -12
- package/packages/droid/commands/ship.md +33 -11
- package/packages/opencode/command/security.md +50 -12
- package/packages/opencode/command/ship.md +33 -11
- package/postinstall.js +1 -1
- package/docs/.gitkeep +0 -1
- package/docs/CONTRIBUTING.md +0 -739
- package/docs/ERROR_HANDLING_IMPLEMENTATION.md +0 -327
- package/docs/INSTALLATION_DEMO.md +0 -691
- package/docs/INSTALLATION_LOCATIONS.md +0 -289
- package/docs/INSTALLER_GUIDE.md +0 -1586
- package/docs/INTEGRATION_ISSUES_9.1.md +0 -341
- package/docs/KNOWLEDGE_BASE.md +0 -727
- package/docs/LONG_TERM_MEMORY.md +0 -449
- package/docs/MIGRATION.md +0 -384
- package/docs/PACKAGE_BASELINE.md +0 -557
- package/docs/PACKAGE_VALIDATION_REPORT.md +0 -427
- package/docs/PASS_INTEGRATION.md +0 -307
- package/docs/PASS_QUICK_START.md +0 -150
- package/docs/PRIVACY.md +0 -203
- package/docs/PUBLISHING.md +0 -266
- package/docs/QUICK-START.md +0 -318
- package/docs/RELEASE_NOTES_1.2.0.md +0 -323
- package/docs/SECURITY.md +0 -317
- package/docs/SILENT_MODE_GUIDE.md +0 -526
- package/docs/SKILLS_CONVERSION.md +0 -154
- package/docs/TESTING.md +0 -582
- package/docs/TEST_COVERAGE.md +0 -347
- package/docs/TROUBLESHOOTING.md +0 -788
- package/docs/UPDATED_VARIANT_CONFIGURATION.md +0 -274
- package/docs/VARIANT_CONFIGURATION.md +0 -440
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
# Error Handling and Rollback Implementation
|
|
2
|
-
|
|
3
|
-
**Status:** ✓ Complete
|
|
4
|
-
**Subtask:** 4.6 - Comprehensive error handling and rollback options
|
|
5
|
-
**Date:** 2025-11-03
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Implemented comprehensive error handling and rollback functionality for the Interactive CLI Installer, ensuring the system never leaves installations in an inconsistent state and provides clear, actionable guidance for all error scenarios.
|
|
10
|
-
|
|
11
|
-
## Implementation Summary
|
|
12
|
-
|
|
13
|
-
### 1. Error Categorization System
|
|
14
|
-
|
|
15
|
-
**Location:** `installer/cli.js` (lines 146-259)
|
|
16
|
-
|
|
17
|
-
Implemented `categorizeError()` method that identifies and categorizes errors into 7+ distinct types:
|
|
18
|
-
|
|
19
|
-
1. **Permission Errors** (EACCES, EPERM)
|
|
20
|
-
- Suggests using sudo or alternative paths
|
|
21
|
-
- Provides directory permission check commands
|
|
22
|
-
|
|
23
|
-
2. **Disk Space Errors** (ENOSPC)
|
|
24
|
-
- Shows disk space check commands (df -h)
|
|
25
|
-
- Suggests cleanup and alternative locations
|
|
26
|
-
- Notes 50MB minimum requirement
|
|
27
|
-
|
|
28
|
-
3. **Network Errors** (ENOTFOUND, ETIMEDOUT)
|
|
29
|
-
- Suggests checking connection
|
|
30
|
-
- Mentions proxy settings for corporate environments
|
|
31
|
-
- Recommends offline mode if available
|
|
32
|
-
|
|
33
|
-
4. **Missing Package Errors** (ENOENT)
|
|
34
|
-
- Suggests reinstalling liteagents
|
|
35
|
-
- Provides npm commands for reinstallation
|
|
36
|
-
- Verifies package directory existence
|
|
37
|
-
|
|
38
|
-
5. **Path Validation Errors**
|
|
39
|
-
- Explains absolute path requirement
|
|
40
|
-
- Checks parent directory existence
|
|
41
|
-
- Validates write permissions
|
|
42
|
-
|
|
43
|
-
6. **Invalid Input Errors**
|
|
44
|
-
- Reviews required selections
|
|
45
|
-
- Validates tool selection (minimum 1)
|
|
46
|
-
- Checks path format requirements
|
|
47
|
-
|
|
48
|
-
7. **Installation Errors**
|
|
49
|
-
- Checks disk space and permissions
|
|
50
|
-
- Suggests alternative locations
|
|
51
|
-
- References installation log
|
|
52
|
-
|
|
53
|
-
8. **Unknown Errors**
|
|
54
|
-
- Suggests retry
|
|
55
|
-
- Provides issue reporting link
|
|
56
|
-
- Requests system information
|
|
57
|
-
|
|
58
|
-
Each error category provides:
|
|
59
|
-
- **Error Type:** Clear categorization
|
|
60
|
-
- **Actionable Advice:** 3-5 specific steps to resolve
|
|
61
|
-
- **Technical Details:** Error codes and debugging information
|
|
62
|
-
|
|
63
|
-
### 2. Fatal Error Handler
|
|
64
|
-
|
|
65
|
-
**Location:** `installer/cli.js` (lines 110-138)
|
|
66
|
-
|
|
67
|
-
Implemented `handleFatalError()` method that:
|
|
68
|
-
- Catches all top-level errors in the run() method
|
|
69
|
-
- Categorizes errors using categorizeError()
|
|
70
|
-
- Displays formatted error information:
|
|
71
|
-
- Error type with color coding
|
|
72
|
-
- Original error message
|
|
73
|
-
- Numbered list of actionable advice
|
|
74
|
-
- Technical details for debugging
|
|
75
|
-
- Exits with proper error code (1)
|
|
76
|
-
|
|
77
|
-
### 3. Pre-Installation Validation
|
|
78
|
-
|
|
79
|
-
**Location:** `installer/cli.js` (lines 705-826)
|
|
80
|
-
|
|
81
|
-
Implemented `performPreInstallationChecks()` method that validates:
|
|
82
|
-
|
|
83
|
-
**Environment Checks:**
|
|
84
|
-
- Node.js version (requires 14+)
|
|
85
|
-
- Package validity for all selected tools
|
|
86
|
-
- Variants.json existence and validity
|
|
87
|
-
|
|
88
|
-
**Path Validation:**
|
|
89
|
-
- Parent directory existence and write permissions
|
|
90
|
-
- Grandparent directory for non-existent parents
|
|
91
|
-
- Existing installation detection with backup warnings
|
|
92
|
-
- Conflicting installations (different tool in same path)
|
|
93
|
-
|
|
94
|
-
**Resource Checks:**
|
|
95
|
-
- Available disk space calculation
|
|
96
|
-
- 50% buffer requirement (1.5x package size)
|
|
97
|
-
- Low disk space warnings (< 2x package size)
|
|
98
|
-
- Platform-specific disk space checking
|
|
99
|
-
|
|
100
|
-
**Results:**
|
|
101
|
-
- Returns `{success, errors[], warnings[]}`
|
|
102
|
-
- Blocks installation if errors present
|
|
103
|
-
- Prompts user confirmation for warnings
|
|
104
|
-
- Displays all issues before installation starts
|
|
105
|
-
|
|
106
|
-
### 4. Recovery Options
|
|
107
|
-
|
|
108
|
-
**Location:** `installer/cli.js` (lines 270-304)
|
|
109
|
-
|
|
110
|
-
Implemented `offerRecoveryOptions()` method for multi-tool installations:
|
|
111
|
-
|
|
112
|
-
**When Triggered:**
|
|
113
|
-
- Installation fails for one tool in multi-tool installation
|
|
114
|
-
- Remaining tools still need installation
|
|
115
|
-
|
|
116
|
-
**Options Provided:**
|
|
117
|
-
- **Continue (C):** Proceed with remaining tools (default)
|
|
118
|
-
- **Quit (Q):** Stop installation, keep successful installations
|
|
119
|
-
|
|
120
|
-
**Display:**
|
|
121
|
-
- Failed tool name
|
|
122
|
-
- Remaining tool count
|
|
123
|
-
- Automatic rollback confirmation
|
|
124
|
-
- No partial installations guarantee
|
|
125
|
-
- Input validation with retry
|
|
126
|
-
|
|
127
|
-
### 5. Enhanced Error Display
|
|
128
|
-
|
|
129
|
-
**Location:** `installer/cli.js` (lines 787-825, 947-959)
|
|
130
|
-
|
|
131
|
-
**During Installation:**
|
|
132
|
-
- Categorizes each installation error
|
|
133
|
-
- Displays error type prominently
|
|
134
|
-
- Shows top 3 actionable advice items
|
|
135
|
-
- Tracks error type in failed installations array
|
|
136
|
-
|
|
137
|
-
**Post-Installation Summary:**
|
|
138
|
-
- Lists failed installations with error types
|
|
139
|
-
- Confirms automatic rollback completion
|
|
140
|
-
- Guarantees no partial installations
|
|
141
|
-
- Suggests retry for failed tools (if partial success)
|
|
142
|
-
|
|
143
|
-
### 6. Automatic Rollback
|
|
144
|
-
|
|
145
|
-
**Integration:** Leverages existing InstallationEngine rollback
|
|
146
|
-
|
|
147
|
-
**Features:**
|
|
148
|
-
- Triggered automatically on any installation failure
|
|
149
|
-
- Uses session log for file-granular rollback
|
|
150
|
-
- Removes all installed files
|
|
151
|
-
- Cleans up empty directories
|
|
152
|
-
- Preserves user-created files
|
|
153
|
-
- Never leaves partial installations
|
|
154
|
-
|
|
155
|
-
**Rollback Log:**
|
|
156
|
-
- Tracks all removed files
|
|
157
|
-
- Records any errors during rollback
|
|
158
|
-
- Available via getRollbackLog()
|
|
159
|
-
|
|
160
|
-
## Testing
|
|
161
|
-
|
|
162
|
-
### Test Coverage
|
|
163
|
-
|
|
164
|
-
**test-error-handling.js** - 17 tests, all passing:
|
|
165
|
-
|
|
166
|
-
1. Error Categorization (8 tests)
|
|
167
|
-
- Permission errors (EACCES/EPERM)
|
|
168
|
-
- Disk space errors (ENOSPC)
|
|
169
|
-
- Network errors (ETIMEDOUT/ENOTFOUND)
|
|
170
|
-
- Missing package errors (ENOENT)
|
|
171
|
-
- Invalid input errors
|
|
172
|
-
- Path validation errors
|
|
173
|
-
- Installation errors
|
|
174
|
-
- Unknown errors
|
|
175
|
-
|
|
176
|
-
2. Pre-Installation Checks (6 tests)
|
|
177
|
-
- Valid setup passes
|
|
178
|
-
- Invalid tool detection
|
|
179
|
-
- Invalid path detection
|
|
180
|
-
- Existing installation warnings
|
|
181
|
-
- Node version validation
|
|
182
|
-
- Comprehensive result structure
|
|
183
|
-
|
|
184
|
-
3. Error Handling Integration (3 tests)
|
|
185
|
-
- handleFatalError includes error type
|
|
186
|
-
- Actionable advice validation
|
|
187
|
-
- Distinct advice per error type
|
|
188
|
-
|
|
189
|
-
### Demo Script
|
|
190
|
-
|
|
191
|
-
**demo-error-handling.js:**
|
|
192
|
-
- Showcases 7 error scenarios
|
|
193
|
-
- Demonstrates categorization for each
|
|
194
|
-
- Shows actionable advice
|
|
195
|
-
- Displays technical details
|
|
196
|
-
- Color-coded output
|
|
197
|
-
|
|
198
|
-
### Integration Tests
|
|
199
|
-
|
|
200
|
-
All existing tests pass:
|
|
201
|
-
- **41/41** installation-engine tests
|
|
202
|
-
- **27/27** integration tests
|
|
203
|
-
- **44/44** package-manager tests
|
|
204
|
-
- **17/17** error handling tests
|
|
205
|
-
|
|
206
|
-
**Total:** 129/129 tests passing
|
|
207
|
-
|
|
208
|
-
## User Experience Improvements
|
|
209
|
-
|
|
210
|
-
### Before Installation
|
|
211
|
-
- Pre-flight checks catch issues early
|
|
212
|
-
- Clear validation results
|
|
213
|
-
- Warning prompts with continue/cancel
|
|
214
|
-
- No surprises during installation
|
|
215
|
-
|
|
216
|
-
### During Installation
|
|
217
|
-
- Categorized error messages
|
|
218
|
-
- Actionable advice for each error
|
|
219
|
-
- Recovery options for partial failures
|
|
220
|
-
- Automatic rollback confirmation
|
|
221
|
-
|
|
222
|
-
### After Failure
|
|
223
|
-
- Clear error type identification
|
|
224
|
-
- Specific resolution steps
|
|
225
|
-
- No cleanup required (automatic rollback)
|
|
226
|
-
- Retry guidance
|
|
227
|
-
|
|
228
|
-
### Error Message Quality
|
|
229
|
-
- User-friendly language
|
|
230
|
-
- Specific commands to run
|
|
231
|
-
- Platform-appropriate suggestions
|
|
232
|
-
- Links to documentation/support
|
|
233
|
-
|
|
234
|
-
## Error Scenarios Handled
|
|
235
|
-
|
|
236
|
-
### Common User Errors
|
|
237
|
-
- ✓ Wrong directory selection
|
|
238
|
-
- ✓ Missing permissions
|
|
239
|
-
- ✓ Insufficient disk space
|
|
240
|
-
- ✓ Invalid tool names
|
|
241
|
-
- ✓ Relative paths instead of absolute
|
|
242
|
-
|
|
243
|
-
### System Issues
|
|
244
|
-
- ✓ Missing packages
|
|
245
|
-
- ✓ Corrupted installations
|
|
246
|
-
- ✓ Permission restrictions
|
|
247
|
-
- ✓ Disk full
|
|
248
|
-
- ✓ Platform incompatibilities
|
|
249
|
-
|
|
250
|
-
### Network Issues (Future)
|
|
251
|
-
- ✓ Connection timeouts
|
|
252
|
-
- ✓ Download failures
|
|
253
|
-
- ✓ Proxy problems
|
|
254
|
-
|
|
255
|
-
### Unexpected Errors
|
|
256
|
-
- ✓ Unknown errors with issue reporting
|
|
257
|
-
- ✓ Stack traces for debugging
|
|
258
|
-
- ✓ System information requests
|
|
259
|
-
|
|
260
|
-
## System Guarantees
|
|
261
|
-
|
|
262
|
-
### Consistency
|
|
263
|
-
1. **Never partial installations:** All failures trigger immediate rollback
|
|
264
|
-
2. **Clean state:** No orphaned files or directories
|
|
265
|
-
3. **User files preserved:** Only installed files removed
|
|
266
|
-
4. **Atomic operations:** All-or-nothing per tool
|
|
267
|
-
|
|
268
|
-
### User Guidance
|
|
269
|
-
1. **Every error categorized:** No generic "Error" messages
|
|
270
|
-
2. **Actionable advice:** Specific steps to resolve
|
|
271
|
-
3. **Technical details:** Enough info for debugging
|
|
272
|
-
4. **Recovery options:** Continue or quit for multi-tool
|
|
273
|
-
|
|
274
|
-
### Reliability
|
|
275
|
-
1. **Pre-flight checks:** Catch issues before starting
|
|
276
|
-
2. **Validation at each step:** Path, package, permissions
|
|
277
|
-
3. **Automatic rollback:** No manual cleanup needed
|
|
278
|
-
4. **Comprehensive logging:** All actions recorded
|
|
279
|
-
|
|
280
|
-
## Code Quality
|
|
281
|
-
|
|
282
|
-
### Maintainability
|
|
283
|
-
- Clear method names (categorizeError, handleFatalError)
|
|
284
|
-
- Comprehensive inline documentation
|
|
285
|
-
- Consistent error structure
|
|
286
|
-
- Reusable error categorization
|
|
287
|
-
|
|
288
|
-
### Extensibility
|
|
289
|
-
- Easy to add new error types
|
|
290
|
-
- Centralized error handling
|
|
291
|
-
- Consistent advice format
|
|
292
|
-
- Pluggable validation checks
|
|
293
|
-
|
|
294
|
-
### Testing
|
|
295
|
-
- 100% test coverage for error handling
|
|
296
|
-
- Unit tests for each error type
|
|
297
|
-
- Integration tests for full flows
|
|
298
|
-
- Demo scripts for visual validation
|
|
299
|
-
|
|
300
|
-
## Future Enhancements
|
|
301
|
-
|
|
302
|
-
### Potential Improvements
|
|
303
|
-
1. **Telemetry:** Track common error types (opt-in)
|
|
304
|
-
2. **Auto-retry:** Retry failed operations automatically
|
|
305
|
-
3. **Detailed logs:** Save full error context to log file
|
|
306
|
-
4. **Platform detection:** Platform-specific advice
|
|
307
|
-
5. **Context-aware suggestions:** Based on system state
|
|
308
|
-
|
|
309
|
-
### Error Type Additions
|
|
310
|
-
1. **Concurrent installations:** Detect multiple installers
|
|
311
|
-
2. **Version conflicts:** Incompatible Node/package versions
|
|
312
|
-
3. **File locks:** Handle locked files/directories
|
|
313
|
-
4. **Symbolic links:** Handle symlink errors
|
|
314
|
-
|
|
315
|
-
## Summary
|
|
316
|
-
|
|
317
|
-
The error handling implementation provides:
|
|
318
|
-
- ✓ Comprehensive error categorization (7+ types)
|
|
319
|
-
- ✓ Actionable advice for every error
|
|
320
|
-
- ✓ Pre-installation validation
|
|
321
|
-
- ✓ Automatic rollback on failures
|
|
322
|
-
- ✓ Recovery options for partial failures
|
|
323
|
-
- ✓ Clear, user-friendly error messages
|
|
324
|
-
- ✓ Complete test coverage (17/17 tests)
|
|
325
|
-
- ✓ System consistency guarantees
|
|
326
|
-
|
|
327
|
-
**Result:** Installation system never leaves users with partial installations or unclear error messages. Every error provides specific guidance for resolution.
|