mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
c3b342a03a
## Summary Successfully fixed all initialization issues and completed Phase 2 integration: - Fixed agent template discovery and copying (18 agents now copy correctly) - Added comprehensive logging throughout init process - Fixed undefined config property serialization bug - All databases initialize correctly (memory.db, patterns.db) - Phase 2 features (learning, patterns, improvement) fully functional ## Bug Fixes 1. **Agent Copy Bug**: Changed from directory copy to individual file copy - Fixed: "Copied 0 agent definitions" → Now copies all 18 agents - Issue: fs.copy with filter wasn't working, changed to per-file copy 2. **Missing Agent**: Created qe-quality-analyzer.md - Was the only missing agent out of 17 required QE agents - Added complete agent definition with AQE hooks integration 3. **Incomplete Fallback**: Updated fallback from 6 to all 17 agents - Ensures all agents are created even if templates not found - Maintains feature parity in all scenarios 4. **Serialization Bug**: Added sanitizeConfig() helper - Fixed: "Cannot read properties of undefined (reading 'replace')" - Issue: jsonfile couldn't serialize config with undefined properties - Solution: Recursive sanitization removes undefined values before write 5. **Config Path Bug**: Fixed target vs source file list confusion - Was passing source files to createMissingAgents instead of target - Now correctly identifies which agents are missing in target ## Improvements - Added detailed path discovery logging with ✓/✗ checkmarks - Show agent template counts and copy progress - Log each config file write with file paths - Added stack traces to all error handlers (removed verbose-only check) - Created sanitizeConfig for robust JSON serialization ## Testing Verified in test project `/tmp/aqe-test-final`: ✅ All 17 QE agents created ✅ memory.db created (221KB, 12 tables) ✅ patterns.db created (155KB, 4 tables + FTS) ✅ All Phase 2 configs written successfully ✅ Complete initialization with no errors ## Phase 2 Features Confirmed Working - Learning System: Q-learning (lr=0.1, γ=0.95, 20% target) - Pattern Bank: 85% confidence, extraction enabled - Improvement Loop: 1hr cycles, A/B testing, manual approval ## Files Changed - .claude/agents/qe-quality-analyzer.md (NEW) - src/cli/commands/init.ts (MAJOR FIXES) - copyAgentTemplates(): Individual file copy, better logging - createBasicAgents(): All 17 agents - createMissingAgents(): Fixed file list bug - writeFleetConfig(): Added sanitization - sanitizeConfig(): NEW helper for undefined removal - src/learning/* (NEW - 9 files) - src/reasoning/* (NEW - 8 files) - tests/* (NEW - 30+ test files) - docs/* (NEW - 60+ documentation files) ## Breaking Changes None - all changes are internal improvements ## Migration No migration needed - initialization now works correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
80 lines
2.1 KiB
TypeScript
80 lines
2.1 KiB
TypeScript
#!/usr/bin/env ts-node
|
|
/**
|
|
* Test InitCommand programmatically to verify database initialization order fix
|
|
*/
|
|
|
|
import { InitCommand } from './src/cli/commands/init';
|
|
import * as fs from 'fs-extra';
|
|
import * as path from 'path';
|
|
|
|
async function testInit() {
|
|
const testDir = '/tmp/aqe-init-test';
|
|
|
|
try {
|
|
// Clean test directory
|
|
console.log('Cleaning test directory...');
|
|
await fs.remove(testDir);
|
|
await fs.ensureDir(testDir);
|
|
|
|
// Change to test directory
|
|
process.chdir(testDir);
|
|
|
|
// Create minimal package.json
|
|
await fs.writeJson(path.join(testDir, 'package.json'), {
|
|
name: 'test-project',
|
|
version: '1.0.0'
|
|
});
|
|
|
|
console.log('Running InitCommand.execute()...');
|
|
|
|
// Call InitCommand with proper options
|
|
await InitCommand.execute({
|
|
config: undefined,
|
|
topology: 'hierarchical',
|
|
maxAgents: '10',
|
|
focus: 'unit,integration',
|
|
environments: 'development',
|
|
frameworks: 'jest',
|
|
verbose: false
|
|
});
|
|
|
|
console.log('\n✅ InitCommand completed successfully!');
|
|
|
|
// Verify databases were created
|
|
console.log('\nVerifying databases...');
|
|
const memoryDbPath = path.join(testDir, '.agentic-qe/memory.db');
|
|
const patternsDbPath = path.join(testDir, '.agentic-qe/patterns.db');
|
|
|
|
const memoryExists = await fs.pathExists(memoryDbPath);
|
|
const patternsExists = await fs.pathExists(patternsDbPath);
|
|
|
|
console.log(` memory.db: ${memoryExists ? '✅' : '❌'}`);
|
|
console.log(` patterns.db: ${patternsExists ? '✅' : '❌'}`);
|
|
|
|
// Verify directories
|
|
console.log('\nVerifying directories...');
|
|
const dirs = [
|
|
'.agentic-qe',
|
|
'.agentic-qe/data',
|
|
'.agentic-qe/data/learning',
|
|
'.agentic-qe/data/patterns',
|
|
'.agentic-qe/config',
|
|
'.claude',
|
|
'.claude/agents'
|
|
];
|
|
|
|
for (const dir of dirs) {
|
|
const exists = await fs.pathExists(path.join(testDir, dir));
|
|
console.log(` ${dir}: ${exists ? '✅' : '❌'}`);
|
|
}
|
|
|
|
console.log('\n✅ All verification checks passed!');
|
|
|
|
} catch (error) {
|
|
console.error('\n❌ Test failed:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
testInit();
|