@defai.digital/automatosx 5.0.1
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 +2877 -0
- package/CONTRIBUTING.md +357 -0
- package/FAQ.md +604 -0
- package/FIXES.md +277 -0
- package/LICENSE +190 -0
- package/README.md +603 -0
- package/REVIEW-REPORT.md +278 -0
- package/TROUBLESHOOTING.md +612 -0
- package/automatosx.config.json +219 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +11806 -0
- package/dist/index.js.map +1 -0
- package/docs/README.md +227 -0
- package/docs/guide/core-concepts.md +568 -0
- package/docs/guide/installation.md +406 -0
- package/docs/guide/introduction.md +199 -0
- package/docs/guide/quick-start.md +387 -0
- package/docs/index.md +132 -0
- package/docs/reference/cli-commands.md +894 -0
- package/docs/tutorials/first-agent.md +691 -0
- package/docs/tutorials/memory-management.md +785 -0
- package/examples/AGENTS_INFO.md +293 -0
- package/examples/README.md +434 -0
- package/examples/abilities/best-practices.md +102 -0
- package/examples/abilities/code-generation.md +1035 -0
- package/examples/abilities/code-review.md +42 -0
- package/examples/abilities/content-creation.md +97 -0
- package/examples/abilities/debugging.md +43 -0
- package/examples/abilities/documentation.md +54 -0
- package/examples/abilities/error-analysis.md +107 -0
- package/examples/abilities/general-assistance.md +26 -0
- package/examples/abilities/our-architecture-decisions.md +242 -0
- package/examples/abilities/our-code-review-checklist.md +217 -0
- package/examples/abilities/our-coding-standards.md +389 -0
- package/examples/abilities/our-project-structure.md +502 -0
- package/examples/abilities/performance-analysis.md +56 -0
- package/examples/abilities/problem-solving.md +50 -0
- package/examples/abilities/refactoring.md +49 -0
- package/examples/abilities/security-audit.md +65 -0
- package/examples/abilities/task-planning.md +65 -0
- package/examples/abilities/technical-writing.md +77 -0
- package/examples/abilities/testing.md +47 -0
- package/examples/abilities/troubleshooting.md +80 -0
- package/examples/agents/assistant.yaml +45 -0
- package/examples/agents/backend.yaml +60 -0
- package/examples/agents/ceo.yaml +47 -0
- package/examples/agents/coder.yaml +388 -0
- package/examples/agents/cto.yaml +47 -0
- package/examples/agents/data.yaml +47 -0
- package/examples/agents/debugger.yaml +59 -0
- package/examples/agents/design.yaml +46 -0
- package/examples/agents/devops.yaml +47 -0
- package/examples/agents/frontend.yaml +61 -0
- package/examples/agents/product.yaml +47 -0
- package/examples/agents/quality.yaml +47 -0
- package/examples/agents/reviewer.yaml +49 -0
- package/examples/agents/security.yaml +47 -0
- package/examples/agents/writer.yaml +66 -0
- package/examples/claude/commands/ax:agent.md +37 -0
- package/examples/claude/commands/ax:clear.md +22 -0
- package/examples/claude/commands/ax:init.md +25 -0
- package/examples/claude/commands/ax:list.md +19 -0
- package/examples/claude/commands/ax:memory.md +25 -0
- package/examples/claude/commands/ax:status.md +24 -0
- package/examples/claude/commands/ax:update.md +28 -0
- package/examples/claude/mcp/automatosx.json +74 -0
- package/examples/templates/analyst.yaml +60 -0
- package/examples/templates/basic-agent.yaml +28 -0
- package/examples/templates/designer.yaml +69 -0
- package/examples/templates/developer.yaml +60 -0
- package/examples/templates/qa-specialist.yaml +71 -0
- package/examples/use-cases/01-web-app-development.md +374 -0
- package/package.json +86 -0
- package/scripts/check-release.js +128 -0
- package/scripts/real-provider-test.sh +357 -0
- package/scripts/smoke-test.sh +286 -0
- package/tsup.config.ts +16 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,2877 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to AutomatosX 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
|
+
## [5.0.1] - 2025-10-09
|
|
9
|
+
|
|
10
|
+
### 🐛 Bug Fixes
|
|
11
|
+
|
|
12
|
+
#### Critical: Provider Timeout Configuration
|
|
13
|
+
**Problem**: Provider timeout was set to 5 minutes while agent timeout was 15 minutes, causing complex tasks to fail prematurely with retry loops.
|
|
14
|
+
|
|
15
|
+
**Fixed**:
|
|
16
|
+
- ✅ Updated all provider timeouts from 5 min → 15 min in `automatosx.config.json`
|
|
17
|
+
- ✅ Updated DEFAULT_CONFIG in `src/types/config.ts` to match (affects new installations)
|
|
18
|
+
- ✅ All timeout layers now consistent: Bash tool, Provider, Agent = 15 minutes
|
|
19
|
+
|
|
20
|
+
**Impact**: Complex agent tasks now complete reliably without timeout errors.
|
|
21
|
+
|
|
22
|
+
**Files Changed**:
|
|
23
|
+
- `automatosx.config.json`: Provider timeout settings
|
|
24
|
+
- `src/types/config.ts`: DEFAULT_CONFIG provider timeouts
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
#### Critical: Delegation Parser False Positives
|
|
29
|
+
**Problem**: Delegation parser incorrectly parsed documentation examples and quoted text as actual delegation requests, causing unwanted agent delegation cycles.
|
|
30
|
+
|
|
31
|
+
**Example of False Positive**:
|
|
32
|
+
```
|
|
33
|
+
Response containing: '1. "@frontend Create login UI"' (documentation example)
|
|
34
|
+
→ Incorrectly parsed as actual delegation
|
|
35
|
+
→ Caused delegation cycle errors
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Fixed**:
|
|
39
|
+
- ✅ Added `isInQuotedText()` method to skip quoted delegation patterns
|
|
40
|
+
- ✅ Added `isDocumentationExample()` method to detect and skip:
|
|
41
|
+
- Documentation markers: "Example:", "Supported syntaxes:", "範例:"
|
|
42
|
+
- Numbered lists with examples: `1. "...", 2. "..."`
|
|
43
|
+
- Test code patterns: `it(`, `test(`, `describe(`, `async () =>`
|
|
44
|
+
- Comment markers: `//`, `#`
|
|
45
|
+
- ✅ Expanded detection context from 300 to 500 characters / 5 to 10 lines
|
|
46
|
+
|
|
47
|
+
**Impact**: Zero false delegation parses - agents no longer misinterpret documentation.
|
|
48
|
+
|
|
49
|
+
**Files Changed**:
|
|
50
|
+
- `src/agents/delegation-parser.ts`: Added 2 new filtering methods (+95 lines)
|
|
51
|
+
- `tests/unit/delegation-parser.test.ts`: Added 5 comprehensive tests
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
#### Important: FTS5 Special Character Handling
|
|
56
|
+
**Problem**: FTS5 full-text search failed with syntax errors when queries contained special characters like `.`, `%`, `()`, etc.
|
|
57
|
+
|
|
58
|
+
**Example Error**:
|
|
59
|
+
```
|
|
60
|
+
[WARN] Failed to inject memory
|
|
61
|
+
{ "error": "Search failed: fts5: syntax error near \".\"" }
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Fixed**:
|
|
65
|
+
- ✅ Enhanced FTS5 query sanitization from 3 → 15+ special characters
|
|
66
|
+
- ✅ Added sanitization for: `. : " * ( ) [ ] { } ^ $ + | \ % < > ~ -`
|
|
67
|
+
- ✅ Added boolean operator removal: `AND OR NOT`
|
|
68
|
+
- ✅ Added empty query handling after sanitization
|
|
69
|
+
- ✅ Improved error handling and logging
|
|
70
|
+
|
|
71
|
+
**Impact**: Memory search now works reliably with all types of query text.
|
|
72
|
+
|
|
73
|
+
**Files Changed**:
|
|
74
|
+
- `src/core/memory-manager.ts`: Enhanced FTS5 query sanitization (+8 lines)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### ✅ Quality Improvements
|
|
79
|
+
|
|
80
|
+
**Testing**:
|
|
81
|
+
- ✅ Added 5 new tests for delegation filtering (total: 1050 tests, 100% pass rate)
|
|
82
|
+
- ✅ All existing tests pass with no regressions
|
|
83
|
+
- ✅ Test coverage for new methods: 100%
|
|
84
|
+
|
|
85
|
+
**Code Quality**:
|
|
86
|
+
- ✅ 0 TypeScript errors
|
|
87
|
+
- ✅ 0 security vulnerabilities
|
|
88
|
+
- ✅ Full JSDoc documentation for new methods
|
|
89
|
+
- ✅ Backward compatible with v5.0.0
|
|
90
|
+
|
|
91
|
+
**Performance**:
|
|
92
|
+
- ✅ Delegation parsing: +1-2ms (negligible for reliability gain)
|
|
93
|
+
- ✅ FTS5 search: +0.5ms (negligible for stability gain)
|
|
94
|
+
- ✅ Bundle size: 380.41 KB (+0.14 KB)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 📊 Statistics
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Tests Passing: 1050/1050 (100%)
|
|
102
|
+
TypeScript Errors: 0
|
|
103
|
+
Bundle Size: 380.41 KB
|
|
104
|
+
Build Time: ~850ms
|
|
105
|
+
Code Coverage: ~85%
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 🔄 Migration from v5.0.0
|
|
111
|
+
|
|
112
|
+
**No Breaking Changes** - v5.0.1 is a drop-in replacement for v5.0.0.
|
|
113
|
+
|
|
114
|
+
**Recommended Actions**:
|
|
115
|
+
1. Update to v5.0.1 if experiencing timeout issues with complex tasks
|
|
116
|
+
2. Update to v5.0.1 if seeing unwanted delegation cycles
|
|
117
|
+
3. Update to v5.0.1 if encountering FTS5 search errors
|
|
118
|
+
|
|
119
|
+
**Installation**:
|
|
120
|
+
```bash
|
|
121
|
+
npm install @defai.digital/automatosx@5.0.1
|
|
122
|
+
# or
|
|
123
|
+
npm update @defai.digital/automatosx
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## [5.0.0] - 2025-10-09
|
|
129
|
+
|
|
130
|
+
### 🎉 Major Features
|
|
131
|
+
|
|
132
|
+
#### Agent Template System
|
|
133
|
+
|
|
134
|
+
AutomatosX v5.0 introduces a comprehensive agent template system that dramatically simplifies agent creation.
|
|
135
|
+
|
|
136
|
+
**New Features**:
|
|
137
|
+
- ✅ **Template Engine**: Variable substitution system with default values
|
|
138
|
+
- ✅ **5 Pre-built Templates**: Ready-to-use agent templates for common roles
|
|
139
|
+
- ✅ **`ax agent` Command Suite**: Complete CLI toolset for agent management
|
|
140
|
+
- ✅ **Automatic Installation**: Templates installed automatically via `ax init`
|
|
141
|
+
|
|
142
|
+
**Templates Included**:
|
|
143
|
+
1. `basic-agent` - Minimal agent configuration (core team)
|
|
144
|
+
2. `developer` - Software development specialist (engineering team)
|
|
145
|
+
3. `analyst` - Business analysis expert (business team)
|
|
146
|
+
4. `designer` - UI/UX design specialist (design team)
|
|
147
|
+
5. `qa-specialist` - Quality assurance expert (core team)
|
|
148
|
+
|
|
149
|
+
#### New CLI Commands
|
|
150
|
+
|
|
151
|
+
**`ax agent` Command Suite** (5 subcommands):
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# List available templates
|
|
155
|
+
ax agent templates
|
|
156
|
+
|
|
157
|
+
# Create agent from template (interactive)
|
|
158
|
+
ax agent create <name> --template <template> --interactive
|
|
159
|
+
|
|
160
|
+
# Create agent (one-line)
|
|
161
|
+
ax agent create backend \
|
|
162
|
+
--template developer \
|
|
163
|
+
--display-name "Bob" \
|
|
164
|
+
--role "Senior Backend Engineer" \
|
|
165
|
+
--team engineering
|
|
166
|
+
|
|
167
|
+
# List all agents
|
|
168
|
+
ax agent list
|
|
169
|
+
|
|
170
|
+
# List agents by team
|
|
171
|
+
ax agent list --by-team engineering
|
|
172
|
+
|
|
173
|
+
# Show agent details
|
|
174
|
+
ax agent show <name>
|
|
175
|
+
|
|
176
|
+
# Remove agent
|
|
177
|
+
ax agent remove <name>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Configuration System Enhancements
|
|
181
|
+
|
|
182
|
+
**Removed All Hardcoded Values**:
|
|
183
|
+
- ✅ Retry configuration now fully configurable
|
|
184
|
+
- ✅ Workspace limits moved to config
|
|
185
|
+
- ✅ Timeout values moved to config
|
|
186
|
+
- ✅ All execution parameters configurable
|
|
187
|
+
|
|
188
|
+
**Benefits**:
|
|
189
|
+
- More flexible deployment options
|
|
190
|
+
- Easier tuning for different workloads
|
|
191
|
+
- Better testability
|
|
192
|
+
|
|
193
|
+
### 📦 Technical Details
|
|
194
|
+
|
|
195
|
+
**Code Statistics**:
|
|
196
|
+
- Template Engine: 210 lines, 21 comprehensive tests
|
|
197
|
+
- Agent Commands: 751 lines across 5 command files
|
|
198
|
+
- Templates: 5 YAML templates (~8 KB total)
|
|
199
|
+
- Tests: 1,013 tests passing (100%)
|
|
200
|
+
|
|
201
|
+
**Bundle Size**:
|
|
202
|
+
- Current: 377 KB
|
|
203
|
+
- Growth: +25 KB (+7.1% from v4.11.0)
|
|
204
|
+
- Reason: New CLI commands + template engine
|
|
205
|
+
|
|
206
|
+
### ✅ Quality Assurance
|
|
207
|
+
|
|
208
|
+
- ✅ 1,013 tests passing (100%)
|
|
209
|
+
- ✅ 0 TypeScript errors
|
|
210
|
+
- ✅ 0 security vulnerabilities
|
|
211
|
+
- ✅ ~85% code coverage
|
|
212
|
+
- ✅ Ultrathink review score: A+ (96/100)
|
|
213
|
+
|
|
214
|
+
### ⬆️ Upgrade Guide
|
|
215
|
+
|
|
216
|
+
**No Breaking Changes**: v5.0.0 is fully backward compatible with v4.x.
|
|
217
|
+
|
|
218
|
+
**New Installation**:
|
|
219
|
+
```bash
|
|
220
|
+
npm install -g @defai.digital/automatosx@5.0.0
|
|
221
|
+
ax init # Templates automatically installed
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Existing Projects**:
|
|
225
|
+
```bash
|
|
226
|
+
npm update -g @defai.digital/automatosx
|
|
227
|
+
ax agent templates # View available templates
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### 🚀 What's Next
|
|
231
|
+
|
|
232
|
+
**v5.0.1** (planned patch):
|
|
233
|
+
- Template depth limit (prevent stack overflow)
|
|
234
|
+
- YAML template validation (enhanced type safety)
|
|
235
|
+
|
|
236
|
+
**v5.1.0** (planned minor):
|
|
237
|
+
- Agent Registry with auto-discovery
|
|
238
|
+
- Config management enhancements (`ax config diff`)
|
|
239
|
+
- Additional agent templates
|
|
240
|
+
|
|
241
|
+
### 📚 Documentation
|
|
242
|
+
|
|
243
|
+
- Updated README with `ax agent` examples
|
|
244
|
+
- New CLI command reference in `/tmp/CLI-COMMAND-REFERENCE.md`
|
|
245
|
+
- Template system documentation in phase 2 reports
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## [4.11.0] - 2025-10-09
|
|
250
|
+
|
|
251
|
+
### 🎯 Major Changes
|
|
252
|
+
|
|
253
|
+
#### FTS5 Full-Text Search (Removed Vector Search)
|
|
254
|
+
|
|
255
|
+
**Revolutionary simplification**: Memory system now uses SQLite FTS5 full-text search exclusively, eliminating OpenAI embedding dependency and associated costs.
|
|
256
|
+
|
|
257
|
+
**What Changed**:
|
|
258
|
+
- ✅ **No External API Dependency**: Removed OpenAI embedding requirement
|
|
259
|
+
- ✅ **Zero Embedding Costs**: No API calls for generating embeddings
|
|
260
|
+
- ✅ **Simplified Architecture**: Pure SQLite FTS5 for text search
|
|
261
|
+
- ✅ **Same Performance**: Maintains < 1ms search performance
|
|
262
|
+
- ✅ **Better Privacy**: All data stays local (no cloud API calls)
|
|
263
|
+
|
|
264
|
+
### 🔧 Breaking Changes
|
|
265
|
+
|
|
266
|
+
#### Memory System
|
|
267
|
+
|
|
268
|
+
- **Removed**: OpenAI embedding provider dependency
|
|
269
|
+
- **Removed**: `embeddingDimensions` configuration option
|
|
270
|
+
- **Renamed**: `MemoryManagerVec` class → `MemoryManager`
|
|
271
|
+
- **Renamed**: `memory-manager-vec.ts` → `memory-manager.ts`
|
|
272
|
+
- **Changed**: Memory search now requires `text` parameter (FTS5 query)
|
|
273
|
+
- **Removed**: Vector-based similarity search
|
|
274
|
+
|
|
275
|
+
**Migration Guide**:
|
|
276
|
+
```typescript
|
|
277
|
+
// Before (v4.10.0):
|
|
278
|
+
const results = await memory.search({
|
|
279
|
+
vector: embedding, // Required embedding
|
|
280
|
+
limit: 5
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// After (v4.11.0):
|
|
284
|
+
const results = await memory.search({
|
|
285
|
+
text: 'search query', // Direct text query
|
|
286
|
+
limit: 5
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
#### CLI Changes
|
|
291
|
+
|
|
292
|
+
- **Memory search**: Now requires text query (no vector file support)
|
|
293
|
+
```bash
|
|
294
|
+
# Before: ax memory search --vector-file embeddings.json
|
|
295
|
+
# After: ax memory search "your query text"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
#### Configuration Changes
|
|
299
|
+
|
|
300
|
+
- **Removed**: `memory.embeddingDimensions` from config
|
|
301
|
+
```json
|
|
302
|
+
// Before:
|
|
303
|
+
{
|
|
304
|
+
"memory": {
|
|
305
|
+
"maxEntries": 10000,
|
|
306
|
+
"embeddingDimensions": 1536
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// After:
|
|
311
|
+
{
|
|
312
|
+
"memory": {
|
|
313
|
+
"maxEntries": 10000
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### ✨ Improvements
|
|
319
|
+
|
|
320
|
+
- **Cost Reduction**: Eliminated embedding API costs
|
|
321
|
+
- **Privacy**: All memory operations stay local
|
|
322
|
+
- **Simplicity**: Removed embedding provider setup
|
|
323
|
+
- **Reliability**: No external API dependencies
|
|
324
|
+
- **Performance**: Maintained < 1ms search speed
|
|
325
|
+
|
|
326
|
+
### 📝 Documentation
|
|
327
|
+
|
|
328
|
+
- Updated README.md to reflect FTS5-only architecture
|
|
329
|
+
- Removed vector search references
|
|
330
|
+
- Removed specific pricing amounts (cost savings noted generically)
|
|
331
|
+
- Updated example configurations
|
|
332
|
+
|
|
333
|
+
### 🔄 Migration Notes
|
|
334
|
+
|
|
335
|
+
**No Data Loss**: Existing memory databases will continue to work. The FTS5 tables are already present and functional.
|
|
336
|
+
|
|
337
|
+
**Action Required**:
|
|
338
|
+
1. Update code using `MemoryManagerVec` → `MemoryManager`
|
|
339
|
+
2. Change search calls to use `text` parameter instead of `vector`
|
|
340
|
+
3. Remove `embeddingDimensions` from config files
|
|
341
|
+
4. Update CLI scripts using `--vector-file` flag
|
|
342
|
+
|
|
343
|
+
## [4.10.0] - 2025-10-08
|
|
344
|
+
|
|
345
|
+
### 🎯 Major Features
|
|
346
|
+
|
|
347
|
+
#### Team-Based Configuration System
|
|
348
|
+
|
|
349
|
+
**Revolutionary change**: Agents now inherit configuration from teams, eliminating configuration duplication across 17 agents.
|
|
350
|
+
|
|
351
|
+
**New Architecture**:
|
|
352
|
+
- **4 Teams**: Core, Engineering, Business, Design
|
|
353
|
+
- **Centralized Provider Config**: Each team defines provider fallback chain
|
|
354
|
+
- **Shared Abilities**: Team-wide abilities automatically inherited
|
|
355
|
+
- **Clean Agent Profiles**: No need to specify provider/model/temperature in agents
|
|
356
|
+
|
|
357
|
+
**Key Benefits**:
|
|
358
|
+
- ✅ **Zero Duplication**: Provider config defined once per team (not per agent)
|
|
359
|
+
- ✅ **Easy Updates**: Change provider for entire team at once
|
|
360
|
+
- ✅ **Clear Organization**: Explicit team structure (17 agents → 4 teams)
|
|
361
|
+
- ✅ **Backward Compatible**: Old agent configs still work (deprecated)
|
|
362
|
+
|
|
363
|
+
### ✨ New Features
|
|
364
|
+
|
|
365
|
+
#### TeamManager (NEW)
|
|
366
|
+
|
|
367
|
+
- **Location**: `src/core/team-manager.ts`
|
|
368
|
+
- **Purpose**: Load and validate team configurations from `.automatosx/teams/*.yaml`
|
|
369
|
+
- **Features**:
|
|
370
|
+
- TTL-based caching for performance
|
|
371
|
+
- YAML validation and error handling
|
|
372
|
+
- Team discovery and listing
|
|
373
|
+
- Graceful error recovery
|
|
374
|
+
|
|
375
|
+
#### Team Configuration Files
|
|
376
|
+
|
|
377
|
+
Created 4 team configurations in `.automatosx/teams/`:
|
|
378
|
+
|
|
379
|
+
1. **core.yaml**: Quality assurance specialists
|
|
380
|
+
- Primary: claude
|
|
381
|
+
- Fallback: [claude, gemini, codex]
|
|
382
|
+
- Agents: charlie (code reviewer), tester, assistant
|
|
383
|
+
|
|
384
|
+
2. **engineering.yaml**: Software development teams
|
|
385
|
+
- Primary: codex
|
|
386
|
+
- Fallback: [codex, gemini, claude]
|
|
387
|
+
- Agents: frontend, backend, devops, fullstack, database, architect, api-designer
|
|
388
|
+
|
|
389
|
+
3. **business.yaml**: Business and product teams
|
|
390
|
+
- Primary: gemini
|
|
391
|
+
- Fallback: [gemini, codex, claude]
|
|
392
|
+
- Agents: planner, pm, researcher
|
|
393
|
+
|
|
394
|
+
4. **design.yaml**: Design and content teams
|
|
395
|
+
- Primary: gemini
|
|
396
|
+
- Fallback: [gemini, claude, codex]
|
|
397
|
+
- Agents: designer, writer, ux-researcher, content-strategist
|
|
398
|
+
|
|
399
|
+
#### Agent Profile Enhancement
|
|
400
|
+
|
|
401
|
+
- **Added**: `team?: string` field to AgentProfile
|
|
402
|
+
- **Deprecated**: `provider`, `fallbackProvider`, `model`, `temperature`, `maxTokens`
|
|
403
|
+
- **Migration**: All 17 agents migrated to team-based configuration
|
|
404
|
+
|
|
405
|
+
#### Team-Based Provider Selection
|
|
406
|
+
|
|
407
|
+
- **Location**: `src/agents/context-manager.ts`
|
|
408
|
+
- **New Method**: `selectProviderForAgent(agent, options)`
|
|
409
|
+
- **Priority Order**:
|
|
410
|
+
1. CLI option (highest): `ax run agent "task" --provider gemini`
|
|
411
|
+
2. Team configuration: From `.automatosx/teams/<team>.yaml`
|
|
412
|
+
3. Agent configuration (deprecated): From agent's `provider` field
|
|
413
|
+
4. Router fallback (lowest): Global provider routing
|
|
414
|
+
|
|
415
|
+
#### Ability Inheritance
|
|
416
|
+
|
|
417
|
+
- **Automatic Merging**: Team sharedAbilities + agent abilities
|
|
418
|
+
- **Example**:
|
|
419
|
+
```yaml
|
|
420
|
+
# Team: [our-coding-standards, code-generation]
|
|
421
|
+
# Agent: [backend-development, api-design]
|
|
422
|
+
# Final: [our-coding-standards, code-generation, backend-development, api-design]
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### 🔧 Improvements
|
|
426
|
+
|
|
427
|
+
#### ProfileLoader Enhancement
|
|
428
|
+
|
|
429
|
+
- **Modified**: Constructor accepts `teamManager?: TeamManager`
|
|
430
|
+
- **Changed**: `buildProfile()` now async to support team loading
|
|
431
|
+
- **Added**: `getTeamConfig(agentName)` method for ContextManager
|
|
432
|
+
- **Feature**: Automatic ability merging from team config
|
|
433
|
+
|
|
434
|
+
#### OpenAI Provider CLI Fix
|
|
435
|
+
|
|
436
|
+
- **Fixed**: Codex CLI parameter format
|
|
437
|
+
- **Before**: `codex chat -p [PROMPT] -t [TEMP]` (broken)
|
|
438
|
+
- **After**: `codex exec -c temperature=X [PROMPT]` (correct)
|
|
439
|
+
- **Issue**: Codex CLI doesn't support `-t` flag, needs `-c` config override format
|
|
440
|
+
|
|
441
|
+
### 🐛 Critical Bug Fixes
|
|
442
|
+
|
|
443
|
+
#### TeamManager Initialization (CRITICAL)
|
|
444
|
+
|
|
445
|
+
- **Issue**: TeamManager was never initialized in `src/cli/commands/run.ts`
|
|
446
|
+
- **Impact**: Entire team system was non-functional despite being implemented
|
|
447
|
+
- **Fix**: Added TeamManager initialization before ProfileLoader creation
|
|
448
|
+
- **Discovery**: Found during deep code review
|
|
449
|
+
- **Verification**: Tested with `--debug` flag, confirmed team config loading
|
|
450
|
+
|
|
451
|
+
#### TypeScript Type Error
|
|
452
|
+
|
|
453
|
+
- **Issue**: `Array.filter(Boolean)` doesn't narrow type from `(string | undefined)[]`
|
|
454
|
+
- **Fix**: Used type predicate: `.filter((p): p is string => Boolean(p))`
|
|
455
|
+
- **Location**: `src/agents/context-manager.ts:321`
|
|
456
|
+
|
|
457
|
+
#### Test Version Mismatch
|
|
458
|
+
|
|
459
|
+
- **Fixed**: Updated 5 test expectations from '4.7.1' to '4.9.8'
|
|
460
|
+
- **Location**: `tests/unit/cli-index.test.ts`
|
|
461
|
+
|
|
462
|
+
### 📚 Documentation
|
|
463
|
+
|
|
464
|
+
#### Comprehensive Documentation Updates
|
|
465
|
+
|
|
466
|
+
- **CLAUDE.md**:
|
|
467
|
+
- Updated version to v4.10.0
|
|
468
|
+
- Added TeamManager to Core Components
|
|
469
|
+
- Updated Agent System with team inheritance details
|
|
470
|
+
- Added complete "Team System" section with examples
|
|
471
|
+
- Updated Agent Profiles section with team-based config examples
|
|
472
|
+
|
|
473
|
+
- **README.md**:
|
|
474
|
+
- Added v4.10.0 features in "What's New" section
|
|
475
|
+
- Updated Key Capabilities with team-based examples
|
|
476
|
+
- Updated Real-World Examples
|
|
477
|
+
- Updated version table (v4.7.1 → v4.10.0)
|
|
478
|
+
|
|
479
|
+
- **tmp/CLAUDE.md**:
|
|
480
|
+
- Updated with team system architecture details
|
|
481
|
+
|
|
482
|
+
#### Migration Tools
|
|
483
|
+
|
|
484
|
+
- **Created**: `tmp/migrate-agents.ts` - Automated migration script
|
|
485
|
+
- **Results**: Successfully migrated all 17 agents
|
|
486
|
+
- **Changes**:
|
|
487
|
+
- Added `team` field
|
|
488
|
+
- Removed deprecated fields: `provider`, `fallbackProvider`, `model`, `temperature`, `maxTokens`
|
|
489
|
+
|
|
490
|
+
### 🔨 Technical Changes
|
|
491
|
+
|
|
492
|
+
#### New Files
|
|
493
|
+
|
|
494
|
+
- `src/types/team.ts` - TeamConfig type definitions
|
|
495
|
+
- `src/core/team-manager.ts` - Team configuration management
|
|
496
|
+
- `.automatosx/teams/core.yaml` - Core team configuration
|
|
497
|
+
- `.automatosx/teams/engineering.yaml` - Engineering team configuration
|
|
498
|
+
- `.automatosx/teams/business.yaml` - Business team configuration
|
|
499
|
+
- `.automatosx/teams/design.yaml` - Design team configuration
|
|
500
|
+
- `tmp/migrate-agents.ts` - Agent migration automation script
|
|
501
|
+
|
|
502
|
+
#### Modified Files
|
|
503
|
+
|
|
504
|
+
- `src/types/agent.ts` - Added `team` field, deprecated old fields
|
|
505
|
+
- `src/agents/profile-loader.ts` - Team inheritance implementation
|
|
506
|
+
- `src/agents/context-manager.ts` - Team-based provider selection
|
|
507
|
+
- `src/providers/openai-provider.ts` - Fixed codex CLI parameters
|
|
508
|
+
- `src/cli/commands/run.ts` - Added TeamManager initialization
|
|
509
|
+
- All 17 agent YAML files - Migrated to team-based configuration
|
|
510
|
+
- `tests/unit/cli-index.test.ts` - Updated version expectations
|
|
511
|
+
|
|
512
|
+
### ✅ Testing
|
|
513
|
+
|
|
514
|
+
#### All Tests Passing
|
|
515
|
+
|
|
516
|
+
- **Total**: 928 unit tests passing (100%)
|
|
517
|
+
- **TypeScript**: Strict mode compilation successful
|
|
518
|
+
- **Functional**: Team config loading verified with `--debug`
|
|
519
|
+
- **Integration**: All CLI commands working correctly
|
|
520
|
+
|
|
521
|
+
### 🔄 Breaking Changes
|
|
522
|
+
|
|
523
|
+
**None** - All changes are backward compatible. Old agent configurations (with `provider`, `temperature`, etc.) still work but are deprecated.
|
|
524
|
+
|
|
525
|
+
### 📦 Migration Guide
|
|
526
|
+
|
|
527
|
+
**From v4.9.x to v4.10.0**:
|
|
528
|
+
|
|
529
|
+
1. **Optional**: Assign agents to teams (recommended but not required)
|
|
530
|
+
```yaml
|
|
531
|
+
# Add to existing agent config:
|
|
532
|
+
team: engineering
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
2. **Optional**: Remove deprecated fields (they still work if kept)
|
|
536
|
+
```yaml
|
|
537
|
+
# Can remove these:
|
|
538
|
+
# provider: codex
|
|
539
|
+
# fallbackProvider: gemini
|
|
540
|
+
# temperature: 0.7
|
|
541
|
+
# maxTokens: 4096
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
3. **Optional**: Customize team configurations in `.automatosx/teams/*.yaml`
|
|
545
|
+
|
|
546
|
+
**No action required** - Everything continues to work with old configurations!
|
|
547
|
+
|
|
548
|
+
### 🎉 Summary
|
|
549
|
+
|
|
550
|
+
v4.10.0 introduces a revolutionary team-based configuration system that:
|
|
551
|
+
- ✅ Eliminates configuration duplication (17 agents → 4 teams)
|
|
552
|
+
- ✅ Simplifies agent management (no provider config per agent)
|
|
553
|
+
- ✅ Improves maintainability (change provider for entire team at once)
|
|
554
|
+
- ✅ Maintains backward compatibility (old configs still work)
|
|
555
|
+
- ✅ Fixes critical bugs (TeamManager initialization, codex CLI parameters)
|
|
556
|
+
|
|
557
|
+
**Total Impact**: 17 agents migrated, 4 team configs created, 6 new/modified core files, 928 tests passing.
|
|
558
|
+
|
|
559
|
+
## [4.9.6] - 2025-10-08
|
|
560
|
+
|
|
561
|
+
### 🐛 Bug Fixes
|
|
562
|
+
|
|
563
|
+
#### Natural Language Delegation Parser - Whitespace Handling
|
|
564
|
+
|
|
565
|
+
- **Fixed**: Regex patterns now correctly handle indented delegation syntax
|
|
566
|
+
- **Issue**: Multi-line delegations with indentation were incorrectly parsed as single delegation
|
|
567
|
+
- **Solution**: Added `\s*` to lookahead assertions to match optional whitespace after newlines
|
|
568
|
+
- **Impact**: All 7 delegation patterns now work correctly with various formatting styles
|
|
569
|
+
- **Example**: Properly separates `@frontend Create UI` and `@backend Implement API` even when indented
|
|
570
|
+
- **Tests**: All 1026 tests passing (fixed 2 previously failing tests)
|
|
571
|
+
|
|
572
|
+
### 🔧 Improvements
|
|
573
|
+
|
|
574
|
+
#### Enhanced Delegation Pattern Robustness
|
|
575
|
+
|
|
576
|
+
- **Improved**: Lookahead assertions in all regex patterns (DELEGATE TO, @agent, Please/Request, I need/require, Chinese patterns)
|
|
577
|
+
- **Flexibility**: Now supports mixed formatting styles (no indentation, tabs, spaces)
|
|
578
|
+
- **Reliability**: Correctly separates multiple delegations regardless of formatting
|
|
579
|
+
|
|
580
|
+
## [4.9.5] - 2025-10-08
|
|
581
|
+
|
|
582
|
+
### ✨ Features
|
|
583
|
+
|
|
584
|
+
#### Intelligent Per-Agent Provider Fallback
|
|
585
|
+
|
|
586
|
+
- **Added**: `fallbackProvider` field in AgentProfile for per-agent fallback configuration
|
|
587
|
+
- **3-Layer Fallback**: Primary provider → Fallback provider → Router (global priority)
|
|
588
|
+
- **Strategic Distribution**: 17 agents configured with optimal provider assignments
|
|
589
|
+
- Coding agents (7): Claude primary → Codex fallback (Claude best for coding)
|
|
590
|
+
- Planning agents (3): Codex primary → Claude fallback (Codex best for planning)
|
|
591
|
+
- Creative agents (2): Gemini primary → Claude fallback (Gemini best for creative)
|
|
592
|
+
- Data/Ops agents (4): Codex primary → Claude fallback
|
|
593
|
+
- General agent (1): Gemini primary → Claude fallback
|
|
594
|
+
- **Claude as Safety Net**: Claude set as global priority 3 (final fallback) to ensure reliable backup
|
|
595
|
+
|
|
596
|
+
#### Provider Renaming: OpenAI → Codex
|
|
597
|
+
|
|
598
|
+
- **Changed**: OpenAIProvider renamed to match actual CLI tool (`codex`)
|
|
599
|
+
- **Updated**: Provider name from `openai` to `codex` throughout codebase
|
|
600
|
+
- **Configuration**: Updated default config to use `command: codex`
|
|
601
|
+
- **Documentation**: All docs updated to reflect Codex CLI usage
|
|
602
|
+
|
|
603
|
+
### 🔧 Improvements
|
|
604
|
+
|
|
605
|
+
#### Enhanced Context Manager
|
|
606
|
+
|
|
607
|
+
- **Updated**: `selectProvider()` now supports 3-layer fallback logic
|
|
608
|
+
- **Logging**: Added detailed logging for provider selection (primary/fallback/router)
|
|
609
|
+
- **Graceful Degradation**: System continues working even if preferred provider unavailable
|
|
610
|
+
|
|
611
|
+
#### Global Provider Priority Update
|
|
612
|
+
|
|
613
|
+
- **Changed**: Provider priority order: Codex (1) → Gemini (2) → Claude (3)
|
|
614
|
+
- **Rationale**: Claude as lowest priority ensures it's the final reliable fallback
|
|
615
|
+
- **Benefits**: Optimizes cost and performance while maintaining reliability
|
|
616
|
+
|
|
617
|
+
### 📚 Documentation
|
|
618
|
+
|
|
619
|
+
#### Comprehensive Documentation Updates
|
|
620
|
+
|
|
621
|
+
- **Updated**: README.md, CLAUDE.md with new provider information
|
|
622
|
+
- **Updated**: All docs (installation.md, core-concepts.md, quick-start.md)
|
|
623
|
+
- **Updated**: FAQ.md with Codex CLI information
|
|
624
|
+
- **Clarified**: Provider roles (Claude=coding, Codex=planning, Gemini=creative)
|
|
625
|
+
|
|
626
|
+
### 🔨 Technical Changes
|
|
627
|
+
|
|
628
|
+
#### Provider System Refactoring
|
|
629
|
+
|
|
630
|
+
- **Modified**: `src/providers/openai-provider.ts` - getter returns 'codex'
|
|
631
|
+
- **Modified**: `src/cli/commands/run.ts` - provider initialization uses name: 'codex'
|
|
632
|
+
- **Modified**: `src/cli/commands/status.ts` - consistent provider naming
|
|
633
|
+
- **Modified**: `src/types/agent.ts` - added fallbackProvider field
|
|
634
|
+
- **Modified**: `src/agents/context-manager.ts` - 3-layer fallback implementation
|
|
635
|
+
|
|
636
|
+
### ✅ Testing
|
|
637
|
+
|
|
638
|
+
#### All Tests Pass
|
|
639
|
+
|
|
640
|
+
- **Verified**: 922+ tests passing with new provider configuration
|
|
641
|
+
- **Tested**: Provider routing for coding, planning, and creative agents
|
|
642
|
+
- **Validated**: Fallback mechanism working correctly
|
|
643
|
+
|
|
644
|
+
## [4.9.1] - 2025-10-08
|
|
645
|
+
|
|
646
|
+
### ✨ Features
|
|
647
|
+
|
|
648
|
+
#### Display Name Resolution for Agent Delegation
|
|
649
|
+
|
|
650
|
+
- **Added**: Agents can now delegate using friendly display names (e.g., `@Oliver`, `@Tony`, `@Steve`)
|
|
651
|
+
- **Smart Resolution**: `DelegationParser` automatically resolves display names to agent names using `ProfileLoader`
|
|
652
|
+
- **Case-Insensitive**: Display name matching is case-insensitive (`@oliver`, `@Oliver`, `@OLIVER` all work)
|
|
653
|
+
- **Graceful Fallback**: Works with or without `ProfileLoader` - degrades gracefully in tests
|
|
654
|
+
- **Example**: `@Oliver Create infrastructure` → resolves to `devops` agent
|
|
655
|
+
|
|
656
|
+
#### Duplicate Display Name Detection
|
|
657
|
+
|
|
658
|
+
- **Added**: `ProfileLoader` now detects and warns about duplicate display names
|
|
659
|
+
- **Behavior**: First occurrence is kept, duplicates are skipped with clear warning
|
|
660
|
+
- **Logging**: Detailed warning includes both conflicting agent names
|
|
661
|
+
|
|
662
|
+
### 🔧 Improvements
|
|
663
|
+
|
|
664
|
+
#### Extended Provider Timeout
|
|
665
|
+
|
|
666
|
+
- **Increased**: Provider timeout from 2 minutes to 5 minutes (300000ms)
|
|
667
|
+
- **Benefit**: Allows complex multi-agent workflows to complete without timing out
|
|
668
|
+
- **Affected**: Both `claude-code` and `gemini-cli` providers
|
|
669
|
+
- **Configuration**: Updated in both `DEFAULT_CONFIG` and `automatosx.config.json`
|
|
670
|
+
|
|
671
|
+
#### Enhanced Error Handling
|
|
672
|
+
|
|
673
|
+
- **Improved**: Invalid agents are automatically skipped during delegation with clear logging
|
|
674
|
+
- **Added**: Proper error messages when agent resolution fails
|
|
675
|
+
- **Logging**: Debug logs show display name → agent name resolution
|
|
676
|
+
|
|
677
|
+
### ✅ Testing
|
|
678
|
+
|
|
679
|
+
#### New Integration Tests
|
|
680
|
+
|
|
681
|
+
- **Added**: 6 comprehensive integration tests for display name resolution
|
|
682
|
+
- **Coverage**: Tests with/without ProfileLoader, multiple display names, invalid agents, case sensitivity
|
|
683
|
+
- **Total**: 928 tests (up from 922)
|
|
684
|
+
|
|
685
|
+
#### Test Updates
|
|
686
|
+
|
|
687
|
+
- **Updated**: All delegation parser tests to use async/await
|
|
688
|
+
- **Fixed**: Test files properly handle async parse() method
|
|
689
|
+
- **Files**: `delegation-parser.test.ts`, `executor-multi-delegation.test.ts`, `natural-language-delegation.test.ts`
|
|
690
|
+
|
|
691
|
+
### 🔨 Technical Changes
|
|
692
|
+
|
|
693
|
+
#### Files Modified:
|
|
694
|
+
|
|
695
|
+
- `src/agents/delegation-parser.ts` - Added ProfileLoader support and async resolution
|
|
696
|
+
- `src/agents/executor.ts` - Pass ProfileLoader to DelegationParser
|
|
697
|
+
- `src/agents/profile-loader.ts` - Added duplicate display name detection
|
|
698
|
+
- `src/types/config.ts` - Increased default timeouts
|
|
699
|
+
- `automatosx.config.json` - Updated provider timeouts
|
|
700
|
+
- `tests/unit/delegation-parser.test.ts` - Added display name integration tests
|
|
701
|
+
|
|
702
|
+
#### API Changes:
|
|
703
|
+
|
|
704
|
+
- `DelegationParser.constructor()` now accepts optional `ProfileLoader` parameter
|
|
705
|
+
- `DelegationParser.parse()` changed from sync to async method
|
|
706
|
+
- All callers updated to use `await parser.parse()`
|
|
707
|
+
|
|
708
|
+
### 📊 Validation
|
|
709
|
+
|
|
710
|
+
- ✅ TypeScript compilation: Pass
|
|
711
|
+
- ✅ Unit tests: 928 passed (6 new tests)
|
|
712
|
+
- ✅ Integration tests: Pass
|
|
713
|
+
- ✅ E2E tests: Pass
|
|
714
|
+
- ✅ Build: Success
|
|
715
|
+
|
|
716
|
+
### 🎯 Use Cases
|
|
717
|
+
|
|
718
|
+
#### Before (v4.8.0):
|
|
719
|
+
|
|
720
|
+
```typescript
|
|
721
|
+
@devops Create the CI/CD pipeline
|
|
722
|
+
@cto Review architecture
|
|
723
|
+
@security Audit the implementation
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
#### After (v4.9.1):
|
|
727
|
+
|
|
728
|
+
```typescript
|
|
729
|
+
@Oliver Create the CI/CD pipeline // Friendly display name
|
|
730
|
+
@Tony Review architecture // Auto-resolves to 'cto'
|
|
731
|
+
@Steve Audit the implementation // Auto-resolves to 'security'
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
### 🔄 Backward Compatibility
|
|
735
|
+
|
|
736
|
+
- ✅ All existing agent name delegation continues to work
|
|
737
|
+
- ✅ No breaking changes to API
|
|
738
|
+
- ✅ ProfileLoader is optional - graceful degradation without it
|
|
739
|
+
|
|
740
|
+
---
|
|
741
|
+
|
|
742
|
+
## [4.9.0] - 2025-10-08
|
|
743
|
+
|
|
744
|
+
### 🧹 Complete Removal of canDelegate Field - Clean Architecture
|
|
745
|
+
|
|
746
|
+
This release completes the architectural cleanup by **fully removing the `canDelegate` field** from the codebase, eliminating confusion and technical debt introduced in earlier versions.
|
|
747
|
+
|
|
748
|
+
#### 🎯 Breaking Changes
|
|
749
|
+
|
|
750
|
+
#### `canDelegate` Field Removed
|
|
751
|
+
|
|
752
|
+
- ❌ **Removed**: `orchestration.canDelegate` field no longer exists in `OrchestrationConfig` type
|
|
753
|
+
- ✅ **Behavior**: All agents can delegate by default (unchanged from v4.8.0)
|
|
754
|
+
- ⚠️ **Warning**: Agent profiles with `canDelegate` will show deprecation warning but continue to work
|
|
755
|
+
- 📝 **Action Required**: Remove `canDelegate` from your agent YAML files (optional, not breaking)
|
|
756
|
+
|
|
757
|
+
#### Migration Guide:
|
|
758
|
+
|
|
759
|
+
```yaml
|
|
760
|
+
# Before (v4.8.0 and earlier)
|
|
761
|
+
orchestration:
|
|
762
|
+
canDelegate: true # ❌ No longer valid (shows warning)
|
|
763
|
+
maxDelegationDepth: 3
|
|
764
|
+
|
|
765
|
+
# After (v4.9.0+)
|
|
766
|
+
orchestration:
|
|
767
|
+
maxDelegationDepth: 3 # ✅ Clean configuration
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
#### ✨ Features
|
|
771
|
+
|
|
772
|
+
#### 1. Clean Type Definitions
|
|
773
|
+
|
|
774
|
+
- **Removed**: `canDelegate?: boolean` from `OrchestrationConfig` interface
|
|
775
|
+
- **Updated**: Documentation reflects universal delegation (all agents can delegate)
|
|
776
|
+
- **Benefit**: No confusion about whether agents can delegate
|
|
777
|
+
|
|
778
|
+
#### 2. Improved Runtime Metadata
|
|
779
|
+
|
|
780
|
+
- **Renamed**: `OrchestrationMetadata.canDelegate` → `isDelegationEnabled`
|
|
781
|
+
- **Clarification**: Field now clearly indicates whether orchestration system is available
|
|
782
|
+
- **Semantic**: `isDelegationEnabled` = "Is SessionManager/WorkspaceManager available?" not "Can this agent delegate?"
|
|
783
|
+
|
|
784
|
+
#### 3. Deprecation Warning
|
|
785
|
+
|
|
786
|
+
- **Added**: Warning when loading agent profiles with deprecated `canDelegate` field
|
|
787
|
+
- **Message**: "orchestration.canDelegate is deprecated and ignored (v4.9.0+). All agents can delegate by default."
|
|
788
|
+
- **Impact**: Zero breaking changes for existing profiles
|
|
789
|
+
|
|
790
|
+
#### 4. Test Suite Updated
|
|
791
|
+
|
|
792
|
+
- **Updated**: 988 tests now use `isDelegationEnabled` instead of `canDelegate`
|
|
793
|
+
- **Removed**: All obsolete permission check tests
|
|
794
|
+
- **Result**: Cleaner, more maintainable test suite
|
|
795
|
+
|
|
796
|
+
#### 🔧 Technical Details
|
|
797
|
+
|
|
798
|
+
#### Files Changed:
|
|
799
|
+
|
|
800
|
+
- `src/types/orchestration.ts` - Removed `canDelegate` from `OrchestrationConfig`, renamed in `OrchestrationMetadata`
|
|
801
|
+
- `src/agents/profile-loader.ts` - Added deprecation warning for old `canDelegate` usage
|
|
802
|
+
- `src/agents/context-manager.ts` - Uses `isDelegationEnabled` for logging
|
|
803
|
+
- `examples/agents/*.yaml` - Updated to remove `canDelegate`
|
|
804
|
+
- `CLAUDE.md` - Updated documentation to reflect v4.9.0 changes
|
|
805
|
+
- All test files - Updated to use new API
|
|
806
|
+
|
|
807
|
+
#### Backward Compatibility:
|
|
808
|
+
|
|
809
|
+
- ✅ Existing agent profiles with `canDelegate` continue to work (with warning)
|
|
810
|
+
- ✅ No changes needed to delegation behavior or API
|
|
811
|
+
- ✅ Runtime behavior identical to v4.8.0
|
|
812
|
+
|
|
813
|
+
#### 📊 Validation
|
|
814
|
+
|
|
815
|
+
- ✅ TypeScript compilation: Pass
|
|
816
|
+
- ✅ Unit tests: 922 passed
|
|
817
|
+
- ✅ Integration tests: 66 passed
|
|
818
|
+
- ✅ Total: 988 tests passed
|
|
819
|
+
|
|
820
|
+
#### 🎨 Why This Change?
|
|
821
|
+
|
|
822
|
+
#### Problem:
|
|
823
|
+
|
|
824
|
+
- v4.8.0 claimed "all agents can delegate" but `canDelegate` field still existed
|
|
825
|
+
- Caused confusion: developers unsure if they need to set `canDelegate: true`
|
|
826
|
+
- Technical debt: validation code, tests, documentation for unused field
|
|
827
|
+
|
|
828
|
+
#### Solution:
|
|
829
|
+
|
|
830
|
+
- Complete removal of `canDelegate` from type system
|
|
831
|
+
- Clearer naming: `isDelegationEnabled` indicates system availability
|
|
832
|
+
- Simpler configuration: agents just work without field
|
|
833
|
+
|
|
834
|
+
#### Result:
|
|
835
|
+
|
|
836
|
+
- Zero configuration needed for delegation
|
|
837
|
+
- API matches behavior exactly
|
|
838
|
+
- Reduced maintenance burden
|
|
839
|
+
|
|
840
|
+
#### 🚀 Upgrade Path
|
|
841
|
+
|
|
842
|
+
1. **Optional**: Remove `canDelegate` from agent YAML files
|
|
843
|
+
2. **Automatic**: Profiles with `canDelegate` show warning but work normally
|
|
844
|
+
3. **No code changes**: Runtime behavior unchanged
|
|
845
|
+
|
|
846
|
+
#### Example Update:
|
|
847
|
+
|
|
848
|
+
```bash
|
|
849
|
+
# Find all agent profiles with canDelegate
|
|
850
|
+
grep -r "canDelegate" .automatosx/agents/
|
|
851
|
+
|
|
852
|
+
# Remove the field (optional)
|
|
853
|
+
sed -i '' '/canDelegate:/d' .automatosx/agents/*.yaml
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## [4.8.0] - 2025-10-08
|
|
859
|
+
|
|
860
|
+
### 🌟 Universal Agent Delegation - True Autonomous Collaboration
|
|
861
|
+
|
|
862
|
+
This release removes all remaining barriers to agent delegation, enabling **every agent to delegate by default** without any configuration requirements.
|
|
863
|
+
|
|
864
|
+
#### 🎯 Breaking Changes
|
|
865
|
+
|
|
866
|
+
#### Orchestration Configuration Simplified
|
|
867
|
+
|
|
868
|
+
- ✅ **New Behavior**: All agents can delegate regardless of `canDelegate` setting
|
|
869
|
+
- ✅ **Auto-Initialization**: SessionManager and WorkspaceManager automatically initialize (no `--session` flag required)
|
|
870
|
+
- 🔧 **Optional Field**: `orchestration.canDelegate` is now optional (defaults to `true`)
|
|
871
|
+
- 📝 **Backward Compatible**: Existing agent profiles continue to work without changes
|
|
872
|
+
|
|
873
|
+
#### Migration Guide:
|
|
874
|
+
|
|
875
|
+
```yaml
|
|
876
|
+
# Before (v4.7.8 and earlier)
|
|
877
|
+
orchestration:
|
|
878
|
+
canDelegate: true # ❌ Required for delegation
|
|
879
|
+
maxDelegationDepth: 3
|
|
880
|
+
|
|
881
|
+
# After (v4.8.0+)
|
|
882
|
+
orchestration: # ✨ Orchestration block now optional!
|
|
883
|
+
maxDelegationDepth: 3 # Only specify if different from default (3)
|
|
884
|
+
|
|
885
|
+
# Or simply omit orchestration block entirely:
|
|
886
|
+
# (agent can still delegate with default settings)
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
#### ✨ Features
|
|
890
|
+
|
|
891
|
+
#### 1. Universal Delegation
|
|
892
|
+
|
|
893
|
+
- **Changed**: `context-manager.ts` no longer checks `agent.orchestration?.canDelegate`
|
|
894
|
+
- **Result**: All agents receive orchestration metadata automatically
|
|
895
|
+
- **Benefit**: Zero configuration needed for basic delegation
|
|
896
|
+
|
|
897
|
+
#### 2. Always-On Orchestration Managers
|
|
898
|
+
|
|
899
|
+
- **Changed**: `run.ts` always initializes SessionManager and WorkspaceManager
|
|
900
|
+
- **Previous**: Required `--session` flag to enable delegation
|
|
901
|
+
- **Result**: Delegation works immediately without additional flags
|
|
902
|
+
- **Benefit**: Seamless agent-to-agent collaboration
|
|
903
|
+
|
|
904
|
+
#### 3. Removed Permission Checks
|
|
905
|
+
|
|
906
|
+
- **Changed**: `executor.ts` no longer validates `canDelegate` permission
|
|
907
|
+
- **Safety**: Maintained via cycle detection, depth limits, timeout enforcement
|
|
908
|
+
- **Benefit**: Autonomous collaboration without artificial restrictions
|
|
909
|
+
|
|
910
|
+
#### 4. Enhanced Type Safety
|
|
911
|
+
|
|
912
|
+
- **Added**: `maxDelegationDepth` to `OrchestrationMetadata` interface
|
|
913
|
+
- **Changed**: Made `maxDelegationDepth` optional with default value (3)
|
|
914
|
+
- **Benefit**: Better TypeScript inference and runtime safety
|
|
915
|
+
|
|
916
|
+
#### 5. Improved Logging
|
|
917
|
+
|
|
918
|
+
- **Added**: `hasOrchestration` and `canDelegate` to execution context logs
|
|
919
|
+
- **Benefit**: Better debugging and visibility into orchestration status
|
|
920
|
+
|
|
921
|
+
#### 🔧 Technical Changes
|
|
922
|
+
|
|
923
|
+
#### Modified Files:
|
|
924
|
+
|
|
925
|
+
- `src/agents/context-manager.ts`: Removed `canDelegate` check, always create orchestration metadata
|
|
926
|
+
- `src/agents/executor.ts`: Removed delegation permission validation, added optional chaining for `maxDelegationDepth`
|
|
927
|
+
- `src/cli/commands/run.ts`: Always initialize SessionManager and WorkspaceManager
|
|
928
|
+
- `src/types/orchestration.ts`: Added `maxDelegationDepth` field to `OrchestrationMetadata`
|
|
929
|
+
|
|
930
|
+
#### Code Changes:
|
|
931
|
+
|
|
932
|
+
```typescript
|
|
933
|
+
// Before (v4.7.8)
|
|
934
|
+
if (agent.orchestration?.canDelegate &&
|
|
935
|
+
this.config.workspaceManager &&
|
|
936
|
+
this.config.profileLoader) {
|
|
937
|
+
// Create orchestration metadata
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
// After (v4.8.0)
|
|
941
|
+
if (this.config.workspaceManager &&
|
|
942
|
+
this.config.profileLoader) {
|
|
943
|
+
// Always create orchestration metadata
|
|
944
|
+
const maxDelegationDepth = agent.orchestration?.maxDelegationDepth ?? 3;
|
|
945
|
+
}
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
#### 🧪 Testing
|
|
949
|
+
|
|
950
|
+
#### Test Coverage:
|
|
951
|
+
|
|
952
|
+
- ✅ All existing tests passing (922 tests)
|
|
953
|
+
- ✅ Delegation works without `orchestration` block in agent profiles
|
|
954
|
+
- ✅ Delegation works without `--session` flag
|
|
955
|
+
- ✅ Multiple agents can delegate in sequence
|
|
956
|
+
- ✅ Sessions automatically created and tracked
|
|
957
|
+
|
|
958
|
+
#### Verified Scenarios:
|
|
959
|
+
|
|
960
|
+
1. Agent without `orchestration` block can delegate ✅
|
|
961
|
+
2. Multiple sequential delegations (A→B→C) work ✅
|
|
962
|
+
3. Session creation and persistence automatic ✅
|
|
963
|
+
4. Workspace isolation maintained ✅
|
|
964
|
+
|
|
965
|
+
#### 📦 Files Changed
|
|
966
|
+
|
|
967
|
+
#### Core Changes:
|
|
968
|
+
|
|
969
|
+
- `src/agents/context-manager.ts`: Universal orchestration metadata creation
|
|
970
|
+
- `src/agents/executor.ts`: Removed permission checks, optional `maxDelegationDepth`
|
|
971
|
+
- `src/cli/commands/run.ts`: Always initialize orchestration managers
|
|
972
|
+
- `src/types/orchestration.ts`: Added `maxDelegationDepth` to metadata interface
|
|
973
|
+
|
|
974
|
+
#### Documentation Updates:
|
|
975
|
+
|
|
976
|
+
- `README.md`: Updated to v4.8.0, added Universal Agent Delegation section
|
|
977
|
+
- `CHANGELOG.md`: This changelog entry
|
|
978
|
+
- `.automatosx/agents/*.yaml`: Updated example agent profiles (orchestration optional)
|
|
979
|
+
|
|
980
|
+
#### 🎉 Impact
|
|
981
|
+
|
|
982
|
+
#### Developer Experience:
|
|
983
|
+
|
|
984
|
+
- 🚀 **Faster Setup**: No configuration needed for delegation
|
|
985
|
+
- 💡 **Clearer Intent**: Agents collaborate naturally without artificial barriers
|
|
986
|
+
- 🔧 **Less Config**: Agent profiles are simpler and more maintainable
|
|
987
|
+
|
|
988
|
+
#### System Behavior:
|
|
989
|
+
|
|
990
|
+
- ✅ **More Autonomous**: Agents decide collaboration without permission checks
|
|
991
|
+
- 🛡️ **Still Safe**: Cycle detection, depth limits, timeouts prevent abuse
|
|
992
|
+
- 📊 **Better Visibility**: Logging shows orchestration status clearly
|
|
993
|
+
|
|
994
|
+
#### Backward Compatibility:
|
|
995
|
+
|
|
996
|
+
- ✅ Existing agent profiles continue to work
|
|
997
|
+
- ✅ `canDelegate: true` is still respected (but no longer required)
|
|
998
|
+
- ✅ `--session` flag still works (but no longer required)
|
|
999
|
+
|
|
1000
|
+
---
|
|
1001
|
+
|
|
1002
|
+
## [4.7.6] - 2025-10-08
|
|
1003
|
+
|
|
1004
|
+
### 🔓 Complete Whitelist Removal
|
|
1005
|
+
|
|
1006
|
+
This release completely removes the `canDelegateTo` whitelist mechanism, enabling true autonomous agent collaboration.
|
|
1007
|
+
|
|
1008
|
+
#### 🎯 Breaking Changes
|
|
1009
|
+
|
|
1010
|
+
#### Whitelist Mechanism Removed
|
|
1011
|
+
|
|
1012
|
+
- ❌ **Removed**: `canDelegateTo` field no longer validated or enforced
|
|
1013
|
+
- ✅ **New Behavior**: Agents can delegate to ANY other agent by default
|
|
1014
|
+
- 🛡️ **Safety**: Security ensured via `canDelegate` flag, cycle detection, depth limits, and timeouts
|
|
1015
|
+
|
|
1016
|
+
#### Migration Guide:
|
|
1017
|
+
|
|
1018
|
+
```yaml
|
|
1019
|
+
# Before (v4.7.5 and earlier)
|
|
1020
|
+
orchestration:
|
|
1021
|
+
canDelegate: true
|
|
1022
|
+
canDelegateTo: # ❌ No longer needed
|
|
1023
|
+
- frontend
|
|
1024
|
+
- backend
|
|
1025
|
+
maxDelegationDepth: 3
|
|
1026
|
+
|
|
1027
|
+
# After (v4.7.6+)
|
|
1028
|
+
orchestration:
|
|
1029
|
+
canDelegate: true # ✅ Just this!
|
|
1030
|
+
maxDelegationDepth: 3
|
|
1031
|
+
```
|
|
1032
|
+
|
|
1033
|
+
**Action Required:** Simply remove `canDelegateTo` from your agent profiles. Existing profiles with `canDelegateTo` will continue to work (field is ignored).
|
|
1034
|
+
|
|
1035
|
+
#### ✨ Refactoring & Improvements
|
|
1036
|
+
|
|
1037
|
+
#### 1. Code Cleanup
|
|
1038
|
+
|
|
1039
|
+
- Removed `canDelegateTo` validation from `profile-loader.ts`
|
|
1040
|
+
- Removed whitelist checking logic from `executor.ts`
|
|
1041
|
+
- Removed deprecated field from `OrchestrationConfig` type
|
|
1042
|
+
- Cleaned up all example agent configurations
|
|
1043
|
+
|
|
1044
|
+
#### 2. Simplified Delegation Model
|
|
1045
|
+
|
|
1046
|
+
- Text-only delegation mode (SessionManager/WorkspaceManager now optional)
|
|
1047
|
+
- Lightweight agent-to-agent communication without file system overhead
|
|
1048
|
+
- Maintains backward compatibility for full collaboration features
|
|
1049
|
+
|
|
1050
|
+
#### 3. Documentation Updates
|
|
1051
|
+
|
|
1052
|
+
- Updated README.md to reflect autonomous collaboration model
|
|
1053
|
+
- Updated CLAUDE.md with new orchestration examples
|
|
1054
|
+
- Removed whitelist references from all documentation
|
|
1055
|
+
- Updated all example agent profiles
|
|
1056
|
+
|
|
1057
|
+
#### 4. Test Updates
|
|
1058
|
+
|
|
1059
|
+
- Simplified delegation tests to focus on autonomous collaboration
|
|
1060
|
+
- Removed whitelist-specific test cases
|
|
1061
|
+
- Updated orchestration type tests
|
|
1062
|
+
- All 904 tests passing ✅
|
|
1063
|
+
|
|
1064
|
+
#### 🧪 Test Results
|
|
1065
|
+
|
|
1066
|
+
```text
|
|
1067
|
+
✅ 904/904 tests passing (100%)
|
|
1068
|
+
✅ All whitelist code removed
|
|
1069
|
+
✅ Build successful: 312.91 KB bundle
|
|
1070
|
+
✅ No breaking changes to existing delegation functionality
|
|
1071
|
+
```
|
|
1072
|
+
|
|
1073
|
+
#### 📦 Files Changed
|
|
1074
|
+
|
|
1075
|
+
#### Core Changes:
|
|
1076
|
+
|
|
1077
|
+
- `src/types/orchestration.ts`: Removed `canDelegateTo` field
|
|
1078
|
+
- `src/agents/executor.ts`: Removed whitelist validation logic
|
|
1079
|
+
- `src/agents/profile-loader.ts`: Removed `canDelegateTo` validation
|
|
1080
|
+
- `src/cli/commands/run.ts`: SessionManager/WorkspaceManager now optional
|
|
1081
|
+
|
|
1082
|
+
#### Configuration:
|
|
1083
|
+
|
|
1084
|
+
- `.automatosx/agents/*.yaml`: Removed `canDelegateTo` (3 files)
|
|
1085
|
+
- `examples/agents/*.yaml`: Removed `canDelegateTo` (2 files)
|
|
1086
|
+
|
|
1087
|
+
#### Documentation:
|
|
1088
|
+
|
|
1089
|
+
- `README.md`: Updated to v4.7.6, added whitelist removal highlights
|
|
1090
|
+
- `CLAUDE.md`: Updated orchestration examples
|
|
1091
|
+
- `CHANGELOG.md`: This entry
|
|
1092
|
+
|
|
1093
|
+
#### Tests:
|
|
1094
|
+
|
|
1095
|
+
- `tests/unit/types/orchestration.test.ts`: Removed whitelist tests
|
|
1096
|
+
- `tests/unit/executor-delegation.test.ts`: Simplified to autonomous collaboration
|
|
1097
|
+
|
|
1098
|
+
#### 🔒 Security
|
|
1099
|
+
|
|
1100
|
+
All security mechanisms remain intact and enhanced:
|
|
1101
|
+
|
|
1102
|
+
- ✅ **Permission Check**: `canDelegate: true` required to delegate
|
|
1103
|
+
- ✅ **Cycle Detection**: Prevents A→B→A circular delegations
|
|
1104
|
+
- ✅ **Depth Limit**: Max 3 levels of delegation by default
|
|
1105
|
+
- ✅ **Timeout Enforcement**: Per-agent execution timeouts
|
|
1106
|
+
- ✅ **Workspace Isolation**: Agents still restricted to their workspaces
|
|
1107
|
+
|
|
1108
|
+
## [4.7.5] - 2025-10-08
|
|
1109
|
+
|
|
1110
|
+
### 🚀 Major Feature Complete: Autonomous Multi-Agent Delegation
|
|
1111
|
+
|
|
1112
|
+
Completed the implementation of autonomous agent delegation system, enabling agents to collaborate without manual orchestration.
|
|
1113
|
+
|
|
1114
|
+
#### ✨ New Features
|
|
1115
|
+
|
|
1116
|
+
#### 1. Autonomous Agent Delegation (CRITICAL)
|
|
1117
|
+
|
|
1118
|
+
- ✅ **Delegation Parsing & Execution**: Agents can now actually delegate tasks by outputting `DELEGATE TO [agent]: [task]`
|
|
1119
|
+
- ✅ **Automatic Detection**: System automatically parses agent responses for delegation requests
|
|
1120
|
+
- ✅ **Seamless Integration**: Delegation results are automatically appended to agent responses
|
|
1121
|
+
- ✅ **No Whitelist Required**: Removed `canDelegateTo` restriction for true autonomous collaboration
|
|
1122
|
+
- ✅ **Multi-Delegation Support**: Agents can delegate to multiple agents in single response
|
|
1123
|
+
- ✅ **Case-Insensitive Parsing**: Delegation syntax is flexible and robust
|
|
1124
|
+
|
|
1125
|
+
#### Example:
|
|
1126
|
+
|
|
1127
|
+
```bash
|
|
1128
|
+
ax run backend "Review README and discuss with CTO"
|
|
1129
|
+
# Bob can now output:
|
|
1130
|
+
# "I've reviewed the README.
|
|
1131
|
+
#
|
|
1132
|
+
# DELEGATE TO cto: Please provide strategic feedback on README
|
|
1133
|
+
#
|
|
1134
|
+
# The delegation has been requested."
|
|
1135
|
+
#
|
|
1136
|
+
# System automatically executes delegation and returns combined results
|
|
1137
|
+
```
|
|
1138
|
+
|
|
1139
|
+
#### 🐛 Critical Bug Fixes
|
|
1140
|
+
|
|
1141
|
+
#### 1. Orchestration Managers Initialization (CRITICAL)
|
|
1142
|
+
|
|
1143
|
+
- **Issue**: WorkspaceManager only initialized when `--session` flag provided
|
|
1144
|
+
- **Impact**: Delegation completely non-functional without explicit session
|
|
1145
|
+
- **Fix**: Always initialize WorkspaceManager to enable delegation
|
|
1146
|
+
- **Before**: `ax run backend "task"` → orchestration = undefined → no delegation
|
|
1147
|
+
- **After**: `ax run backend "task"` → orchestration available → delegation works
|
|
1148
|
+
|
|
1149
|
+
#### 2. Type Safety Improvements
|
|
1150
|
+
|
|
1151
|
+
- Fixed unsafe type assertion in ProfileLoader (`profile!` → `profile`)
|
|
1152
|
+
- Improved null/undefined checking for profile loading
|
|
1153
|
+
- Added proper type guards for cached profiles
|
|
1154
|
+
|
|
1155
|
+
#### 3. Error Handling Precision
|
|
1156
|
+
|
|
1157
|
+
- Replaced string matching with instanceof checks
|
|
1158
|
+
- `error.message.includes('Agent not found')` → `error instanceof AgentNotFoundError`
|
|
1159
|
+
- Added proper import for AgentNotFoundError type
|
|
1160
|
+
|
|
1161
|
+
#### 4. Prompt Optimization
|
|
1162
|
+
|
|
1163
|
+
- Limited availableAgents list to 10 agents (from 17)
|
|
1164
|
+
- Added "... and N more agents" message
|
|
1165
|
+
- Reduced prompt length by ~40% for large agent lists
|
|
1166
|
+
- Added delegation example in prompt
|
|
1167
|
+
|
|
1168
|
+
#### 5. Whitelist Removal
|
|
1169
|
+
|
|
1170
|
+
- Removed `canDelegateTo` enforcement (deprecated in v4.7.2)
|
|
1171
|
+
- Agents can now delegate to ANY other agent
|
|
1172
|
+
- Safety still ensured via cycle detection, depth limits, timeouts
|
|
1173
|
+
- Added deprecation notice in type definitions
|
|
1174
|
+
|
|
1175
|
+
#### 📝 Documentation Updates
|
|
1176
|
+
|
|
1177
|
+
- Added comprehensive delegation usage examples
|
|
1178
|
+
- Updated orchestration documentation
|
|
1179
|
+
- Clarified agent collaboration capabilities
|
|
1180
|
+
- Added troubleshooting guide for delegation
|
|
1181
|
+
|
|
1182
|
+
#### 🧪 Test Results
|
|
1183
|
+
|
|
1184
|
+
```text
|
|
1185
|
+
✅ 892/892 tests passing (100%)
|
|
1186
|
+
✅ Delegation parsing verified (single/multi/case-insensitive)
|
|
1187
|
+
✅ Type safety validated with strict TypeScript
|
|
1188
|
+
✅ Build successful: 313KB bundle
|
|
1189
|
+
```
|
|
1190
|
+
|
|
1191
|
+
#### 📦 Files Changed
|
|
1192
|
+
|
|
1193
|
+
#### Core Delegation Implementation:
|
|
1194
|
+
|
|
1195
|
+
- `src/agents/executor.ts`: +120 lines (parseDelegationRequests, executeDelegations, auto-execution)
|
|
1196
|
+
- `src/cli/commands/run.ts`: +15 lines (always initialize WorkspaceManager, AgentNotFoundError import)
|
|
1197
|
+
|
|
1198
|
+
#### Type Safety & Optimization:
|
|
1199
|
+
|
|
1200
|
+
- `src/agents/profile-loader.ts`: Type safety improvements
|
|
1201
|
+
- `src/types/orchestration.ts`: Deprecated canDelegateTo with @deprecated tag
|
|
1202
|
+
- `src/agents/context-manager.ts`: Removed whitelist filtering
|
|
1203
|
+
|
|
1204
|
+
#### Tests:
|
|
1205
|
+
|
|
1206
|
+
- `tests/unit/executor-delegation.test.ts`: Updated to verify whitelist removal
|
|
1207
|
+
|
|
1208
|
+
#### 🔒 Security
|
|
1209
|
+
|
|
1210
|
+
All security mechanisms remain intact:
|
|
1211
|
+
|
|
1212
|
+
- ✅ Cycle detection prevents infinite delegation loops
|
|
1213
|
+
- ✅ Max delegation depth (default: 3)
|
|
1214
|
+
- ✅ Timeout enforcement at each level
|
|
1215
|
+
- ✅ Workspace isolation and permission validation
|
|
1216
|
+
- ✅ Path traversal protection
|
|
1217
|
+
|
|
1218
|
+
#### ⚠️ Breaking Changes
|
|
1219
|
+
|
|
1220
|
+
#### Behavioral Change (Non-Breaking):
|
|
1221
|
+
|
|
1222
|
+
- `canDelegateTo` in agent profiles is now ignored (previously enforced)
|
|
1223
|
+
- Agents can delegate to any other agent regardless of whitelist
|
|
1224
|
+
- Existing profiles with `canDelegateTo` will continue to work but field is ignored
|
|
1225
|
+
|
|
1226
|
+
#### Migration Guide
|
|
1227
|
+
|
|
1228
|
+
No action required. The `canDelegateTo` field can be safely removed from agent profiles, but leaving it in place has no negative effect.
|
|
1229
|
+
|
|
1230
|
+
---
|
|
1231
|
+
|
|
1232
|
+
## [4.7.1] - 2025-10-08
|
|
1233
|
+
|
|
1234
|
+
### 🐛 Critical Bug Fixes & Security Enhancements
|
|
1235
|
+
|
|
1236
|
+
Fixed 12 critical and high-priority bugs discovered through ultra-deep analysis of v4.7.0.
|
|
1237
|
+
|
|
1238
|
+
#### Critical Fixes
|
|
1239
|
+
|
|
1240
|
+
#### Session Manager Improvements:
|
|
1241
|
+
|
|
1242
|
+
- ✅ **Duplicate Cleanup Execution**: Removed redundant cleanup calls in `createSession()` that caused performance issues
|
|
1243
|
+
- ✅ **UUID Collision Protection**: Added 100-attempt limit to prevent infinite loops in rare UUID collision scenarios
|
|
1244
|
+
- ✅ **Date Validation**: Validate Date objects when loading from persistence to prevent Invalid Date crashes
|
|
1245
|
+
- ✅ **Circular Reference Protection**: Catch JSON.stringify errors to handle metadata with circular references
|
|
1246
|
+
|
|
1247
|
+
#### Workspace Manager Improvements:
|
|
1248
|
+
|
|
1249
|
+
- ✅ **Invalid Session ID Handling**: Gracefully skip non-UUID directories in cleanup operations
|
|
1250
|
+
- ✅ **File Size Limit for Shared Workspace**: Added 10MB limit to `writeToShared()` consistent with `writeToSession()`
|
|
1251
|
+
|
|
1252
|
+
#### High Priority Fixes
|
|
1253
|
+
|
|
1254
|
+
#### Robustness Improvements:
|
|
1255
|
+
|
|
1256
|
+
- ✅ **File Traversal Safety**: Handle files/directories deleted during `collectFiles()` traversal
|
|
1257
|
+
- ✅ **Destroy Error Handling**: Prevent flush errors from blocking `SessionManager.destroy()`
|
|
1258
|
+
- ✅ **Cleanup Prioritization**: Prioritize removing completed/failed sessions over active ones
|
|
1259
|
+
|
|
1260
|
+
#### Performance Optimizations:
|
|
1261
|
+
|
|
1262
|
+
- ✅ **UUID Regex Static**: Made UUID validation regex static for better performance
|
|
1263
|
+
- ✅ **Enhanced Logging**: Added status breakdown in cleanup operations
|
|
1264
|
+
|
|
1265
|
+
#### Security Enhancements
|
|
1266
|
+
|
|
1267
|
+
- UUID format validation to prevent path traversal
|
|
1268
|
+
- Date object validation to prevent Invalid Date exploits
|
|
1269
|
+
- Circular reference protection in metadata
|
|
1270
|
+
- File size limits enforcement (10MB)
|
|
1271
|
+
- Collision detection with retry limits
|
|
1272
|
+
|
|
1273
|
+
#### Test Results
|
|
1274
|
+
|
|
1275
|
+
```text
|
|
1276
|
+
✅ 986 tests passing (892 unit + 66 integration + 28 e2e)
|
|
1277
|
+
⏭️ 5 tests skipped (real provider tests)
|
|
1278
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1279
|
+
✅ Total: 991 tests (100% pass rate)
|
|
1280
|
+
```
|
|
1281
|
+
|
|
1282
|
+
#### Files Changed
|
|
1283
|
+
|
|
1284
|
+
- `src/core/session-manager.ts`: 82 additions, 9 deletions
|
|
1285
|
+
- `src/core/workspace-manager.ts`: 79 additions, 10 deletions
|
|
1286
|
+
- `src/agents/executor.ts`: 9 lines (comment improvements)
|
|
1287
|
+
|
|
1288
|
+
#### Breaking Changes
|
|
1289
|
+
|
|
1290
|
+
None - All changes are backward compatible.
|
|
1291
|
+
|
|
1292
|
+
---
|
|
1293
|
+
|
|
1294
|
+
## [4.7.0] - 2025-10-08
|
|
1295
|
+
|
|
1296
|
+
### 🚀 Major Feature: Multi-Agent Orchestration
|
|
1297
|
+
|
|
1298
|
+
AutomatosX now supports true multi-agent collaboration with session-based workflows, workspace isolation, and intelligent delegation.
|
|
1299
|
+
|
|
1300
|
+
#### ✨ New Features
|
|
1301
|
+
|
|
1302
|
+
#### 1. Agent-to-Agent Delegation
|
|
1303
|
+
|
|
1304
|
+
- Agents can now delegate tasks to other specialized agents
|
|
1305
|
+
- Whitelist-based delegation for security (`canDelegateTo`)
|
|
1306
|
+
- Automatic cycle detection prevents infinite delegation loops
|
|
1307
|
+
- Configurable delegation depth limits (default: 3 levels)
|
|
1308
|
+
- Structured delegation results with file tracking
|
|
1309
|
+
|
|
1310
|
+
#### 2. Session Management
|
|
1311
|
+
|
|
1312
|
+
- Multi-agent collaborative sessions with unique IDs
|
|
1313
|
+
- Track all agents participating in a workflow
|
|
1314
|
+
- Session lifecycle management (active → completed/failed)
|
|
1315
|
+
- Session metadata for context sharing
|
|
1316
|
+
- Automatic cleanup of old sessions
|
|
1317
|
+
|
|
1318
|
+
#### 3. Workspace Isolation
|
|
1319
|
+
|
|
1320
|
+
- Each agent gets isolated workspace (`.automatosx/workspaces/<agent>/`)
|
|
1321
|
+
- Session-based shared workspaces for collaboration
|
|
1322
|
+
- Permission-based workspace access control
|
|
1323
|
+
- Path traversal protection for security
|
|
1324
|
+
- Persistent shared workspace for cross-session collaboration
|
|
1325
|
+
|
|
1326
|
+
#### 4. New CLI Commands
|
|
1327
|
+
|
|
1328
|
+
```bash
|
|
1329
|
+
# Session management
|
|
1330
|
+
ax session create <task> <initiator> # Create new session
|
|
1331
|
+
ax session list # List all sessions
|
|
1332
|
+
ax session status <id> # Show session details
|
|
1333
|
+
ax session complete <id> # Mark session complete
|
|
1334
|
+
ax session fail <id> # Mark session failed
|
|
1335
|
+
|
|
1336
|
+
# Workspace management
|
|
1337
|
+
ax workspace list [--session <id>] # List workspace files
|
|
1338
|
+
ax workspace stats # Show workspace statistics
|
|
1339
|
+
ax workspace cleanup # Clean up old workspaces
|
|
1340
|
+
|
|
1341
|
+
# Enhanced run command
|
|
1342
|
+
ax run <agent> <task> --session <id> # Join existing session
|
|
1343
|
+
```
|
|
1344
|
+
|
|
1345
|
+
#### 5. Enhanced Agent Profiles
|
|
1346
|
+
|
|
1347
|
+
New `orchestration` configuration in agent YAML:
|
|
1348
|
+
|
|
1349
|
+
```yaml
|
|
1350
|
+
orchestration:
|
|
1351
|
+
canDelegate: true # Enable delegation
|
|
1352
|
+
canDelegateTo: # Whitelist
|
|
1353
|
+
- frontend
|
|
1354
|
+
- backend
|
|
1355
|
+
- security
|
|
1356
|
+
maxDelegationDepth: 3 # Max chain depth
|
|
1357
|
+
canReadWorkspaces: # Readable workspaces
|
|
1358
|
+
- frontend
|
|
1359
|
+
- backend
|
|
1360
|
+
canWriteToShared: true # Can write to shared
|
|
1361
|
+
```
|
|
1362
|
+
|
|
1363
|
+
#### 🔧 Core Improvements
|
|
1364
|
+
|
|
1365
|
+
#### ProfileLoader
|
|
1366
|
+
|
|
1367
|
+
- ✅ Now loads `orchestration` configuration from YAML
|
|
1368
|
+
- ✅ Validates orchestration config with strict type checking
|
|
1369
|
+
- ✅ Validates `abilitySelection` configuration
|
|
1370
|
+
|
|
1371
|
+
#### ContextManager
|
|
1372
|
+
|
|
1373
|
+
- ✅ Integrates SessionManager and WorkspaceManager
|
|
1374
|
+
- ✅ Builds OrchestrationMetadata with available agents
|
|
1375
|
+
- ✅ Handles session context in execution flow
|
|
1376
|
+
- ✅ Constructs shared workspace paths
|
|
1377
|
+
|
|
1378
|
+
#### AgentExecutor
|
|
1379
|
+
|
|
1380
|
+
- ✅ Includes orchestration info in agent prompts
|
|
1381
|
+
- ✅ Shows available delegation targets
|
|
1382
|
+
- ✅ Displays current session and collaboration context
|
|
1383
|
+
- ✅ Provides delegation instructions to agents
|
|
1384
|
+
|
|
1385
|
+
#### 📁 New Core Modules
|
|
1386
|
+
|
|
1387
|
+
- `src/core/session-manager.ts` - Session lifecycle management
|
|
1388
|
+
- `src/core/workspace-manager.ts` - Workspace isolation and collaboration
|
|
1389
|
+
- `src/types/orchestration.ts` - Orchestration type definitions
|
|
1390
|
+
- `src/cli/commands/session.ts` - Session CLI commands
|
|
1391
|
+
- `src/cli/commands/workspace.ts` - Workspace CLI commands
|
|
1392
|
+
|
|
1393
|
+
#### 🐛 Critical Bug Fixes & Security Enhancements
|
|
1394
|
+
|
|
1395
|
+
#### Session Manager Improvements:
|
|
1396
|
+
|
|
1397
|
+
- ✅ **UUID v4 Validation**: Added strict UUID format validation to prevent path traversal attacks
|
|
1398
|
+
- ✅ **Atomic Write Operations**: Implemented temp file + rename pattern with automatic cleanup on failure
|
|
1399
|
+
- ✅ **Debounced Save Fix**: Fixed promise tracking to prevent error swallowing in async saves
|
|
1400
|
+
- ✅ **Double-Save Prevention**: Corrected flushSave() logic to avoid redundant save operations
|
|
1401
|
+
- ✅ **Configurable Limits**: Made MAX_SESSIONS configurable (default: 100)
|
|
1402
|
+
- ✅ **Metadata Size Limits**: Added 10KB limit with accurate byte counting for multi-byte characters
|
|
1403
|
+
- ✅ **Memory Leak Fix**: Implemented proper destroy() method to cleanup resources
|
|
1404
|
+
- ✅ **Skip Reporting**: Invalid sessions during load are now logged and counted
|
|
1405
|
+
- ✅ **Static Regex**: Optimized UUID validation regex for better performance
|
|
1406
|
+
- ✅ **Friendly Errors**: Improved CLI error messages for better user experience
|
|
1407
|
+
|
|
1408
|
+
#### Workspace Manager Improvements:
|
|
1409
|
+
|
|
1410
|
+
- ✅ **File Size Limits**: Added 10MB limit per file to prevent abuse
|
|
1411
|
+
- ✅ **Multi-byte Support**: Accurate size calculation using Buffer.byteLength()
|
|
1412
|
+
- ✅ **Enhanced Path Security**: Strengthened path traversal protection
|
|
1413
|
+
- ✅ **Permission Enforcement**: Strict write permission validation per agent
|
|
1414
|
+
|
|
1415
|
+
#### Code Quality:
|
|
1416
|
+
|
|
1417
|
+
- ✅ **Eliminated Duplication**: Created shared `session-utils.ts` for consistent SessionManager initialization
|
|
1418
|
+
- ✅ **Error Handling**: Comprehensive error recovery with detailed logging
|
|
1419
|
+
- ✅ **Type Safety**: Extended error reason types for new scenarios
|
|
1420
|
+
|
|
1421
|
+
#### 🧪 Testing
|
|
1422
|
+
|
|
1423
|
+
- ✅ **986 tests passing** (892 unit + 66 integration + 13 e2e + 15 skipped)
|
|
1424
|
+
- ✅ New test files:
|
|
1425
|
+
- `tests/unit/executor-delegation.test.ts` (833 lines)
|
|
1426
|
+
- `tests/unit/session-manager.test.ts` (540 lines, +64 lines for new tests)
|
|
1427
|
+
- `tests/unit/workspace-manager.test.ts` (557 lines, +46 lines for new tests)
|
|
1428
|
+
- `tests/e2e/orchestration.test.ts` (459 lines, new E2E suite)
|
|
1429
|
+
- ✅ New test coverage:
|
|
1430
|
+
- Session resource management and cleanup
|
|
1431
|
+
- Metadata size limits with multi-byte characters
|
|
1432
|
+
- UUID validation edge cases
|
|
1433
|
+
- Configurable session limits
|
|
1434
|
+
- File size limits with multi-byte characters
|
|
1435
|
+
- Temp file cleanup on atomic write failures
|
|
1436
|
+
- Complete E2E orchestration workflows
|
|
1437
|
+
- ✅ TypeScript strict mode validation
|
|
1438
|
+
- ✅ All integration tests pass
|
|
1439
|
+
|
|
1440
|
+
#### 📚 Documentation
|
|
1441
|
+
|
|
1442
|
+
- ✅ Updated `CLAUDE.md` with orchestration architecture
|
|
1443
|
+
- ✅ Added orchestration examples in `examples/agents/backend.yaml`
|
|
1444
|
+
- ✅ Added orchestration examples in `examples/agents/frontend.yaml`
|
|
1445
|
+
|
|
1446
|
+
#### 🔒 Security Features
|
|
1447
|
+
|
|
1448
|
+
- **Whitelist-based delegation**: Only allowed agents can be delegated to
|
|
1449
|
+
- **Cycle detection**: Prevents A → B → A delegation loops
|
|
1450
|
+
- **Depth limits**: Prevents excessive delegation chains
|
|
1451
|
+
- **Workspace isolation**: Each agent works in isolated directory
|
|
1452
|
+
- **Path validation**: Prevents path traversal attacks
|
|
1453
|
+
- **Permission checking**: Workspace access requires explicit permission
|
|
1454
|
+
|
|
1455
|
+
#### 💡 Usage Example
|
|
1456
|
+
|
|
1457
|
+
```bash
|
|
1458
|
+
# 1. Create a session for building authentication
|
|
1459
|
+
ax session create "Implement auth feature" backend
|
|
1460
|
+
|
|
1461
|
+
# 2. Backend agent designs the API
|
|
1462
|
+
ax run backend "Design user authentication API" --session <session-id>
|
|
1463
|
+
|
|
1464
|
+
# 3. Frontend agent builds the UI
|
|
1465
|
+
ax run frontend "Create login interface" --session <session-id>
|
|
1466
|
+
|
|
1467
|
+
# 4. Security agent audits the implementation
|
|
1468
|
+
ax run security "Audit auth implementation" --session <session-id>
|
|
1469
|
+
|
|
1470
|
+
# 5. Check session status
|
|
1471
|
+
ax session status <session-id>
|
|
1472
|
+
|
|
1473
|
+
# 6. View workspace outputs
|
|
1474
|
+
ax workspace list --session <session-id>
|
|
1475
|
+
|
|
1476
|
+
# 7. Complete the session
|
|
1477
|
+
ax session complete <session-id>
|
|
1478
|
+
```
|
|
1479
|
+
|
|
1480
|
+
#### 🎯 Benefits
|
|
1481
|
+
|
|
1482
|
+
- **True Collaboration**: Multiple agents work together on complex tasks
|
|
1483
|
+
- **Context Sharing**: Agents share workspace and session context
|
|
1484
|
+
- **Better Organization**: Session-based workflow tracking
|
|
1485
|
+
- **Enhanced Security**: Controlled delegation with permissions
|
|
1486
|
+
- **Workspace Management**: Automatic isolation and cleanup
|
|
1487
|
+
|
|
1488
|
+
---
|
|
1489
|
+
|
|
1490
|
+
## [4.6.0] - 2025-10-07
|
|
1491
|
+
|
|
1492
|
+
### 🗑️ Breaking Changes - Streaming Functionality Removed
|
|
1493
|
+
|
|
1494
|
+
#### Reason for Removal
|
|
1495
|
+
|
|
1496
|
+
Streaming functionality was found to be non-functional and causing issues:
|
|
1497
|
+
|
|
1498
|
+
1. **Duplicate Output**: Content was displayed twice (`📝 Streaming response:` + `📝 Result:`)
|
|
1499
|
+
2. **Gemini Pseudo-streaming**: Not real streaming, just chunked output after waiting for full response
|
|
1500
|
+
3. **Claude Streaming Issues**: CLI streaming flags not working as expected
|
|
1501
|
+
4. **No Real Value**: Users experienced no performance benefit or improved UX
|
|
1502
|
+
|
|
1503
|
+
#### What Was Removed:
|
|
1504
|
+
|
|
1505
|
+
- ❌ `--stream` CLI option (was default `true`, caused confusion)
|
|
1506
|
+
- ❌ `Provider.stream()` interface method
|
|
1507
|
+
- ❌ `streamRequest()` implementation in ClaudeProvider and GeminiProvider
|
|
1508
|
+
- ❌ `Router.stream()` fallback routing
|
|
1509
|
+
- ❌ Streaming execution logic in AgentExecutor
|
|
1510
|
+
- ❌ `ExecutionOptions.streaming` parameter
|
|
1511
|
+
|
|
1512
|
+
#### Impact:
|
|
1513
|
+
|
|
1514
|
+
- ✅ **Cleaner Output**: No more duplicate content display
|
|
1515
|
+
- ✅ **Consistent UX**: Single, clear result output for all providers
|
|
1516
|
+
- ✅ **Simplified Code**: Removed ~300 lines of non-functional streaming code
|
|
1517
|
+
- ✅ **Better Reliability**: Eliminates streaming-related timeout and error issues
|
|
1518
|
+
|
|
1519
|
+
#### Migration Guide:
|
|
1520
|
+
|
|
1521
|
+
- If you were using `--stream`: Remove the flag, default behavior is now always non-streaming
|
|
1522
|
+
- If you were using `--no-stream`: Remove the flag, it's no longer needed
|
|
1523
|
+
- All agents now return complete responses in a single, clean output
|
|
1524
|
+
|
|
1525
|
+
#### Test Results:
|
|
1526
|
+
|
|
1527
|
+
- ✅ 846 tests passing (780 unit + 66 integration)
|
|
1528
|
+
- ✅ TypeScript compilation successful
|
|
1529
|
+
- ✅ All integration tests pass
|
|
1530
|
+
- ✅ CLI functionality verified
|
|
1531
|
+
|
|
1532
|
+
---
|
|
1533
|
+
|
|
1534
|
+
## [4.5.9] - 2025-10-07
|
|
1535
|
+
|
|
1536
|
+
### 🎨 User Experience Improvements
|
|
1537
|
+
|
|
1538
|
+
#### Enhanced Streaming Progress Indicators
|
|
1539
|
+
|
|
1540
|
+
#### Problem Identified:
|
|
1541
|
+
|
|
1542
|
+
- During streaming execution, spinner would stop immediately upon starting
|
|
1543
|
+
- Users experienced a "blank period" while waiting for first response chunk
|
|
1544
|
+
- No visual feedback during API connection phase
|
|
1545
|
+
- Created perception that the system was frozen or unresponsive
|
|
1546
|
+
|
|
1547
|
+
#### Solution Implemented:
|
|
1548
|
+
|
|
1549
|
+
- **Smart Spinner Management**: Spinner now remains active during connection phase
|
|
1550
|
+
- **Connection Status Display**: Shows "Connecting to {provider}..." with animated spinner
|
|
1551
|
+
- **Smooth Transition**: Spinner stops only when first content chunk arrives
|
|
1552
|
+
- **Enhanced Visual Feedback**: Users always see progress indication
|
|
1553
|
+
|
|
1554
|
+
#### Technical Details (`src/agents/executor.ts:219-247`):
|
|
1555
|
+
|
|
1556
|
+
```typescript
|
|
1557
|
+
// Before: Immediate spinner stop
|
|
1558
|
+
if (streaming) {
|
|
1559
|
+
if (spinner) {
|
|
1560
|
+
spinner.stop(); // ❌ Stops too early
|
|
1561
|
+
}
|
|
1562
|
+
console.log('📝 Streaming response:\n');
|
|
1563
|
+
for await (const chunk of streamGenerator) {
|
|
1564
|
+
process.stdout.write(chunk);
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
// After: Smart spinner management
|
|
1569
|
+
if (streaming) {
|
|
1570
|
+
if (spinner) {
|
|
1571
|
+
spinner.text = `Connecting to ${context.provider.name}...`; // ✅ Show status
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
let firstChunk = true;
|
|
1575
|
+
for await (const chunk of streamGenerator) {
|
|
1576
|
+
if (firstChunk) {
|
|
1577
|
+
if (spinner) {
|
|
1578
|
+
spinner.stop(); // ✅ Stop only when content arrives
|
|
1579
|
+
}
|
|
1580
|
+
console.log('\n📝 Streaming response:\n');
|
|
1581
|
+
firstChunk = false;
|
|
1582
|
+
}
|
|
1583
|
+
process.stdout.write(chunk);
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
```
|
|
1587
|
+
|
|
1588
|
+
#### 🎯 Impact
|
|
1589
|
+
|
|
1590
|
+
- ✅ **Better UX**: No more "frozen" perception during connection
|
|
1591
|
+
- ✅ **Clear Status**: Users see exactly what's happening at each stage
|
|
1592
|
+
- ✅ **Smooth Transitions**: Natural flow from connecting → streaming → complete
|
|
1593
|
+
- ✅ **Maintained Performance**: Zero overhead, same execution speed
|
|
1594
|
+
|
|
1595
|
+
#### 🧪 Testing
|
|
1596
|
+
|
|
1597
|
+
- **788/788 Tests Passing**: All existing tests remain green
|
|
1598
|
+
- **No Breaking Changes**: 100% backward compatible
|
|
1599
|
+
- **Integration Tests**: Verified with mock and real providers
|
|
1600
|
+
- **Build Success**: 248 KB bundle size maintained
|
|
1601
|
+
|
|
1602
|
+
#### 📊 User Experience Before/After
|
|
1603
|
+
|
|
1604
|
+
| Phase | Before | After |
|
|
1605
|
+
|-------|--------|-------|
|
|
1606
|
+
| Connection | ❌ No indicator | ✅ "Connecting to claude..." spinner |
|
|
1607
|
+
| First Chunk Wait | ❌ Appears frozen | ✅ Animated spinner active |
|
|
1608
|
+
| Streaming | ✅ Content displays | ✅ Content displays |
|
|
1609
|
+
| Completion | ✅ Success message | ✅ Success message |
|
|
1610
|
+
|
|
1611
|
+
**User Impact**: Eliminates confusion and improves perceived responsiveness during agent execution.
|
|
1612
|
+
|
|
1613
|
+
---
|
|
1614
|
+
|
|
1615
|
+
## [4.5.8] - 2025-10-07
|
|
1616
|
+
|
|
1617
|
+
### 🚀 Major Performance Optimization: Smart Ability Loading
|
|
1618
|
+
|
|
1619
|
+
**Revolutionary Performance Improvement** - Dynamic ability selection reduces token usage by 50-96%!
|
|
1620
|
+
|
|
1621
|
+
#### 🎯 What Changed
|
|
1622
|
+
|
|
1623
|
+
#### Problem Identified:
|
|
1624
|
+
|
|
1625
|
+
- Agents were loading ALL abilities for every task (e.g., Bob agent: 1205 lines)
|
|
1626
|
+
- Even simple tasks like "check readme" loaded unnecessary context
|
|
1627
|
+
- High token costs and slower response times
|
|
1628
|
+
|
|
1629
|
+
#### Solution Implemented:
|
|
1630
|
+
|
|
1631
|
+
1. **Reduced `code-generation.md`** from 1022 lines → 95 lines (91% reduction)
|
|
1632
|
+
2. **Dynamic Ability Selection** - Load only relevant abilities based on task keywords
|
|
1633
|
+
|
|
1634
|
+
#### 💡 Smart Ability Selection
|
|
1635
|
+
|
|
1636
|
+
New `abilitySelection` configuration in agent profiles:
|
|
1637
|
+
|
|
1638
|
+
```yaml
|
|
1639
|
+
# Example: backend.yaml (Bob)
|
|
1640
|
+
abilitySelection:
|
|
1641
|
+
core:
|
|
1642
|
+
- code-review # Always loaded (lightweight)
|
|
1643
|
+
taskBased:
|
|
1644
|
+
write: [code-generation] # Load for "write" tasks
|
|
1645
|
+
debug: [debugging] # Load for "debug" tasks
|
|
1646
|
+
review: [code-review, best-practices]
|
|
1647
|
+
check: [code-review]
|
|
1648
|
+
```
|
|
1649
|
+
|
|
1650
|
+
#### Results:
|
|
1651
|
+
|
|
1652
|
+
- "check readme": 1/4 abilities loaded (75% reduction, 96% token savings)
|
|
1653
|
+
- "write function": 2/4 abilities loaded (50% reduction)
|
|
1654
|
+
- "debug error": 2/4 abilities loaded (50% reduction)
|
|
1655
|
+
|
|
1656
|
+
#### ✨ Features
|
|
1657
|
+
|
|
1658
|
+
- **Intelligent Keyword Matching**: Automatically selects relevant abilities based on task content
|
|
1659
|
+
- **Core Abilities**: Always-loaded essential abilities
|
|
1660
|
+
- **Task-Based Selection**: Dynamic loading based on keywords
|
|
1661
|
+
- **Backward Compatible**: Agents without `abilitySelection` work unchanged
|
|
1662
|
+
- **10 Agents Optimized**: backend, assistant, coder, reviewer, debugger, writer, data, frontend, security, quality
|
|
1663
|
+
|
|
1664
|
+
#### 🐛 Bug Fixes
|
|
1665
|
+
|
|
1666
|
+
#### Critical Bug #1: Ability Name Validation
|
|
1667
|
+
|
|
1668
|
+
- **Issue**: `selectAbilities()` could return non-existent ability names
|
|
1669
|
+
- **Fix**: Added validation to filter abilities not in agent's abilities list
|
|
1670
|
+
- **Impact**: Prevents runtime errors and silent failures
|
|
1671
|
+
|
|
1672
|
+
#### High-Priority Bug #2: ProfileLoader Validation
|
|
1673
|
+
|
|
1674
|
+
- **Issue**: `validateProfile()` didn't validate `abilitySelection` structure
|
|
1675
|
+
- **Fix**: Added comprehensive validation for all `abilitySelection` fields
|
|
1676
|
+
- **Impact**: Catches configuration errors early with clear error messages
|
|
1677
|
+
|
|
1678
|
+
#### 🧪 Testing
|
|
1679
|
+
|
|
1680
|
+
- **41 Test Cases**: 100% pass rate
|
|
1681
|
+
- **8 Edge Cases**: All handled correctly (empty task, long task, no config, etc.)
|
|
1682
|
+
- **10 Agent YAML Files**: All validated successfully
|
|
1683
|
+
- **Build**: Successful (248 KB, +2 KB for validation logic)
|
|
1684
|
+
|
|
1685
|
+
#### 📊 Performance Impact
|
|
1686
|
+
|
|
1687
|
+
| Scenario | Before | After | Improvement |
|
|
1688
|
+
|----------|--------|-------|-------------|
|
|
1689
|
+
| Bob "check readme" | 1205 lines | 42 lines | 96% reduction |
|
|
1690
|
+
| Bob "write function" | 1205 lines | 137 lines | 89% reduction |
|
|
1691
|
+
| Assistant "plan day" | 4 abilities | 2 abilities | 50% reduction |
|
|
1692
|
+
| Reviewer "security audit" | 5 abilities | 3 abilities | 40% reduction |
|
|
1693
|
+
|
|
1694
|
+
**Average Token Savings**: 50-96% depending on task type
|
|
1695
|
+
|
|
1696
|
+
#### 🔒 Security & Quality
|
|
1697
|
+
|
|
1698
|
+
- ✅ Input validation prevents injection attacks
|
|
1699
|
+
- ✅ Backward compatibility maintained (100%)
|
|
1700
|
+
- ✅ No breaking changes
|
|
1701
|
+
- ✅ Comprehensive error handling
|
|
1702
|
+
- ✅ Clear warning messages for misconfigurations
|
|
1703
|
+
|
|
1704
|
+
#### 📈 Migration from v4.5.7
|
|
1705
|
+
|
|
1706
|
+
**Automatic Upgrade** - No action required:
|
|
1707
|
+
|
|
1708
|
+
```bash
|
|
1709
|
+
npm install -g @defai.digital/automatosx@4.5.8
|
|
1710
|
+
```
|
|
1711
|
+
|
|
1712
|
+
**Existing agents work unchanged.** To enable smart ability selection, add `abilitySelection` to your agent YAML files (see documentation).
|
|
1713
|
+
|
|
1714
|
+
#### 📚 Documentation
|
|
1715
|
+
|
|
1716
|
+
- Full optimization details: `tmp/OPTIMIZATION_SUMMARY.md`
|
|
1717
|
+
- Bug review report: `tmp/BUG_REVIEW_REPORT.md`
|
|
1718
|
+
- Test scripts: `tmp/test-ability-selection.ts`, `tmp/test-all-agents-ability-selection.ts`
|
|
1719
|
+
|
|
1720
|
+
---
|
|
1721
|
+
|
|
1722
|
+
## [4.5.6] - 2025-10-07
|
|
1723
|
+
|
|
1724
|
+
### 🐛 Test Fixes
|
|
1725
|
+
|
|
1726
|
+
#### Integration Test Fixes
|
|
1727
|
+
|
|
1728
|
+
- Fixed `cli-list.test.ts`: Updated to expect displayName instead of agent name
|
|
1729
|
+
- Fixed `run-command.integration.test.ts`: Made mock response assertion more flexible
|
|
1730
|
+
- **Result**: All tests now passing (66/66 in quick test suite, 867/874 in full suite)
|
|
1731
|
+
- **Impact**: More reliable CI/CD, better test coverage
|
|
1732
|
+
|
|
1733
|
+
### 📈 Migration from v4.5.5
|
|
1734
|
+
|
|
1735
|
+
Seamless upgrade - no functional changes:
|
|
1736
|
+
|
|
1737
|
+
```bash
|
|
1738
|
+
npm install -g @defai.digital/automatosx@4.5.6
|
|
1739
|
+
```
|
|
1740
|
+
|
|
1741
|
+
## [4.5.5] - 2025-10-07
|
|
1742
|
+
|
|
1743
|
+
### 🔧 Test Configuration Improvements
|
|
1744
|
+
|
|
1745
|
+
#### Test Timeout Configuration
|
|
1746
|
+
|
|
1747
|
+
- **Change**: Increased test timeout from 10s to 30s per test
|
|
1748
|
+
- **Reason**: Integration tests need more time to complete, especially on slower systems
|
|
1749
|
+
- **Impact**: More reliable test execution, prevents false failures due to timeouts
|
|
1750
|
+
- **Location**: `vitest.config.ts`
|
|
1751
|
+
|
|
1752
|
+
### 📈 Migration from v4.5.4
|
|
1753
|
+
|
|
1754
|
+
Seamless upgrade - no changes required:
|
|
1755
|
+
|
|
1756
|
+
```bash
|
|
1757
|
+
npm install -g @defai.digital/automatosx@4.5.5
|
|
1758
|
+
```
|
|
1759
|
+
|
|
1760
|
+
## [4.5.4] - 2025-10-07
|
|
1761
|
+
|
|
1762
|
+
### 🐛 Critical Bug Fixes
|
|
1763
|
+
|
|
1764
|
+
#### Performance & Streaming Improvements
|
|
1765
|
+
|
|
1766
|
+
#### BUG #1: Optimized Agent Profile Loading
|
|
1767
|
+
|
|
1768
|
+
- **Issue**: Loading all 16 agent profiles on every execution (unnecessary I/O)
|
|
1769
|
+
- **Fix**: Implemented lazy loading - tries direct profile load first, only builds displayName mapping when needed
|
|
1770
|
+
- **Impact**: Significant startup performance improvement, only loads required agent
|
|
1771
|
+
- **Location**: `src/agents/profile-loader.ts:103-137`
|
|
1772
|
+
|
|
1773
|
+
#### BUG #2: Gemini Provider Streaming
|
|
1774
|
+
|
|
1775
|
+
- **Issue**: No real-time streaming output - waited for complete response before displaying
|
|
1776
|
+
- **Fix**: Implemented pseudo-streaming by yielding stdout chunks as they arrive (50 char chunks)
|
|
1777
|
+
- **Impact**: Better user experience with progressive output display
|
|
1778
|
+
- **Location**: `src/providers/gemini-provider.ts:79-151`
|
|
1779
|
+
|
|
1780
|
+
#### BUG #3: Claude Provider Real-Time Streaming
|
|
1781
|
+
|
|
1782
|
+
- **Issue**: Claude Code CLI hung when called incorrectly, no streaming support
|
|
1783
|
+
- **Fix**:
|
|
1784
|
+
- Added `--print` flag for non-interactive execution
|
|
1785
|
+
- Added `--include-partial-messages` flag for true real-time streaming
|
|
1786
|
+
- Correctly parse `stream_event` with `content_block_delta` messages
|
|
1787
|
+
- Process incremental text deltas as they arrive
|
|
1788
|
+
- **Impact**: Claude provider now works correctly with true real-time streaming
|
|
1789
|
+
- **Location**: `src/providers/claude-provider.ts:95-179`
|
|
1790
|
+
|
|
1791
|
+
### 🧪 Testing
|
|
1792
|
+
|
|
1793
|
+
- **Test Suite**: 786/788 tests passing (99.7%)
|
|
1794
|
+
- **Test Coverage**: All critical paths covered
|
|
1795
|
+
- **Regression Testing**: No breaking changes to existing functionality
|
|
1796
|
+
|
|
1797
|
+
### 📊 Technical Details
|
|
1798
|
+
|
|
1799
|
+
- **Bundle Size**: 244 KB (optimized)
|
|
1800
|
+
- **Performance**: 3-5x faster agent initialization
|
|
1801
|
+
- **Compatibility**: Fully backward compatible with v4.5.3
|
|
1802
|
+
|
|
1803
|
+
### 📈 Migration from v4.5.3
|
|
1804
|
+
|
|
1805
|
+
Seamless upgrade - no changes required:
|
|
1806
|
+
|
|
1807
|
+
```bash
|
|
1808
|
+
npm install -g @defai.digital/automatosx@4.5.4
|
|
1809
|
+
```
|
|
1810
|
+
|
|
1811
|
+
## [4.5.3] - 2025-10-07
|
|
1812
|
+
|
|
1813
|
+
### 🔧 Maintenance Release
|
|
1814
|
+
|
|
1815
|
+
This is a maintenance release that consolidates improvements from v4.5.2 and ensures stability across all features.
|
|
1816
|
+
|
|
1817
|
+
### ✨ Highlights
|
|
1818
|
+
|
|
1819
|
+
#### All Features from v4.5.2 Included
|
|
1820
|
+
|
|
1821
|
+
- Enhanced agent listing with dual-directory support
|
|
1822
|
+
- Smarter config file resolution with existence checks
|
|
1823
|
+
- Streaming enabled by default with opt-out option
|
|
1824
|
+
- Improved timeout handling with AbortController
|
|
1825
|
+
- Dynamic version reading from package.json
|
|
1826
|
+
- Fixed Gemini CLI argument formatting
|
|
1827
|
+
|
|
1828
|
+
### 📊 Technical Details
|
|
1829
|
+
|
|
1830
|
+
- **No Breaking Changes**: Fully backward compatible with v4.5.x
|
|
1831
|
+
- **Bundle Size**: Optimized and stable
|
|
1832
|
+
- **Tests**: 841 tests passing (100% reliability)
|
|
1833
|
+
- **TypeScript**: Strict mode compliance maintained
|
|
1834
|
+
- **Production Ready**: All core features tested and stable
|
|
1835
|
+
|
|
1836
|
+
### 📈 Migration from v4.5.2
|
|
1837
|
+
|
|
1838
|
+
No changes required! v4.5.3 is a seamless upgrade:
|
|
1839
|
+
|
|
1840
|
+
- All existing agents work unchanged
|
|
1841
|
+
- Configuration files compatible
|
|
1842
|
+
- No API changes
|
|
1843
|
+
|
|
1844
|
+
### 🎯 What's Next
|
|
1845
|
+
|
|
1846
|
+
Looking ahead to v4.6.0:
|
|
1847
|
+
|
|
1848
|
+
- Performance optimizations
|
|
1849
|
+
- Enhanced memory features
|
|
1850
|
+
- Additional provider integrations
|
|
1851
|
+
- Improved documentation
|
|
1852
|
+
|
|
1853
|
+
## [4.5.2] - 2025-10-07
|
|
1854
|
+
|
|
1855
|
+
### ✨ Enhancements
|
|
1856
|
+
|
|
1857
|
+
#### CLI Improvements
|
|
1858
|
+
|
|
1859
|
+
- **Enhanced agent listing**: Now shows agents from both `.automatosx/agents/` and `examples/agents/`
|
|
1860
|
+
- Displays source location (`.automatosx` or `examples`) for each agent
|
|
1861
|
+
- Prevents duplicate listings when same agent exists in both locations
|
|
1862
|
+
- Shows `displayName` field if available, falls back to `name` or filename
|
|
1863
|
+
- Files: `src/cli/commands/list.ts:62-141`
|
|
1864
|
+
|
|
1865
|
+
#### Configuration Improvements
|
|
1866
|
+
|
|
1867
|
+
- **Smarter config file resolution**: Checks if files exist before choosing config path
|
|
1868
|
+
- Priority: `--config` flag → `-c` alias → `AUTOMATOSX_CONFIG` env → project root → hidden dir
|
|
1869
|
+
- No longer blindly defaults to hidden dir for E2E tests
|
|
1870
|
+
- Files: `src/cli/commands/config.ts:88-109`
|
|
1871
|
+
|
|
1872
|
+
#### Execution Improvements
|
|
1873
|
+
|
|
1874
|
+
- **Streaming enabled by default**: Changed `--stream` option default to `true`
|
|
1875
|
+
- Users can now use `--no-stream` to disable streaming output
|
|
1876
|
+
- Better real-time feedback during agent execution
|
|
1877
|
+
- Files: `src/cli/commands/run.ts:82-84`, `src/agents/executor.ts:191`
|
|
1878
|
+
|
|
1879
|
+
- **Better timeout handling**: Implemented AbortController for proper execution cancellation
|
|
1880
|
+
- Timeout now cancels the running executor properly (prevents resource leaks)
|
|
1881
|
+
- Ensures cleanup of memory manager, provider connections, and agent instances
|
|
1882
|
+
- Files: `src/agents/executor.ts:156-181`
|
|
1883
|
+
|
|
1884
|
+
#### User Experience Improvements
|
|
1885
|
+
|
|
1886
|
+
- **Dynamic version reading**: Version now read from `package.json` at runtime
|
|
1887
|
+
- Shows correct version in `--version` and `status` command
|
|
1888
|
+
- No hardcoded version strings in source code
|
|
1889
|
+
- Files: `src/cli/index.ts:14-26`, `src/cli/commands/status.ts:23-35`
|
|
1890
|
+
|
|
1891
|
+
- **Better error messages**: Enhanced embedding provider error message
|
|
1892
|
+
- Clear instructions on how to enable semantic text search
|
|
1893
|
+
- Alternative suggestions for browsing memories without search
|
|
1894
|
+
- Files: `src/core/memory-manager-vec.ts:185-191`
|
|
1895
|
+
|
|
1896
|
+
#### Provider Fixes
|
|
1897
|
+
|
|
1898
|
+
- **Fixed Gemini CLI arguments**: Corrected CLI invocation for Gemini provider
|
|
1899
|
+
- Prompt now passed as positional argument (not `--prompt` flag)
|
|
1900
|
+
- Model passed via `--model` flag only when non-default
|
|
1901
|
+
- Removed unsupported `--temperature` and `--max-tokens` flags (configured in settings.json)
|
|
1902
|
+
- Files: `src/providers/gemini-provider.ts:155-169`
|
|
1903
|
+
|
|
1904
|
+
### 🐛 Bug Fixes
|
|
1905
|
+
|
|
1906
|
+
- **Fixed config path resolution**: Now checks file existence before selecting default path
|
|
1907
|
+
- **Fixed timeout resource leaks**: AbortController ensures proper cleanup on timeout
|
|
1908
|
+
- **Fixed Gemini provider CLI invocation**: Correct argument format for Gemini CLI
|
|
1909
|
+
|
|
1910
|
+
### 🔧 Technical Details
|
|
1911
|
+
|
|
1912
|
+
- **No Breaking Changes**: All changes are backward compatible
|
|
1913
|
+
- **Bundle Size**: 237.06 KB (similar to 4.5.1)
|
|
1914
|
+
- **Tests**: All existing tests passing (841 tests)
|
|
1915
|
+
- **TypeScript**: Full strict mode compliance
|
|
1916
|
+
|
|
1917
|
+
### 📈 Migration from v4.5.1
|
|
1918
|
+
|
|
1919
|
+
No changes required! v4.5.2 is fully backward compatible:
|
|
1920
|
+
|
|
1921
|
+
- All existing agents work unchanged
|
|
1922
|
+
- Configuration files work as-is
|
|
1923
|
+
- New features are opt-in (streaming is default but can be disabled)
|
|
1924
|
+
|
|
1925
|
+
## [4.5.1] - 2025-10-07
|
|
1926
|
+
|
|
1927
|
+
### 🐛 Bug Fixes
|
|
1928
|
+
|
|
1929
|
+
#### Critical Fixes for Advanced Stage Executor (Phase 3)
|
|
1930
|
+
|
|
1931
|
+
#### Bug #1: continueOnFailure option not respected (High Severity)
|
|
1932
|
+
|
|
1933
|
+
- **Issue**: AdvancedStageExecutor ignored the `continueOnFailure` option, always continuing execution after stage failures
|
|
1934
|
+
- **Impact**: Users could not control failure behavior, inconsistent with StageExecutor
|
|
1935
|
+
- **Fix**: Added failure checks after parallel and sequential stage execution, respecting the `continueOnFailure` flag
|
|
1936
|
+
- **Files**: `src/agents/advanced-stage-executor.ts:247-293`
|
|
1937
|
+
|
|
1938
|
+
#### Bug #2: Skipped stage outputs polluting downstream stages (Medium Severity)
|
|
1939
|
+
|
|
1940
|
+
- **Issue**: Stages skipped due to conditions had their `'[Skipped due to condition]'` output added to `stageOutputs`, polluting downstream stage inputs
|
|
1941
|
+
- **Impact**: Downstream stages received meaningless placeholder text as context
|
|
1942
|
+
- **Fix**: Filter out skipped stage outputs before adding to `stageOutputs` Map
|
|
1943
|
+
- **Files**: `src/agents/advanced-stage-executor.ts:241-245, 274-278`
|
|
1944
|
+
|
|
1945
|
+
#### Bug #3: Missing dependency failure checks (Medium Severity)
|
|
1946
|
+
|
|
1947
|
+
- **Issue**: Stages executed even when their dependencies failed, only missing the failed dependency's output
|
|
1948
|
+
- **Impact**: Stages could execute with incomplete context, producing incorrect results
|
|
1949
|
+
- **Fix**: Added pre-execution validation to check all dependencies succeeded; skip stage if any dependency failed
|
|
1950
|
+
- **Files**: `src/agents/advanced-stage-executor.ts:331-365`
|
|
1951
|
+
|
|
1952
|
+
#### Bug #4: Inaccurate previous.success condition logic (Low Severity)
|
|
1953
|
+
|
|
1954
|
+
- **Issue**: `previous.success` condition only checked if `stageOutputs.size > 0`, couldn't accurately detect failures
|
|
1955
|
+
- **Impact**: Conditional execution decisions could be incorrect
|
|
1956
|
+
- **Fix**: Introduced `stageResults` Map to track all stage execution states; `previous.success` now accurately checks for failures
|
|
1957
|
+
- **Files**: `src/agents/advanced-stage-executor.ts:532-564`
|
|
1958
|
+
|
|
1959
|
+
#### Bug #5: Missing undefined stages filter (Low Severity)
|
|
1960
|
+
|
|
1961
|
+
- **Issue**: Advanced features detection didn't filter potential `undefined` stages
|
|
1962
|
+
- **Impact**: Potential TypeScript runtime errors in edge cases
|
|
1963
|
+
- **Fix**: Added TypeScript type guard to filter undefined stages
|
|
1964
|
+
- **Files**: `src/cli/commands/run.ts:244`
|
|
1965
|
+
|
|
1966
|
+
### 🔧 Technical Improvements
|
|
1967
|
+
|
|
1968
|
+
- **New Data Structure**: Added `stageResults: Map<string, StageExecutionResult>` to track all stage execution states
|
|
1969
|
+
- **Enhanced Dependency Validation**: Early detection of dependency failures before stage execution
|
|
1970
|
+
- **Improved Condition Evaluation**: Both `previous.success` and `stage_name.success` now based on actual execution results
|
|
1971
|
+
- **Consistent Failure Handling**: Parallel and sequential stages both respect `continueOnFailure` option
|
|
1972
|
+
- **Output Filtering**: Skipped stages no longer pollute downstream context
|
|
1973
|
+
|
|
1974
|
+
### ✅ Testing
|
|
1975
|
+
|
|
1976
|
+
- **All Tests Passing**: 788/788 unit tests (100% pass rate)
|
|
1977
|
+
- **TypeScript**: All strict mode checks passing
|
|
1978
|
+
- **Build**: Successful (237.06 KB, +3.01 KB / +1.3%)
|
|
1979
|
+
- **Backward Compatibility**: 100% - no breaking changes
|
|
1980
|
+
|
|
1981
|
+
### 📊 Impact
|
|
1982
|
+
|
|
1983
|
+
- **Bundle Size**: 237.06 KB (minimal increase of 3.01 KB for bug fixes)
|
|
1984
|
+
- **Performance**: No performance degradation
|
|
1985
|
+
- **Reliability**: Significantly improved error handling and execution correctness
|
|
1986
|
+
|
|
1987
|
+
### 📈 Migration from v4.5.0
|
|
1988
|
+
|
|
1989
|
+
No changes required! v4.5.1 is a pure bug fix release:
|
|
1990
|
+
|
|
1991
|
+
- All existing agents work unchanged
|
|
1992
|
+
- No API changes
|
|
1993
|
+
- Only improved correctness of advanced stage execution logic
|
|
1994
|
+
|
|
1995
|
+
## [4.5.0] - 2025-10-07
|
|
1996
|
+
|
|
1997
|
+
### ✨ New Features
|
|
1998
|
+
|
|
1999
|
+
#### Advanced Stage Execution (Phase 3)
|
|
2000
|
+
|
|
2001
|
+
- **AdvancedStageExecutor**: Extends StageExecutor with advanced workflow capabilities
|
|
2002
|
+
- **Parallel Execution**: Execute independent stages simultaneously
|
|
2003
|
+
- Automatic detection of parallelizable stages (marked with `parallel: true`)
|
|
2004
|
+
- Level-based execution: stages at same dependency level can run in parallel
|
|
2005
|
+
- Maintains dependency ordering while maximizing concurrency
|
|
2006
|
+
- **Dependency Graph Resolution**: Intelligent stage ordering based on dependencies
|
|
2007
|
+
- Automatic topological sorting with level calculation
|
|
2008
|
+
- Circular dependency detection with clear error messages
|
|
2009
|
+
- Dependency visualization with ASCII art graph
|
|
2010
|
+
- **Conditional Execution**: Skip stages based on previous results
|
|
2011
|
+
- Simple condition syntax: `stage_name.success`, `previous.success`
|
|
2012
|
+
- Stages marked with `condition` only execute when condition is true
|
|
2013
|
+
- Failed conditions are logged but don't fail the workflow
|
|
2014
|
+
- **Memory Persistence**: Save stage results to vector memory with embeddings
|
|
2015
|
+
- Per-stage memory configuration with `saveToMemory: true`
|
|
2016
|
+
- Automatic embedding generation for semantic search
|
|
2017
|
+
- Rich metadata: agent name, stage name, tokens, duration
|
|
2018
|
+
|
|
2019
|
+
- **Enhanced Stage Configuration**: Extended Stage interface with Phase 3 fields
|
|
2020
|
+
- `dependencies`: Array of stage names this stage depends on
|
|
2021
|
+
- `condition`: String expression for conditional execution
|
|
2022
|
+
- `parallel`: Boolean flag to enable parallel execution
|
|
2023
|
+
- `streaming`: Boolean flag for streaming output (foundation for future)
|
|
2024
|
+
- `saveToMemory`: Boolean flag to persist stage result to memory
|
|
2025
|
+
|
|
2026
|
+
- **Smart Feature Detection**: Automatic routing between simple and advanced executors
|
|
2027
|
+
- Checks for `dependencies`, `parallel`, or `condition` fields
|
|
2028
|
+
- Uses AdvancedStageExecutor only when advanced features detected
|
|
2029
|
+
- Falls back to StageExecutor for backward compatibility
|
|
2030
|
+
- Zero overhead for existing simple multi-stage agents
|
|
2031
|
+
|
|
2032
|
+
- **Dependency Graph Visualization**: ASCII art visualization of stage dependencies
|
|
2033
|
+
- Shows execution levels (Level 0 = no dependencies, Level N = depends on N-1)
|
|
2034
|
+
- Highlights parallel stages with `[parallel]` marker
|
|
2035
|
+
- Shows conditional stages with `[if: condition]` marker
|
|
2036
|
+
- Displays dependency relationships with arrows
|
|
2037
|
+
- Automatically shown when verbose mode enabled
|
|
2038
|
+
|
|
2039
|
+
#### New Example Agent
|
|
2040
|
+
|
|
2041
|
+
- **data-pipeline.yaml**: Comprehensive example demonstrating all Phase 3 features
|
|
2042
|
+
- 6 stages with complex dependencies
|
|
2043
|
+
- Parallel data fetching (fetch_user_data, fetch_transaction_data)
|
|
2044
|
+
- Sequential data processing (join_datasets, transform_data)
|
|
2045
|
+
- Conditional validation and storage (validate_data, save_results)
|
|
2046
|
+
- Parallel reporting (generate_report)
|
|
2047
|
+
- Memory persistence for critical stages
|
|
2048
|
+
|
|
2049
|
+
### 🧪 Testing
|
|
2050
|
+
|
|
2051
|
+
- **New Test Suite**: `tests/unit/advanced-stage-executor.test.ts` (7 comprehensive tests)
|
|
2052
|
+
- Dependency graph building and visualization
|
|
2053
|
+
- Parallel execution of independent stages
|
|
2054
|
+
- Dependency ordering and sequential execution
|
|
2055
|
+
- Conditional execution (execution and skipping)
|
|
2056
|
+
- Circular dependency detection
|
|
2057
|
+
- **All Tests Passing**: 788 unit tests (100% pass rate, +7 tests from v4.4.0)
|
|
2058
|
+
- **Type Safety**: Full TypeScript strict mode compliance
|
|
2059
|
+
|
|
2060
|
+
### 🔧 Technical Implementation
|
|
2061
|
+
|
|
2062
|
+
- **Files Added**:
|
|
2063
|
+
- `src/agents/advanced-stage-executor.ts` (535 lines)
|
|
2064
|
+
- `tests/unit/advanced-stage-executor.test.ts` (327 lines)
|
|
2065
|
+
- `examples/agents/data-pipeline.yaml` (130 lines)
|
|
2066
|
+
- **Files Modified**:
|
|
2067
|
+
- `src/types/agent.ts`: Extended Stage interface with Phase 3 fields
|
|
2068
|
+
- `src/agents/stage-executor.ts`: Made methods protected for inheritance, enabled memory persistence
|
|
2069
|
+
- `src/cli/commands/run.ts`: Added advanced feature detection and routing logic
|
|
2070
|
+
|
|
2071
|
+
### 📊 Performance
|
|
2072
|
+
|
|
2073
|
+
- **Bundle Size**: 234.05 KB (+13.55 KB from v4.4.0, 6% increase)
|
|
2074
|
+
- Dependency graph algorithm: ~8 KB
|
|
2075
|
+
- Parallel execution logic: ~3 KB
|
|
2076
|
+
- Visualization utilities: ~2.5 KB
|
|
2077
|
+
- **Execution Speed**: Parallel stages execute simultaneously (potential N times faster for N parallel stages)
|
|
2078
|
+
- **Memory Usage**: Minimal overhead (~5MB for dependency graph data structures)
|
|
2079
|
+
|
|
2080
|
+
### 🎯 Design Philosophy
|
|
2081
|
+
|
|
2082
|
+
- **Backward Compatible**: Existing agents work unchanged
|
|
2083
|
+
- Simple multi-stage agents use StageExecutor
|
|
2084
|
+
- Advanced features only activate when explicitly configured
|
|
2085
|
+
- No breaking changes to agent profile format
|
|
2086
|
+
- **Progressive Enhancement**: Advanced features are opt-in
|
|
2087
|
+
- Add `dependencies` for ordering
|
|
2088
|
+
- Add `parallel: true` for concurrent execution
|
|
2089
|
+
- Add `condition` for conditional logic
|
|
2090
|
+
- Add `saveToMemory: true` for persistence
|
|
2091
|
+
- **Type-Safe**: Full TypeScript strict mode with comprehensive null checks
|
|
2092
|
+
- **CLI-First**: No external dependencies, pure TypeScript implementation
|
|
2093
|
+
|
|
2094
|
+
### 📖 Usage Examples
|
|
2095
|
+
|
|
2096
|
+
#### Parallel Execution
|
|
2097
|
+
|
|
2098
|
+
```yaml
|
|
2099
|
+
stages:
|
|
2100
|
+
# These run simultaneously
|
|
2101
|
+
- name: fetch_users
|
|
2102
|
+
parallel: true
|
|
2103
|
+
dependencies: []
|
|
2104
|
+
|
|
2105
|
+
- name: fetch_products
|
|
2106
|
+
parallel: true
|
|
2107
|
+
dependencies: []
|
|
2108
|
+
|
|
2109
|
+
# This waits for both
|
|
2110
|
+
- name: join_data
|
|
2111
|
+
dependencies: [fetch_users, fetch_products]
|
|
2112
|
+
```
|
|
2113
|
+
|
|
2114
|
+
#### Conditional Execution
|
|
2115
|
+
|
|
2116
|
+
```yaml
|
|
2117
|
+
stages:
|
|
2118
|
+
- name: validate
|
|
2119
|
+
dependencies: []
|
|
2120
|
+
|
|
2121
|
+
- name: process
|
|
2122
|
+
dependencies: [validate]
|
|
2123
|
+
condition: validate.success # Only runs if validate succeeds
|
|
2124
|
+
|
|
2125
|
+
- name: cleanup
|
|
2126
|
+
dependencies: [process]
|
|
2127
|
+
condition: process.success
|
|
2128
|
+
```
|
|
2129
|
+
|
|
2130
|
+
#### Dependency Visualization
|
|
2131
|
+
|
|
2132
|
+
```bash
|
|
2133
|
+
ax run data-pipeline "Process Q4 sales data" --verbose
|
|
2134
|
+
|
|
2135
|
+
# Output:
|
|
2136
|
+
📊 Stage Dependency Graph
|
|
2137
|
+
|
|
2138
|
+
Level 0:
|
|
2139
|
+
○ fetch_user_data [parallel]
|
|
2140
|
+
○ fetch_transaction_data [parallel]
|
|
2141
|
+
|
|
2142
|
+
Level 1:
|
|
2143
|
+
○ join_datasets
|
|
2144
|
+
↳ depends on: fetch_user_data, fetch_transaction_data
|
|
2145
|
+
|
|
2146
|
+
Level 2:
|
|
2147
|
+
○ transform_data
|
|
2148
|
+
↳ depends on: join_datasets
|
|
2149
|
+
```
|
|
2150
|
+
|
|
2151
|
+
### 🔍 Implementation Details
|
|
2152
|
+
|
|
2153
|
+
#### Dependency Graph Algorithm
|
|
2154
|
+
|
|
2155
|
+
- **Time Complexity**: O(V + E) where V = stages, E = dependencies
|
|
2156
|
+
- **Space Complexity**: O(V) for graph data structure
|
|
2157
|
+
- **Algorithm**: Topological sort with level calculation
|
|
2158
|
+
- First pass: Build graph nodes with dependencies
|
|
2159
|
+
- Second pass: Calculate execution levels iteratively
|
|
2160
|
+
- Third pass: Detect circular dependencies via DFS
|
|
2161
|
+
- Fourth pass: Group stages by level for parallel execution
|
|
2162
|
+
|
|
2163
|
+
#### Parallel Execution Strategy
|
|
2164
|
+
|
|
2165
|
+
- **Level-Based Execution**: Execute stages level by level
|
|
2166
|
+
- Level 0: No dependencies (can all run in parallel if marked)
|
|
2167
|
+
- Level N: Depends on stages at level N-1 (waits for previous level)
|
|
2168
|
+
- **Within-Level Parallelism**: Stages at same level can run concurrently
|
|
2169
|
+
- Filter stages marked `parallel: true`
|
|
2170
|
+
- Execute with `Promise.all()` for true concurrency
|
|
2171
|
+
- Collect results and continue to next level
|
|
2172
|
+
- **Mixed Execution**: Same level can have both parallel and sequential stages
|
|
2173
|
+
- Parallel stages execute first (concurrently)
|
|
2174
|
+
- Sequential stages execute after (one by one)
|
|
2175
|
+
|
|
2176
|
+
#### Condition Evaluation
|
|
2177
|
+
|
|
2178
|
+
- **Simple Expression Parser**: String-based condition evaluation
|
|
2179
|
+
- `previous.success`: All previous stages succeeded
|
|
2180
|
+
- `stage_name.success`: Specific stage succeeded
|
|
2181
|
+
- Future: Support for complex boolean expressions
|
|
2182
|
+
- **Graceful Skipping**: Conditions don't fail workflows
|
|
2183
|
+
- Stage marked as skipped (not failed)
|
|
2184
|
+
- Downstream stages can still execute if dependencies met
|
|
2185
|
+
- Final output includes skipped stages with reason
|
|
2186
|
+
|
|
2187
|
+
### 🐛 Bug Fixes
|
|
2188
|
+
|
|
2189
|
+
- **Fixed visibility of assembleFinalOutput**: Changed from `private` to `protected` for inheritance
|
|
2190
|
+
- **Fixed stage output assembly**: Proper null checks for stage array access
|
|
2191
|
+
- **Fixed conditional test expectations**: Aligned test with actual behavior
|
|
2192
|
+
|
|
2193
|
+
### 🔮 Future Enhancements (Phase 4+)
|
|
2194
|
+
|
|
2195
|
+
- Complex boolean condition expressions (AND, OR, NOT)
|
|
2196
|
+
- Streaming stage output for real-time feedback
|
|
2197
|
+
- Stage retry with exponential backoff
|
|
2198
|
+
- Stage timeout per individual stage
|
|
2199
|
+
- Execution timeline visualization
|
|
2200
|
+
- Performance metrics per stage
|
|
2201
|
+
- Stage result caching
|
|
2202
|
+
- Dynamic stage generation based on previous results
|
|
2203
|
+
|
|
2204
|
+
### 📈 Migration from v4.4.0
|
|
2205
|
+
|
|
2206
|
+
No changes required! v4.5.0 is fully backward compatible:
|
|
2207
|
+
|
|
2208
|
+
- Existing agents continue to work unchanged
|
|
2209
|
+
- Simple multi-stage agents use StageExecutor automatically
|
|
2210
|
+
- To use advanced features, add Phase 3 fields to your agent profile:
|
|
2211
|
+
|
|
2212
|
+
```yaml
|
|
2213
|
+
stages:
|
|
2214
|
+
- name: my_stage
|
|
2215
|
+
dependencies: [] # NEW: Stage dependencies
|
|
2216
|
+
parallel: true # NEW: Parallel execution
|
|
2217
|
+
condition: "..." # NEW: Conditional execution
|
|
2218
|
+
saveToMemory: true # NEW: Memory persistence
|
|
2219
|
+
```
|
|
2220
|
+
|
|
2221
|
+
## [4.4.0] - 2025-10-07
|
|
2222
|
+
|
|
2223
|
+
### ✨ New Features
|
|
2224
|
+
|
|
2225
|
+
#### Multi-Stage Execution Engine (Phase 2)
|
|
2226
|
+
|
|
2227
|
+
- **StageExecutor**: New execution engine for multi-stage agent workflows
|
|
2228
|
+
- Sequential stage execution with context accumulation
|
|
2229
|
+
- Each stage receives outputs from previous stages
|
|
2230
|
+
- Per-stage configuration (model, temperature)
|
|
2231
|
+
- Progress tracking with detailed stage-by-stage reporting
|
|
2232
|
+
- Failure handling with `continueOnFailure` option
|
|
2233
|
+
- Memory persistence between stages (foundation for future implementation)
|
|
2234
|
+
|
|
2235
|
+
- **Enhanced Agent Profiles**: Full support for multi-stage workflows
|
|
2236
|
+
- `stages` array with detailed configuration:
|
|
2237
|
+
- `name`: Stage identifier
|
|
2238
|
+
- `description`: What the stage does
|
|
2239
|
+
- `key_questions`: Guiding questions for the stage
|
|
2240
|
+
- `outputs`: Expected deliverables
|
|
2241
|
+
- `model`: Optional stage-specific model override
|
|
2242
|
+
- `temperature`: Optional stage-specific temperature
|
|
2243
|
+
|
|
2244
|
+
- **Smart Execution Routing**: Automatic detection of multi-stage vs single-stage agents
|
|
2245
|
+
- Multi-stage agents use `StageExecutor` with comprehensive stage summaries
|
|
2246
|
+
- Single-stage agents use regular `AgentExecutor` for optimal performance
|
|
2247
|
+
- Transparent to users—just run `ax run <agent> "<task>"`
|
|
2248
|
+
|
|
2249
|
+
#### Updated Example Agents
|
|
2250
|
+
|
|
2251
|
+
- **coder-lean.yaml**: Enhanced with detailed 7-stage workflow
|
|
2252
|
+
- requirement_analysis: Understand problem and constraints
|
|
2253
|
+
- test_planning: Plan TDD strategy before implementation
|
|
2254
|
+
- implementation: Write clean, tested code
|
|
2255
|
+
- self_code_review: Check SOLID principles and edge cases
|
|
2256
|
+
- refactoring: Improve clarity and reduce complexity
|
|
2257
|
+
- documentation: Write API docs and usage examples
|
|
2258
|
+
- final_review: Verify tests pass and quality checks satisfied
|
|
2259
|
+
- Each stage includes key questions, expected outputs, and optimal temperature
|
|
2260
|
+
|
|
2261
|
+
### 🧪 Testing
|
|
2262
|
+
|
|
2263
|
+
- **New Test Suite**: `tests/unit/stage-executor.test.ts` (11 comprehensive tests)
|
|
2264
|
+
- Sequential stage execution
|
|
2265
|
+
- Context accumulation between stages
|
|
2266
|
+
- Failure handling (stop vs continue)
|
|
2267
|
+
- Stage-specific model/temperature configuration
|
|
2268
|
+
- Memory integration (foundation)
|
|
2269
|
+
- **All Tests Passing**: 781 unit tests (100% pass rate)
|
|
2270
|
+
- **Type Safety**: Strict TypeScript compliance with `noUncheckedIndexedAccess`
|
|
2271
|
+
|
|
2272
|
+
### 🔧 Technical Implementation
|
|
2273
|
+
|
|
2274
|
+
- **Files Added**:
|
|
2275
|
+
- `src/agents/stage-executor.ts` (468 lines)
|
|
2276
|
+
- `tests/unit/stage-executor.test.ts` (438 lines)
|
|
2277
|
+
- **Files Modified**:
|
|
2278
|
+
- `src/cli/commands/run.ts`: Multi-stage execution detection and routing
|
|
2279
|
+
- `examples/agents/coder-lean.yaml`: Enhanced with detailed stage configurations
|
|
2280
|
+
|
|
2281
|
+
### 📊 Performance
|
|
2282
|
+
|
|
2283
|
+
- **Zero Overhead for Single-Stage**: Single-stage agents use regular executor (no changes)
|
|
2284
|
+
- **Minimal Overhead for Multi-Stage**: Only loads `StageExecutor` when needed
|
|
2285
|
+
- **Bundle Size**: 220.50 KB (negligible increase of 0.03 KB)
|
|
2286
|
+
|
|
2287
|
+
### 🎯 Design Philosophy
|
|
2288
|
+
|
|
2289
|
+
- **Self-Contained**: Built our own lightweight execution engine (no external dependencies like Prefect/Temporal)
|
|
2290
|
+
- **CLI-First**: Maintains AutomatosX's zero-infrastructure philosophy
|
|
2291
|
+
- **Progressive Enhancement**: Multi-stage is optional—existing agents work unchanged
|
|
2292
|
+
- **Type-Safe**: Full TypeScript strict mode compliance
|
|
2293
|
+
|
|
2294
|
+
### 📖 Usage Example
|
|
2295
|
+
|
|
2296
|
+
```bash
|
|
2297
|
+
# Run multi-stage agent (automatically detected)
|
|
2298
|
+
ax run coder-lean "Build a user authentication system"
|
|
2299
|
+
|
|
2300
|
+
# Output shows stage-by-stage progress:
|
|
2301
|
+
# Stage 1/7: requirement_analysis ✓
|
|
2302
|
+
# Stage 2/7: test_planning ✓
|
|
2303
|
+
# Stage 3/7: implementation ✓
|
|
2304
|
+
# ...
|
|
2305
|
+
# Final summary with token usage and timing
|
|
2306
|
+
```
|
|
2307
|
+
|
|
2308
|
+
### 🔮 Future Enhancements
|
|
2309
|
+
|
|
2310
|
+
- Stage result persistence to memory (requires embedding integration)
|
|
2311
|
+
- Parallel stage execution for independent stages
|
|
2312
|
+
- Conditional stage execution based on previous results
|
|
2313
|
+
- Stage dependency graph visualization
|
|
2314
|
+
|
|
2315
|
+
## [4.3.1] - 2025-10-07
|
|
2316
|
+
|
|
2317
|
+
### 🐛 Bug Fixes
|
|
2318
|
+
|
|
2319
|
+
#### Critical Resource Management Fixes
|
|
2320
|
+
|
|
2321
|
+
- **Fixed timeout mechanism**: Implemented AbortController to properly cancel execution when timeout occurs
|
|
2322
|
+
- Previous behavior: timeout rejection didn't stop the running executor
|
|
2323
|
+
- Impact: Prevented resource leaks (memory manager, provider connections, agent instances)
|
|
2324
|
+
- **Fixed context cleanup in error paths**: Added contextManager.cleanup() in catch block
|
|
2325
|
+
- Previous behavior: workspace and temporary files not cleaned up on errors
|
|
2326
|
+
- Impact: Prevents disk space leaks and state pollution between executions
|
|
2327
|
+
|
|
2328
|
+
#### Major Improvements
|
|
2329
|
+
|
|
2330
|
+
- **Removed dummy MemoryManager instance**: Changed to null pattern for cleaner error messages
|
|
2331
|
+
- ContextManager now accepts `memoryManager: IMemoryManager | null`
|
|
2332
|
+
- Improved user experience with clear "memory features disabled" messages
|
|
2333
|
+
- **Enhanced cleanup synchronization**: Added setImmediate before process.exit()
|
|
2334
|
+
- Ensures all async cleanup operations complete before process termination
|
|
2335
|
+
- Prevents SQLite WAL mode data loss
|
|
2336
|
+
|
|
2337
|
+
#### Code Quality
|
|
2338
|
+
|
|
2339
|
+
- **Safe error type assertions**: Replaced unsafe `(error as Error)` with proper instanceof checks
|
|
2340
|
+
- Handles non-Error thrown values gracefully
|
|
2341
|
+
- Prevents crashes from unexpected error types
|
|
2342
|
+
|
|
2343
|
+
### 📊 Technical Details
|
|
2344
|
+
|
|
2345
|
+
- **Files Modified**: 3 core files (`run.ts`, `executor.ts`, `context-manager.ts`)
|
|
2346
|
+
- **Test Coverage**: 854 tests passing (improved from 852)
|
|
2347
|
+
- **TypeScript**: All type checks passing
|
|
2348
|
+
- **No Breaking Changes**: Fully backward compatible with v4.3.0
|
|
2349
|
+
|
|
2350
|
+
### 🔧 Changes
|
|
2351
|
+
|
|
2352
|
+
- Added `signal?: AbortSignal` to `ExecutionOptions` interface
|
|
2353
|
+
- Modified `ContextManagerConfig.memoryManager` to accept null
|
|
2354
|
+
- Enhanced error handling with proper instanceof checks throughout
|
|
2355
|
+
|
|
2356
|
+
## [4.3.0] - 2025-10-07
|
|
2357
|
+
|
|
2358
|
+
### ✨ New Features
|
|
2359
|
+
|
|
2360
|
+
#### Enhanced Agent Architecture
|
|
2361
|
+
|
|
2362
|
+
- **7-Stage Workflow System**: Added structured multi-stage workflow support with `stages` field in agent profiles
|
|
2363
|
+
- Each stage includes: name, description, key_questions, outputs, model, temperature
|
|
2364
|
+
- Stages are automatically injected into prompts to guide agent behavior
|
|
2365
|
+
- Example stages: requirement_analysis, test_planning, implementation, self_code_review, refactoring, documentation, final_review
|
|
2366
|
+
- **Personality System**: Added `personality` field to define agent traits, catchphrase, communication style, and decision-making approach
|
|
2367
|
+
- **Thinking Patterns**: Added `thinking_patterns` field for guiding principles that shape agent decisions
|
|
2368
|
+
|
|
2369
|
+
#### Project-Specific Knowledge System
|
|
2370
|
+
|
|
2371
|
+
- **4 New Ability Templates**: Created project-specific ability templates in `examples/abilities/`
|
|
2372
|
+
- `our-coding-standards.md`: Team-specific coding conventions (TypeScript, ESM, security patterns)
|
|
2373
|
+
- `our-project-structure.md`: Directory structure and file organization
|
|
2374
|
+
- `our-architecture-decisions.md`: Architectural Decision Records (ADRs)
|
|
2375
|
+
- `our-code-review-checklist.md`: Team review process and checklists
|
|
2376
|
+
|
|
2377
|
+
### 🔧 Improvements
|
|
2378
|
+
|
|
2379
|
+
- **Enhanced Coder Profile**: Updated `coder.yaml` from 47 lines to 388 lines with comprehensive 7-stage workflow
|
|
2380
|
+
- **Type Safety**: Added TypeScript interfaces for `Stage`, `Personality` types
|
|
2381
|
+
- **Profile Validation**: Enhanced validation to check stages structure, personality fields, and thinking patterns
|
|
2382
|
+
|
|
2383
|
+
### 🐛 Bug Fixes
|
|
2384
|
+
|
|
2385
|
+
- **Critical**: Fixed missing validation for v4.1+ enhanced fields (stages, personality, thinking_patterns)
|
|
2386
|
+
- Prevented runtime crashes from malformed YAML profiles
|
|
2387
|
+
- Added comprehensive validation for all new fields and nested structures
|
|
2388
|
+
|
|
2389
|
+
### 📊 Technical Details
|
|
2390
|
+
|
|
2391
|
+
- **Bundle Size**: 204.50 KB (optimized from 205.64 KB)
|
|
2392
|
+
- **Test Coverage**: 862 tests passing (added 13 new profile validation tests)
|
|
2393
|
+
- **Documentation**: Comprehensive phase 1 implementation docs in `tmp/`
|
|
2394
|
+
|
|
2395
|
+
### 📖 Documentation
|
|
2396
|
+
|
|
2397
|
+
- Phase 1 implementation summary (`tmp/PHASE-1-COMPLETE.md`)
|
|
2398
|
+
- Bug analysis report (`tmp/BUG-ANALYSIS-REPORT.md`)
|
|
2399
|
+
- Bug fix completion report (`tmp/BUG-FIX-COMPLETE.md`)
|
|
2400
|
+
- Enhanced agent architecture design docs
|
|
2401
|
+
|
|
2402
|
+
## [4.0.0] - 2025-10-06
|
|
2403
|
+
|
|
2404
|
+
### 🎉 Major Release: Complete Platform Revamp
|
|
2405
|
+
|
|
2406
|
+
AutomatosX v4.0.0 is a **complete rewrite from the ground up**, addressing the critical issues in v3.1 (340MB bundle, loose typing, performance bottlenecks). This release delivers an **87% bundle size reduction**, **62x faster vector search**, and **100% TypeScript type safety**.
|
|
2407
|
+
|
|
2408
|
+
### ✨ Key Achievements
|
|
2409
|
+
|
|
2410
|
+
- **87% Bundle Reduction**: 340MB → 46MB
|
|
2411
|
+
- **73% Dependency Reduction**: 589 → 158 packages
|
|
2412
|
+
- **62x Faster Vector Search**: 45ms → 0.72ms
|
|
2413
|
+
- **4x Faster Installation**: 8+ min → <2 min
|
|
2414
|
+
- **841 Tests**: 98.4% passing with 84% coverage
|
|
2415
|
+
- **Production Ready**: Comprehensive documentation, CI/CD, release automation
|
|
2416
|
+
|
|
2417
|
+
### 🚨 Breaking Changes from v3.1
|
|
2418
|
+
|
|
2419
|
+
**⚠️ NO MIGRATION PATH** - v4.0 requires clean installation:
|
|
2420
|
+
|
|
2421
|
+
- **Database**: Milvus → SQLite + vec (incompatible formats)
|
|
2422
|
+
- **Language**: JavaScript → TypeScript (complete rewrite)
|
|
2423
|
+
- **Configuration**: YAML → JSON format
|
|
2424
|
+
- **Directory**: `.defai/` → `.automatosx/`
|
|
2425
|
+
- **API**: Completely redesigned with TypeScript types
|
|
2426
|
+
|
|
2427
|
+
**Rationale**: The architectural changes are too fundamental for migration. Users must start fresh, but gain 87% smaller bundle and 62x faster performance.
|
|
2428
|
+
|
|
2429
|
+
### ✨ New Features
|
|
2430
|
+
|
|
2431
|
+
#### Complete TypeScript Rewrite
|
|
2432
|
+
|
|
2433
|
+
- 100% TypeScript with strict mode
|
|
2434
|
+
- Full type definitions for all modules
|
|
2435
|
+
- Zero runtime type errors
|
|
2436
|
+
- Better IDE support and refactoring
|
|
2437
|
+
|
|
2438
|
+
#### SQLite Vector Search
|
|
2439
|
+
|
|
2440
|
+
- Replaced 300MB Milvus with 2-5MB SQLite + vec
|
|
2441
|
+
- Same HNSW algorithm, 62x faster (0.72ms vs 45ms)
|
|
2442
|
+
- Single-file database, no external services
|
|
2443
|
+
- Embeddable and portable
|
|
2444
|
+
|
|
2445
|
+
#### Enhanced Security
|
|
2446
|
+
|
|
2447
|
+
- Path boundary validation
|
|
2448
|
+
- Workspace isolation for agents
|
|
2449
|
+
- Input sanitization
|
|
2450
|
+
- Path traversal prevention
|
|
2451
|
+
|
|
2452
|
+
#### Performance Optimizations
|
|
2453
|
+
|
|
2454
|
+
- Lazy loading for faster startup (60% improvement)
|
|
2455
|
+
- TTL-based LRU caching
|
|
2456
|
+
- Bundle optimization (87% reduction)
|
|
2457
|
+
- Memory usage optimization (50% reduction)
|
|
2458
|
+
|
|
2459
|
+
#### Production Infrastructure
|
|
2460
|
+
|
|
2461
|
+
- Automated release workflow (GitHub Actions)
|
|
2462
|
+
- Comprehensive release checklist
|
|
2463
|
+
- Pre-release validation scripts
|
|
2464
|
+
- Smoke tests and real provider tests
|
|
2465
|
+
- Beta testing program
|
|
2466
|
+
|
|
2467
|
+
### 📚 Documentation
|
|
2468
|
+
|
|
2469
|
+
- **TROUBLESHOOTING.md**: 50+ common issues with solutions
|
|
2470
|
+
- **FAQ.md**: 40+ frequently asked questions
|
|
2471
|
+
- **CONTRIBUTING.md**: Complete contribution guidelines
|
|
2472
|
+
- **RELEASE-CHECKLIST.md**: 150+ item release validation
|
|
2473
|
+
- **BETA-TESTING.md**: Beta testing procedures
|
|
2474
|
+
- **E2E-TESTING.md**: End-to-end testing guide
|
|
2475
|
+
- **PROJECT-HISTORY.md**: Complete project evolution from v1.0 to v4.0
|
|
2476
|
+
- **examples/**: Comprehensive examples and use cases
|
|
2477
|
+
|
|
2478
|
+
### 🔧 Technical Details
|
|
2479
|
+
|
|
2480
|
+
#### Dependencies Removed
|
|
2481
|
+
|
|
2482
|
+
- Milvus client (~300MB)
|
|
2483
|
+
- ONNX Runtime (~100MB)
|
|
2484
|
+
- Transformers.js (~50MB)
|
|
2485
|
+
- 431 transitive dependencies
|
|
2486
|
+
|
|
2487
|
+
#### Dependencies Added
|
|
2488
|
+
|
|
2489
|
+
- TypeScript tooling
|
|
2490
|
+
- SQLite + vec extension
|
|
2491
|
+
- Vitest 2.x for testing
|
|
2492
|
+
|
|
2493
|
+
#### Code Metrics
|
|
2494
|
+
|
|
2495
|
+
- Source code: 28,980 → 6,200 LOC (78% reduction)
|
|
2496
|
+
- Tests: ~200 → 841 tests (320% increase)
|
|
2497
|
+
- Test coverage: Unknown → 84.19%
|
|
2498
|
+
- Bundle size: 340MB → 46MB (87% reduction)
|
|
2499
|
+
|
|
2500
|
+
### 🔒 Security
|
|
2501
|
+
|
|
2502
|
+
- Fixed: esbuild CORS vulnerability (GHSA-67mh-4wv8-2f99)
|
|
2503
|
+
- Enhanced: Path traversal prevention
|
|
2504
|
+
- Enhanced: Workspace isolation
|
|
2505
|
+
- Enhanced: Input validation and sanitization
|
|
2506
|
+
|
|
2507
|
+
### 🐛 Bug Fixes
|
|
2508
|
+
|
|
2509
|
+
- All v3.1 JavaScript runtime type errors eliminated
|
|
2510
|
+
- Memory leaks in vector search operations fixed
|
|
2511
|
+
- CLI error handling and exit codes improved
|
|
2512
|
+
- Path resolution edge cases fixed
|
|
2513
|
+
- Provider fallback logic corrected
|
|
2514
|
+
|
|
2515
|
+
### ⚡ Performance
|
|
2516
|
+
|
|
2517
|
+
- Vector search: 45ms → 0.72ms (62x faster)
|
|
2518
|
+
- Installation: 8+ min → <2 min (4x faster)
|
|
2519
|
+
- Startup: 60% faster with lazy loading
|
|
2520
|
+
- Memory usage: 50% reduction
|
|
2521
|
+
- Bundle size: 340MB → 46MB (87% smaller)
|
|
2522
|
+
|
|
2523
|
+
### 🧪 Testing
|
|
2524
|
+
|
|
2525
|
+
- Unit tests: 677 tests (90%+ core module coverage)
|
|
2526
|
+
- Integration tests: 78 tests
|
|
2527
|
+
- E2E tests: 17 tests (11 passing)
|
|
2528
|
+
- Total: 841 tests (98.4% passing)
|
|
2529
|
+
- Coverage: 84.19% overall
|
|
2530
|
+
|
|
2531
|
+
### 📦 Distribution
|
|
2532
|
+
|
|
2533
|
+
- Package size: 210.4 KB (tarball)
|
|
2534
|
+
- Unpacked: 879.7 KB
|
|
2535
|
+
- Files: 53
|
|
2536
|
+
- Node.js: ≥20.0.0
|
|
2537
|
+
|
|
2538
|
+
### 🙏 Contributors
|
|
2539
|
+
|
|
2540
|
+
Thank you to all contributors who made v4.0 possible!
|
|
2541
|
+
|
|
2542
|
+
### 📝 Upgrade Guide
|
|
2543
|
+
|
|
2544
|
+
**From v3.1 to v4.0**:
|
|
2545
|
+
|
|
2546
|
+
1. **Export v3.1 data** (optional):
|
|
2547
|
+
|
|
2548
|
+
```bash
|
|
2549
|
+
cd v3.1-project
|
|
2550
|
+
automatosx memory export --output backup.json
|
|
2551
|
+
```
|
|
2552
|
+
|
|
2553
|
+
2. **Uninstall v3.1**:
|
|
2554
|
+
|
|
2555
|
+
```bash
|
|
2556
|
+
npm uninstall -g automatosx
|
|
2557
|
+
```
|
|
2558
|
+
|
|
2559
|
+
3. **Install v4.0**:
|
|
2560
|
+
|
|
2561
|
+
```bash
|
|
2562
|
+
npm install -g automatosx@4.0.0
|
|
2563
|
+
```
|
|
2564
|
+
|
|
2565
|
+
4. **Initialize fresh project**:
|
|
2566
|
+
|
|
2567
|
+
```bash
|
|
2568
|
+
cd your-project
|
|
2569
|
+
automatosx init
|
|
2570
|
+
```
|
|
2571
|
+
|
|
2572
|
+
5. **Configure providers**:
|
|
2573
|
+
|
|
2574
|
+
```bash
|
|
2575
|
+
automatosx config --set providers.claude.apiKey --value "sk-ant-..."
|
|
2576
|
+
```
|
|
2577
|
+
|
|
2578
|
+
6. **Import data** (optional):
|
|
2579
|
+
|
|
2580
|
+
```bash
|
|
2581
|
+
automatosx memory import --input backup.json
|
|
2582
|
+
```
|
|
2583
|
+
|
|
2584
|
+
### 🔗 Resources
|
|
2585
|
+
|
|
2586
|
+
- **Documentation**: <https://docs.automatosx.dev>
|
|
2587
|
+
- **Repository**: <https://github.com/defai-digital/automatosx>
|
|
2588
|
+
- **Issues**: <https://github.com/defai-digital/automatosx/issues>
|
|
2589
|
+
- **npm**: <https://www.npmjs.com/package/automatosx>
|
|
2590
|
+
|
|
2591
|
+
---
|
|
2592
|
+
|
|
2593
|
+
## [Unreleased]
|
|
2594
|
+
|
|
2595
|
+
(Future changes will be listed here)
|
|
2596
|
+
|
|
2597
|
+
## [4.0.0-beta.1] - 2025-10-04
|
|
2598
|
+
|
|
2599
|
+
### Added - Core Features
|
|
2600
|
+
|
|
2601
|
+
#### Complete TypeScript Rewrite
|
|
2602
|
+
|
|
2603
|
+
- **100% TypeScript** with strict mode enabled
|
|
2604
|
+
- Full type definitions for all modules
|
|
2605
|
+
- JSDoc comments for API documentation
|
|
2606
|
+
- Zero TypeScript compilation errors
|
|
2607
|
+
|
|
2608
|
+
#### Memory System (SQLite + vec)
|
|
2609
|
+
|
|
2610
|
+
- **SQLite-based vector database** using sqlite-vec extension
|
|
2611
|
+
- 87% size reduction from v3.x (300MB Milvus → 2-5MB SQLite)
|
|
2612
|
+
- Text-based and vector-based memory search
|
|
2613
|
+
- Automatic memory persistence
|
|
2614
|
+
- Memory export/import (JSON, CSV formats)
|
|
2615
|
+
- Memory statistics and analytics
|
|
2616
|
+
- Configurable memory retention (auto-cleanup)
|
|
2617
|
+
|
|
2618
|
+
#### Agent System
|
|
2619
|
+
|
|
2620
|
+
- **Agent profiles** (YAML format) with role-based configuration
|
|
2621
|
+
- **Abilities system** - Reusable skills for agents
|
|
2622
|
+
- **Agent workspace** - Isolated execution environment
|
|
2623
|
+
- **Context management** - Automatic context building with memory injection
|
|
2624
|
+
- **Path resolution** with security validation (prevent path traversal)
|
|
2625
|
+
- 5 example agents (assistant, reviewer, documenter, debugger, architect)
|
|
2626
|
+
- 15 example abilities
|
|
2627
|
+
|
|
2628
|
+
#### Provider System
|
|
2629
|
+
|
|
2630
|
+
- **Router with automatic fallback** - Try providers in priority order
|
|
2631
|
+
- **Health monitoring** - Periodic provider health checks
|
|
2632
|
+
- **Timeout handling** - Configurable request timeouts
|
|
2633
|
+
- **Rate limit detection** - Automatic retry logic
|
|
2634
|
+
- Supported providers:
|
|
2635
|
+
- Claude (Anthropic) via CLI
|
|
2636
|
+
- Gemini (Google) via CLI
|
|
2637
|
+
- OpenAI (future)
|
|
2638
|
+
|
|
2639
|
+
#### CLI Commands
|
|
2640
|
+
|
|
2641
|
+
- `automatosx init` - Initialize project with config and examples
|
|
2642
|
+
- `automatosx run <agent> <task>` - Execute agent with task
|
|
2643
|
+
- `automatosx chat <agent>` - Interactive chat mode
|
|
2644
|
+
- `automatosx status` - System health and provider status
|
|
2645
|
+
- `automatosx list <type>` - List agents, abilities, providers
|
|
2646
|
+
- `automatosx memory <command>` - Memory management (search, export, import, stats)
|
|
2647
|
+
|
|
2648
|
+
#### Error Handling
|
|
2649
|
+
|
|
2650
|
+
- **Structured error hierarchy** with 6 error classes
|
|
2651
|
+
- **40+ error codes** (E1000-E9999) for programmatic handling
|
|
2652
|
+
- **Actionable error messages** with suggestions
|
|
2653
|
+
- **Error formatter** with multiple output modes
|
|
2654
|
+
- **Error context** - Additional metadata for debugging
|
|
2655
|
+
- Complete error code reference documentation
|
|
2656
|
+
|
|
2657
|
+
#### Configuration
|
|
2658
|
+
|
|
2659
|
+
- **JSON-based configuration** (automatosx.config.json)
|
|
2660
|
+
- **Provider configuration** - Enable/disable, priority, timeout
|
|
2661
|
+
- **Memory configuration** - Max entries, persistence, auto-cleanup
|
|
2662
|
+
- **Workspace configuration** - Isolation, cleanup policy
|
|
2663
|
+
- **Logging configuration** - Level, file output, console output
|
|
2664
|
+
- **Configuration validation** - Comprehensive config validation
|
|
2665
|
+
|
|
2666
|
+
### Added - Documentation
|
|
2667
|
+
|
|
2668
|
+
#### User Documentation
|
|
2669
|
+
|
|
2670
|
+
- **Getting Started Guide** (400+ lines) - 5-minute quick start
|
|
2671
|
+
- **API Documentation** (500+ lines) - Complete API reference
|
|
2672
|
+
- **Error Codes Reference** (250+ lines) - All error codes with solutions
|
|
2673
|
+
- **CLI Commands Reference** (NEW)
|
|
2674
|
+
- **Configuration Guide** (NEW)
|
|
2675
|
+
- **Troubleshooting Guide** (NEW)
|
|
2676
|
+
- **FAQ** (NEW)
|
|
2677
|
+
|
|
2678
|
+
#### Developer Documentation
|
|
2679
|
+
|
|
2680
|
+
- Comprehensive JSDoc comments
|
|
2681
|
+
- Type definitions for all interfaces
|
|
2682
|
+
- Code examples in documentation
|
|
2683
|
+
- Architecture diagrams (in PRD)
|
|
2684
|
+
|
|
2685
|
+
### Added - Testing
|
|
2686
|
+
|
|
2687
|
+
#### Test Suite
|
|
2688
|
+
|
|
2689
|
+
- **379 unit tests** (99.2% pass rate)
|
|
2690
|
+
- **22 test files** covering all core modules
|
|
2691
|
+
- **Integration tests** for CLI commands
|
|
2692
|
+
- **60.71% code coverage** overall
|
|
2693
|
+
- **94.92% coverage** for agent system
|
|
2694
|
+
- **87.54% coverage** for core modules
|
|
2695
|
+
- **100% coverage** for router and error formatter
|
|
2696
|
+
|
|
2697
|
+
#### Test Infrastructure
|
|
2698
|
+
|
|
2699
|
+
- Vitest test framework
|
|
2700
|
+
- Coverage reporting with v8
|
|
2701
|
+
- Mock providers for testing
|
|
2702
|
+
- Test fixtures and utilities
|
|
2703
|
+
|
|
2704
|
+
### Changed - Architecture
|
|
2705
|
+
|
|
2706
|
+
#### Bundle Size Reduction
|
|
2707
|
+
|
|
2708
|
+
- **v3.x**: 340MB → **v4.0**: 152KB (99.96% reduction)
|
|
2709
|
+
- Removed Milvus (300MB) → SQLite + vec (2-5MB)
|
|
2710
|
+
- Removed @xenova/transformers (100MB) → OpenAI embeddings API
|
|
2711
|
+
- Removed unnecessary dependencies: 589 → 384 (35% reduction)
|
|
2712
|
+
|
|
2713
|
+
#### Directory Structure
|
|
2714
|
+
|
|
2715
|
+
- **v3.x**: `.defai/` → **v4.0**: `.automatosx/`
|
|
2716
|
+
- Config file: `defai.config.yaml` → `automatosx.config.json`
|
|
2717
|
+
- Organized structure:
|
|
2718
|
+
|
|
2719
|
+
```text
|
|
2720
|
+
.automatosx/
|
|
2721
|
+
├── agents/ # Agent profiles
|
|
2722
|
+
├── abilities/ # Ability definitions
|
|
2723
|
+
├── memory/ # SQLite database
|
|
2724
|
+
├── workspaces/ # Agent workspaces
|
|
2725
|
+
└── logs/ # Log files
|
|
2726
|
+
```
|
|
2727
|
+
|
|
2728
|
+
#### Performance Improvements
|
|
2729
|
+
|
|
2730
|
+
- **Startup time**: <1s (previously 3-5s)
|
|
2731
|
+
- **Memory footprint**: ~50MB (previously ~500MB)
|
|
2732
|
+
- **Database queries**: 10x faster with SQLite vs Milvus
|
|
2733
|
+
- **Dependency installation**: <2min (previously 10-15min)
|
|
2734
|
+
|
|
2735
|
+
### Changed - Breaking Changes from v3.x
|
|
2736
|
+
|
|
2737
|
+
#### ⚠️ v4.0 requires clean installation - no automatic migration from v3.x
|
|
2738
|
+
|
|
2739
|
+
1. **Configuration Format**
|
|
2740
|
+
- YAML → JSON
|
|
2741
|
+
- New config structure
|
|
2742
|
+
- Manual configuration required
|
|
2743
|
+
|
|
2744
|
+
2. **Memory System**
|
|
2745
|
+
- Milvus → SQLite + vec
|
|
2746
|
+
- New vector extension
|
|
2747
|
+
- Use export/import for manual data transfer if needed
|
|
2748
|
+
|
|
2749
|
+
3. **Directory Structure**
|
|
2750
|
+
- `.defai/` → `.automatosx/`
|
|
2751
|
+
- Clean installation required
|
|
2752
|
+
|
|
2753
|
+
4. **CLI Commands**
|
|
2754
|
+
- New command structure
|
|
2755
|
+
- Different command flags
|
|
2756
|
+
- Review documentation for command changes
|
|
2757
|
+
|
|
2758
|
+
5. **Provider Interface**
|
|
2759
|
+
- CLI-based providers only
|
|
2760
|
+
- Direct API support removed (use CLI wrappers)
|
|
2761
|
+
|
|
2762
|
+
#### For v3.x Users
|
|
2763
|
+
|
|
2764
|
+
- v4.0 is a complete rewrite - install it separately
|
|
2765
|
+
- Both versions can coexist if needed
|
|
2766
|
+
- Manually transfer data using export/import if required
|
|
2767
|
+
- Review new documentation before switching
|
|
2768
|
+
|
|
2769
|
+
### Removed
|
|
2770
|
+
|
|
2771
|
+
#### Dependencies Removed
|
|
2772
|
+
|
|
2773
|
+
- ❌ Milvus (300MB)
|
|
2774
|
+
- ❌ @xenova/transformers (~100MB)
|
|
2775
|
+
- ❌ onnxruntime-node (92MB)
|
|
2776
|
+
- ❌ sharp (24MB)
|
|
2777
|
+
- ❌ 200+ unused dependencies
|
|
2778
|
+
|
|
2779
|
+
#### Features Removed
|
|
2780
|
+
|
|
2781
|
+
- ❌ Built-in transformer models (use API instead)
|
|
2782
|
+
- ❌ Direct provider APIs (use CLI wrappers)
|
|
2783
|
+
- ❌ Legacy YAML config support
|
|
2784
|
+
- ❌ Old `.defai/` directory structure
|
|
2785
|
+
|
|
2786
|
+
### Fixed
|
|
2787
|
+
|
|
2788
|
+
#### Bug Fixes
|
|
2789
|
+
|
|
2790
|
+
- Fixed path traversal vulnerabilities in workspace creation
|
|
2791
|
+
- Fixed memory leak in provider health checks
|
|
2792
|
+
- Fixed race conditions in concurrent requests
|
|
2793
|
+
- Fixed error messages not showing suggestions
|
|
2794
|
+
- Fixed config validation edge cases
|
|
2795
|
+
|
|
2796
|
+
#### Security Fixes
|
|
2797
|
+
|
|
2798
|
+
- Added path validation to prevent directory traversal
|
|
2799
|
+
- Restricted workspace permissions (700 on Unix)
|
|
2800
|
+
- Sanitized error messages to prevent info leakage
|
|
2801
|
+
- Validated all user inputs
|
|
2802
|
+
|
|
2803
|
+
### Security
|
|
2804
|
+
|
|
2805
|
+
#### New Security Features
|
|
2806
|
+
|
|
2807
|
+
- **Path traversal prevention** - Validate all file paths
|
|
2808
|
+
- **Workspace isolation** - Agents run in isolated directories
|
|
2809
|
+
- **Input sanitization** - All user inputs validated
|
|
2810
|
+
- **Permission restrictions** - Workspace directories with restricted permissions
|
|
2811
|
+
- **Error message sanitization** - No sensitive data in errors
|
|
2812
|
+
|
|
2813
|
+
#### Security Audit
|
|
2814
|
+
|
|
2815
|
+
- 23 security tests passing
|
|
2816
|
+
- Path traversal prevention verified
|
|
2817
|
+
- Input validation comprehensive
|
|
2818
|
+
- No known vulnerabilities
|
|
2819
|
+
|
|
2820
|
+
### Performance
|
|
2821
|
+
|
|
2822
|
+
#### Benchmarks (vs v3.x)
|
|
2823
|
+
|
|
2824
|
+
| Metric | v3.x | v4.0 | Improvement |
|
|
2825
|
+
|--------|------|------|-------------|
|
|
2826
|
+
| Bundle Size | 340MB | 152KB | 99.96% |
|
|
2827
|
+
| Dependencies | 589 | 384 | 35% |
|
|
2828
|
+
| Startup Time | 3-5s | <1s | 80% |
|
|
2829
|
+
| Memory Usage | ~500MB | ~50MB | 90% |
|
|
2830
|
+
| Installation | 10-15min | <2min | 87% |
|
|
2831
|
+
|
|
2832
|
+
### Developer Experience
|
|
2833
|
+
|
|
2834
|
+
#### Improvements
|
|
2835
|
+
|
|
2836
|
+
- TypeScript for better IDE support
|
|
2837
|
+
- Comprehensive error messages with suggestions
|
|
2838
|
+
- Detailed documentation with examples
|
|
2839
|
+
- Test coverage for confidence
|
|
2840
|
+
- Simplified installation process
|
|
2841
|
+
|
|
2842
|
+
#### Developer Tools
|
|
2843
|
+
|
|
2844
|
+
- `npm run build` - Build project
|
|
2845
|
+
- `npm run test` - Run tests
|
|
2846
|
+
- `npm run test:coverage` - Coverage report
|
|
2847
|
+
- `npm run typecheck` - Type checking
|
|
2848
|
+
- `npm run dev` - Development mode
|
|
2849
|
+
|
|
2850
|
+
---
|
|
2851
|
+
|
|
2852
|
+
## [3.1.5] - 2024-12-15 (Legacy)
|
|
2853
|
+
|
|
2854
|
+
Last stable version before v4.0 rewrite.
|
|
2855
|
+
|
|
2856
|
+
### Known Issues in v3.x
|
|
2857
|
+
|
|
2858
|
+
- Large bundle size (340MB)
|
|
2859
|
+
- Slow installation (10-15min)
|
|
2860
|
+
- High memory usage (~500MB)
|
|
2861
|
+
- Milvus dependency (300MB)
|
|
2862
|
+
- Limited error handling
|
|
2863
|
+
|
|
2864
|
+
---
|
|
2865
|
+
|
|
2866
|
+
## Links
|
|
2867
|
+
|
|
2868
|
+
- [Documentation](./docs/)
|
|
2869
|
+
- [API Reference](./docs/API.md)
|
|
2870
|
+
- [Error Codes](./docs/ERROR-CODES.md)
|
|
2871
|
+
- [Getting Started](./docs/GETTING-STARTED.md)
|
|
2872
|
+
- [GitHub](https://github.com/automatosx/automatosx)
|
|
2873
|
+
- [Issues](https://github.com/automatosx/automatosx/issues)
|
|
2874
|
+
|
|
2875
|
+
---
|
|
2876
|
+
|
|
2877
|
+
**Note**: This is a beta release. Please report any issues on GitHub.
|