All notable changes to the AURORA project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
aur doctorstore integrity checks — newStoreIntegrityCheckscategory runs alongside the existing six health-check categories. Detects silent corruption in the ACT-R store:- FTS5 desync (missing/stale
chunks_ftsrows vs.chunks) - Orphan code chunks (file_path no longer in
file_index) - Activation orphans (rows referencing deleted chunks, FK-bypass insurance)
- Reasoning-chunk growth warning above 10K (Record-phase unbounded caching signal)
- Retrieval roundtrip (end-to-end FTS sanity via highest-access seed chunk)
- Three mechanical failures (FTS desync, orphans, activation orphans) are auto-repaired under the existing
aur doctor --fixflag.
- FTS5 desync (missing/stale
- Tiered access-history compaction behind
AURORA_COMPACT_ACCESS_HISTORY=1flag (default off). Bounds the unbounded-growth path inactivations.access_historyby collapsing older access records into time buckets for storage only. BLA ranking preserved to <0.001 because the decay formula (ln Σ t_j^(-d)) already treats old records as negligible.- Four tiers: 0–7d verbatim, 7–30d hourly buckets, 30–180d daily buckets, 180d+ aggregate.
AccessHistoryEntrygains an optionalcount: int = 1field; BLA loop becomescount * t^(-d). Fully backward compatible — pre-change callers unchanged.- Lazy trigger at length > 200; common-path
record_accessunaffected.
- Design doc:
docs/02-features/memory/STORE_HARDENING.mdcovering both changes, rationale, math, and rollout plan.
get_access_history()docstring documents the new optionalcountkey and the compaction flag.
aur spawndependency-aware wave executiondepends_onfield inParsedTaskwith- Depends: 1.0, 2.0sub-bullet parsing- Topological sort (Kahn's algorithm) producing parallel-safe waves
- Wave-based execution: sequential across waves, parallel within each wave
- Completed task outputs forwarded as context into dependent tasks
- Dry-run shows wave breakdown
aur spawnprompt-to-tasks decompositiondecompose_prompt_to_tasks_md()via LLM for natural language → tasks.md- Auto-detection of input type: file path vs prompt text
- Discovers available agents via
AgentScanner/AgentParser
aur spawnoutput persistenceSpawnRunStoreclass with.aurora/spawn/runs/<timestamp>/structure- Stores
tasks.md,results/task-{id}.json,summary.json,meta.json - Re-run detection via SHA-256 hash; skip-completed-tasks on re-runs
FEATURE_BACKLOG.mdtracking parked features and future work
- Truncate long goals content before embedding to avoid 2048 char limit (full content kept for BM25/FTS5)
- Replace HTML comment agent metadata with visible markdown sub-bullets in task output
- Code formatting cleanup across 170+ files (black/isort)
- Suppress
aurora_lsp.clientwarnings inaur mem searchoutput (request_references failed noise)
- Updated MEM_INDEXING.md with FTS5 pipeline architecture and chunk-type-aware weights
- Updated TESTING_GUIDE.md with current counts (2,666 tests, 148 files)
- Parallelize LSP deadcode analysis with concurrent futures (~3x faster on large codebases)
- Add reference cache to LSP client to avoid redundant lookups
- FTS5 full-text search gate replacing activation gate in retrieval pipeline
- SQLite FTS5 virtual table for keyword filtering (Stage 1)
- Ensures rare but keyword-relevant chunks surface (activation gate starved infrequent content)
- Fallback to activation-based retrieval for old databases without FTS5
- FTS5 store integration tests (246 tests) and FTS5 retrieval integration tests (149 tests)
- LSP analysis/client tests (106 tests), verify lite tests (196 tests), early detection monitor tests (143 tests)
- Verify phase: reject empty descriptions, validate goals embed_chunk type
- Python 3.14 async compatibility (anyio/asyncio event loop handling)
- Updated black 24.1.1 → 26.1.0 and reformatted codebase
- Removed stale BM25 persistence and lazy loading tests (479 tests replaced by FTS5 tests)
- Chunk-type-aware hybrid retrieval weights
- Code chunks: BM25 50% / ACT-R 30% / Semantic 20% (identifiers are exact tokens)
- KB chunks: BM25 30% / ACT-R 30% / Semantic 40% (prose benefits from embeddings)
- Hardcoded as
_CODE_WEIGHTSand_KB_WEIGHTSinhybrid_retriever.py - Replaces single global weight configuration
aur headlesscommand — complete removal of headless mode and all related code- API key functionality — removed
ANTHROPIC_API_KEYreferences and configuration
- Major test cleanup (February 2026):
- Before: 5,500 tests, 314 files, 126k lines, unknown pass rate
- After: 2,608 tests, 144 files, ~48k lines, 100% pass rate, 57% coverage
- Removed: mock-heavy tests (~36k lines), failing/stale tests (~17k lines), import smoke tests (~12k lines)
- Consolidated all tests into
packages/*/tests/(removed roottests/directory) - Dead production code removed (~2,800 lines, LSP-confirmed 0 usages)
- CI made self-sufficient — no
.aurora/dependency, usetmp_pathormonkeypatch - Added P0 integration tests (92 tests across 5 areas, 21% → 56% coverage)
- Added P1 batch 1 integration tests (87 tests: spawner recovery/observability, LSP languages/diagnostics, CLI escalation/health)
- Added P1 batch 2 integration tests (100 tests: spawner circuit breaker/policies/heartbeat, LSP analysis/client, CLI agent search/doctor)
- Multi-language LSP support — expanded from Python-only to 5 languages:
- JavaScript/TypeScript: cross-file references via multilspy patches,
didChangeWatchedFilessupport - Go:
goplsintegration (auto-discovers viago.mod) - Java:
jdtlsintegration
- JavaScript/TypeScript: cross-file references via multilspy patches,
- Go and Java tree-sitter indexing with language-specific parsers
- LSP language configs with branch types, skip patterns, callback methods
- Fixed TypeScript cross-file references in multilspy (wrong
initialize_params.json) - Improved deadcode false positive handling for JS/Go/Java
- Updated MEM_INDEXING.md with Go and Java language support
- Updated GitHub username from amrhas82 to hamr0
- Aligned PlanStatus enum and template docs with actual usage
- Consolidated learned rules from friction pattern analysis into docs
- Pre-edit LSP check hook for Claude Code
.claude/hooks/pre-edit-lsp-check.py— runslsp checkbefore every file edit- Shows usage count and risk level (LOW/MED/HIGH) inline
- Text search fallback when LSP returns 0 refs
- Template at
packages/cli/src/aurora_cli/templates/hooks/pre_edit_lsp_check.py - Installed via
aur init --tools=claude
- Comprehensive memory indexing documentation (
MEM_INDEXING.md)
CLI Hybrid LSP Fallback:
- Extended hybrid fallback to
aur mem searchCLI command - When LSP returns 0 refs, ripgrep text search provides file/ref counts
- Shows
~Nf ~Mrformat (tilde indicates approximate text-based counts) - Populates Files list from text search results
- Updated documentation for hybrid fallback feature
Dependencies:
- Add missing
nest-asynciodependency required by aurora_lsp
LSP Hybrid Fallback:
- Text search fallback when LSP returns 0 references
- Detects cross-package usage that LSP misses (lazy imports, installed packages)
- Shows both LSP refs and text matches when they diverge
- Risk level upgraded based on text matches
MCP Server Configuration:
- Handle 'already exists' gracefully when configuring aurora MCP server
- Use explicit
--scope localfor both remove and add-json commands
ML Model Loading:
- Suppress verbose 'Loading weights' progress bar during model loading
- Disable transformers progress bar via logging API
- Disable huggingface_hub progress bars
- Moved stale test
test_conflict_detection_resolution.pyto archive
CLAUDE.md Template:
- MCP tools documentation now included in managed block template
aur initcreates CLAUDE.md with MCP tools sectionaur init --configrefreshes managed block with MCP information- Managed block markers (AURORA:START/END) for automatic updates
- CLAUDE.md restructured with managed block for auto-updates
- Template now documents
lspandmem_searchMCP tools with usage examples
Package Structure:
- Bundle
aurora_lspintoaurora-actrinstead of separate package - Remove
aurora-lspPyPI dependency (now included directly) - Add
multilspy>=0.0.15as direct dependency
aurora-lsppackage on PyPI (useaurora-actr>=0.13.1instead)
MCP Tools:
lspMCP tool with 3 actions (deadcode, impact, check)mem_searchMCP tool with LSP enrichment (used_by, called_by, calling)- CODE_QUALITY_REPORT.md generation with severity levels (CRITICAL, HIGH, MEDIUM, LOW)
- MCP configurator integration for Claude, Cursor, Cline, Continue
aurora-lsppackage as mandatory dependency (10 languages supported)- 36 comprehensive TDD tests for MCP tools
CLI Enhancements:
aur doctornow shows MCP tools statusaur initconfigures MCP servers automatically
Documentation:
- docs/02-features/mcp/MCP.md - Complete MCP reference
- docs/02-features/lsp/LSP.md - LSP integration guide
- Updated CLAUDE.md with MCP tools section
- Updated AGENTS.md with MCP tool documentation
- Updated README.md with MCP overview
Deprecated Slash Commands:
/aur:search- Replaced bymem_searchMCP tool/aur:get- Replaced bymem_searchMCP tool
- Slash commands reduced from 6 to 4 (plan, tasks, implement, archive)
- Memory search now includes LSP relationship data and git metadata
- Simplified
aur --helpoutput (removed verbose examples, cleaner format)
- Include
defaults.jsonin package distribution (was missing from wheel) - Added
[tool.setuptools.package-data]configuration for data files
- README: Removed headless references, updated doc paths to new structure, updated version
Headless Command (Complete Removal):
aur headlesscommand and all related code (~1,400 lines)packages/cli/src/aurora_cli/commands/headless.pypackages/cli/src/aurora_cli/templates/headless.pypackages/cli/src/aurora_cli/concurrent_executor.py- 22+ headless test files
Tool Providers (Complete Removal):
- Entire
packages/cli/src/aurora_cli/tool_providers/directory - Provider implementations: claude, cursor, codex, gemini, opencode, generic
- Orchestrator and registry (~2,000 lines)
API Key References:
- Removed
ANTHROPIC_API_KEYfrom all documentation - Removed API key troubleshooting sections
- Removed API key configuration options
Documentation Cleanup (300+ files):
- Removed
docs/archive/(~180 files) - Removed
docs/analysis/(~10 files) - Removed
docs/arch/(~3 files) - Removed
docs/commands/(~4 files) - Removed
docs/development/(~25 files) - Removed
docs/examples/(~3 files) - Removed
docs/features/(~2 files) - Removed
docs/fixes/(~15 files) - Removed
docs/guides/(~20 files) - Removed
docs/performance/(~10 files) - Removed
docs/reference/(~12 files) - Removed
docs/reports/(~15 files) - Removed
docs/workflows/(~2 files)
New Documentation Structure:
docs/00-context/- Architecture and contextdocs/01-product/- Product documentationdocs/02-features/- Feature docs (cli/, agents/, soar/, memory/)docs/03-logs/- Session logsdocs/04-process/- Process docs (getting-started/, troubleshooting/, reference/, development/)
CLAUDE.md:
- Reduced from ~150 lines to ~85 lines (43% reduction)
- Removed verbose explanations
- Condensed to essential commands and patterns
Init Command:
- Removed headless references from next steps
- Updated help text
CLI Cleanup - Deprecated Commands:
aur healthcommand (dead code, never registered)aur querycommand (MCP-dependent, deprecated)aur plan initandaur plan createsubcommands (useaur goalsinstead)aur verifycommand (merged intoaur doctor)
MCP Deprecation:
MCPFunctionalChecksclass from health checks (~360 lines)- MCP configuration functions from init helpers
- All MCP-related test files (~20 files, ~5,000 lines)
Doctor Command Enhancements:
- New
InstallationChecksclass verifying:- Python version (>= 3.10)
- Core package imports (aurora_core, aurora_context_code, aurora_soar, aurora_reasoning, aurora_cli)
- Installation checks merged from removed
aur verifycommand
Init Command Enhancements:
create_default_config()function creates.aurora/config.jsonwith sensible defaults- Config file created automatically during
aur init
Spawn Command:
--verboseis now the default (use--quietor-qto suppress output)- Changed from
--verboseflag to--verbose/--quietboolean pair
Test Suite:
- Fixed
Subgoalmodel field mismatch in plan command tests (recommended_agent→assigned_agent) - Fixed timezone-naive vs timezone-aware datetime issues in archive tests
- Removed broken MCP patches from init unified tests
SOAR Pipeline Enhancements:
- Vague word detection in complexity assessment
- Detects ambiguous terms: "it", "this", "that", "something", "stuff", "thing", etc.
- Increases complexity score for queries needing clarification
- Complexity-based subgoal limits (2-4-6 by complexity tier)
- SIMPLE: max 2 subgoals
- MEDIUM/MODERATE: max 4 subgoals
- COMPLEX/CRITICAL: max 6 subgoals
- Reduces over-decomposition and improves response times
log_pathfield in aur soar response metadata- Returns path to SOAR reasoning log for debugging
- SOAR cache circuit breaker and failed log cleanup
- Prevents repeated cache failures from blocking queries
- Automatic cleanup of corrupted cache entries
SOAR Pipeline:
- Normalize dependency format in collect phase (sg-N → int conversion)
- Handle both int and string dependency formats in Phase 8 respond
- Display Phase 3 when using cached decomposition for better UX
- Show cached decomposition indicator in aur soar Phase 3
- Correct phase_callback attribute name (removed underscore prefix)
- Add SOAR complexity value mapping (MEDIUM → MODERATE for consistency)
- Use SOAR Phase 1 complexity assessment instead of reassessing locally
- Fail explicitly when SOAR verification fails instead of degrading to fallback
- Normalize dependency format in verify_lite (sg-N → int)
Agent Discovery:
- Enable agent discovery for all 20 tools via dynamic path resolution
- Fixed agent path resolution for tools outside standard directories
Memory Search:
- Improve search UX with better help message and silent model loading
- Suppress verbose embedding model loading messages
Goals Command:
- Resolve aur goals failures (examples file path + enum value)
CI/CD:
- Add timeouts to CI workflow to prevent runaway jobs
Documentation:
- Update subgoal limits to 2-4-6 in aur-soar and aur-goals command docs
- Update aur-soar and aur-goals with v0.10.0 optimization details
- Clarify upgrade path from 0.9.x to 0.10.0 in README
- Add pip uninstall command to README
Code Organization:
- Organize documentation and scripts into proper directories
- ML dependency improvements and cleanup
Epic 1: Memory Search Performance (Foundation Caching)
- Module-level HybridRetriever instance caching with LRU policy
- Cache keyed by
(db_path, config_hash)with configurable size (default: 10) - Reduces cold search time by 30-40% (15-19s → 10-12s)
- Configurable via
AURORA_RETRIEVER_CACHE_SIZEandAURORA_RETRIEVER_CACHE_TTL
- Cache keyed by
- ActivationEngine singleton caching per database path
- Reduces warm search time by 40-50% (4-5s → 2-3s)
- Automatically shared across all retrievers using same database
- Shared QueryEmbeddingCache with LRU policy
- Cache hit rate typically >60% in SOAR multi-phase operations
- Reduces embedding computation on repeated queries
- Enhanced BM25 index persistence validation
- Disk-cached at
.aurora/indexes/bm25_index.pkl - Load time <100ms (vs 9.7s rebuild)
- Disk-cached at
- Cache invalidation support via
aur mem indexand config changes - Comprehensive caching guide in documentation
Epic 2: Lazy BM25 Loading + Dual-Hybrid Fallback
- Lazy BM25 index loading deferred to first retrieve() call
- Creation time: 150-250ms → 0.0ms (99.9% improvement)
- Thread-safe double-checked locking ensures single load
- No impact on search performance (index loaded once and reused)
- Dual-hybrid fallback mode (BM25 + Activation) when embeddings unavailable
- Automatically triggers when embedding model not installed or
AURORA_EMBEDDING_PROVIDER=none - Quality testing showed 85-100% overlap with tri-hybrid (BM25 + Activation + Semantic)
- Graceful degradation from tri-hybrid → dual-hybrid → activation-only
- Automatically triggers when embedding model not installed or
- Performance benchmarks and qualitative validation
Planning System Refactor (Complete R1-R9)
- New
/aur:tasksslash command for regenerating tasks from PRD- Available in all 20 tool configurators (6 commands total: search, get, plan, tasks, implement, archive)
- Reads prd.md, goals.json, agents.json and regenerates tasks.md
- Includes same TDD hints and format as /aur:plan
source_filefield added to Subgoal and SubgoalData models- Tracks primary source file for each subgoal
- Extracted from LLM responses with validation
- Supports both code files and markdown documentation
- Backward compatible (optional field, defaults to None)
- Integrated into both
aur goalsandaur soardecomposition
- agents.json schema documentation in PLAN_REFERENCES
- Complete template with required and optional fields
- Reference to official schema file
- TDD hints in tasks.md template
- Format:
tdd: yes|noandverify: command - Guidelines for when to use TDD (models, APIs, bugs) vs when to skip (docs, config)
- Matches 2-generate-tasks agent pattern
- Format:
- 3-SIMPLE-STEPS.md comprehensive planning guide created
- Step-by-step workflow documentation
- Code-aware (with goals.json) vs prompt-based planning paths
- Artifact generation order and dependencies
Task Execution Improvements
- Wave-based execution with context passing for dependent tasks
- Topological sorting for dependency-aware parallel execution
- Invalid dependency reference validation
Planning System
- Plan folders now use slug-only format (e.g.,
improve-searchinstead of0001-improve-search)- Backward compatible: numbered plans (NNNN-slug) still work
- Folder override: Re-running same goal replaces previous attempt
- Plan ID validators accept both formats
- Artifact generation order now explicitly documented
- Order: plan.md → prd.md → design.md → agents.json → tasks.md
- tasks.md generated LAST as it depends on PRD content
- Plan templates emphasize goals.json as recommended but optional
- Code-aware planning (with goals.json) preferred for production
- Prompt-based planning (skip goals.json) valid for simpler workflows
Code Quality
- Applied 4,425 safe formatting fixes across codebase
- Replaced all
datetime.utcnow()withdatetime.now(timezone.utc)(Python 3.12+ compatibility) - Fixed all ARG001-ARG005 ruff violations (104 unused argument fixes)
- Prefixed unused parameters with underscore for clarity
Planning System
- Fixed
aur plan viewschema mismatch- Changed
sg.recommended_agent→sg.assigned_agent - Removed non-existent
sg.agent_existschecks - Added ideal_agent gap detection
- Changed
- Removed non-existent command references from templates
- Removed
aur plan validatereferences - Removed
--specsflag fromaur plan list - Replaced
show --json --deltas-onlywithview --format json
- Removed
- Fixed configurator method signature incompatibilities (codex.py, kilocode.py)
Memory Search
- Fixed embedding model wait logic in mem search
- Changed from BM25-only fallback to proper embedding wait
- Fixed dual-hybrid fallback test configuration (caplog logger)
SOAR & Spawner
- Fixed fallback when SOAR decomposition returns empty subgoals
- Fixed retry_feedback parameter passing to decompose_query
- Fixed _verbose parameter name in _display_goals_results call
- Corrected parameter names in function calls (Phase 2B Task 15.1)
Type Checking & Linting
- Resolved all Pyright type-checking errors
- Fixed Config attribute access with type: ignore comments
- Fixed Subgoal model attribute references
- Fixed method signatures to match base classes
- Fixed datetime deprecation warnings throughout codebase
- Removed 12 unused test variables in collect tests
- Removed commented code in packages/cli
Slash Commands
- Removed
aur:checkpointslash command from all tool configurations- All 20 tool configurators now generate 6 commands: search, get, plan, tasks, implement, archive
- Removed checkpoint template from
templates/slash_commands.py - Removed checkpoint command from
templates/commands.py - Existing
.aurora/checkpoints/directories are preserved (not deleted) - Config keys related to checkpoints are silently ignored for backward compatibility
CLI Implementation
- Removed checkpoint-related CLI options from
aur spawncommand- Removed
--resume,--list-checkpoints,--clean-checkpoints,--no-checkpointflags - Deleted
packages/cli/src/aurora_cli/planning/checkpoint.py - Deleted
packages/cli/src/aurora_cli/execution/checkpoint.py - Removed checkpoint helper functions from
spawn_helpers.py
- Removed
Planning System
- Removed spec generation from planning system
- Plan creation now generates 5 files instead of 8 (plan.md, prd.md, design.md, agents.json, tasks.md)
- Removed 4 capability spec files: planning, commands, validation, schemas specs
- Updated all references from "8 files" to "5 files"
- Removed spec validation from validate_plan_structure()
- Removed spec entries from show_plan() file status
Startup Improvements
- Lazy BM25 index loading: 99.9% improvement (150-250ms → 0ms)
- Module-level retriever caching: 30-40% faster cold searches (15-19s → 10-12s)
- Activation engine singleton: 40-50% faster warm searches (4-5s → 2-3s)
- BM25 index persistence: <100ms load vs 9.7s rebuild
- Query embedding caching: >60% cache hit rate in multi-phase operations
Memory Efficiency
- Thread-safe double-checked locking for lazy initialization
- LRU caching prevents unbounded memory growth
- Shared instances reduce memory footprint
New Guides
- Created
docs/guides/3-SIMPLE-STEPS.md- Comprehensive planning workflow guide - Added Epic 1 caching guide with configuration examples
- Added Epic 2 documentation (lazy loading + dual-hybrid fallback)
- Added comprehensive Phase 2 lessons learned
Updated References
- Updated PLAN_REFERENCES with agents.json schema and examples
- Updated PLAN_STEPS with artifact generation order
- Updated README.md with real command output examples
- Updated CODE_QUALITY_REPORT with Phase 2A and 2B results
- Updated all documentation to reflect 6-command structure (tasks added)
- Removed checkpoint references from all documentation
- Removed spec file references from all documentation
New Tests
- Added performance tests for caching (Epic 1 Task 6.0)
- Added integration tests for memory search caching (Epic 1 Task 5.0)
- Added wave execution and performance regression tests
- Added 18 planning system tests for spec removal and enhancements
- Added dual-hybrid fallback tests
Test Improvements
- Fixed test fixtures to use assigned_agent instead of recommended_agent
- Added None checks for optional fields in ShowResult tests
- Configured proper caplog logging for pytest
Code Quality:
- Fixed lint errors in multiple files
- Removed unused variables in
packages/cli/src/aurora_cli/commands/memory.py - Removed unused variables in
packages/cli/src/aurora_cli/concurrent_executor.py - Removed unused variables in
packages/cli/src/aurora_cli/file_change_aggregator.py - Removed unused variables in
packages/spawner/src/aurora_spawner/spawner.py - Fixed import ordering across all packages (243 auto-fixes)
- Removed unused variables in
Project Organization:
- Moved development documentation from root to
docs/development/ADHOC_SPAWNING_VALIDATION.mdEARLY_DETECTION_ENHANCEMENT_ANALYSIS.mdGOALS_SOAR_REFACTOR_PLAN.mdPARALLEL_SPAWN_FAILURE_ANALYSIS.mdSTARTUP_OPTIMIZATIONS.md
- Moved utility scripts from root to
tools/benchmark_startup.pyprofile_indexing.pyprofile_indexing_detailed.py
- Removed duplicate
CLAUDE (copy).mdfile - Root directory now contains only essential files: README, CHANGELOG, CLAUDE.md, OPENCODE.md, conftest.py
Spawner: Rate Limit Error Handling:
- Rate limit errors now fail fast without wasteful retries
- Detects patterns: "rate limit", "429", "quota exceeded", "too many requests"
- Prevents 2-4 retry attempts that would hit the same quota limit
- Retry policy now skips rate limits with clear message: "Rate limit exceeded - quota exhausted, retries would fail"
- Circuit breaker no longer opens on rate limit errors
- Rate limits are external API constraints, not agent failures
- Agents remain healthy in circuit breaker even when quota exhausted
- Early exit in
record_failure()prevents tracking as circuit breaker failure
- New
FailureReason.RATE_LIMITmetric for separate tracking- Distinct from inference failures in observability system
- Allows monitoring of quota-related issues separately
- Files changed:
packages/spawner/src/aurora_spawner/observability.py- Added RATE_LIMIT enumpackages/spawner/src/aurora_spawner/spawner.py- Added rate limit detectionpackages/spawner/src/aurora_spawner/timeout_policy.py- Prevent rate limit retriespackages/spawner/src/aurora_spawner/circuit_breaker.py- Skip circuit breaker for rate limits
- Comprehensive test coverage for rate limit handling:
- 19 new unit tests in
tests/unit/spawner/test_rate_limit_handling.py - Tests cover detection, retry prevention, circuit breaker isolation, metrics, and edge cases
- All existing tests continue to pass
- 19 new unit tests in
- Removed "Rate Limit Error Handling" from FEATURES_BACKLOG.md (now implemented)
- Updated backlog last modified date to January 19, 2026
Startup Optimization - 40-60% Faster Initialization:
- Lazy embedding model imports: Deferred torch/sentence-transformers loading eliminates 20-30s startup delay
- Only loads ML dependencies when semantic search is actually used
- Commands like
aur mem index,aur soar,aur goalsnow start instantly - Embedding model loads on-demand during first semantic search
- SQLite connection pooling: Reuses validated connections across Store instances
- Eliminates redundant schema checks (60-90ms saved per invocation)
- Thread-safe per-database pool locks
- Skips repeated PRAGMA execution for pooled connections
- Deferred schema initialization: Schema validation deferred until first database access
- Store creation now takes <1ms (was 30-50ms)
- Schema checks only run once per connection pool
- Combined health monitoring: Merged two config methods into one
- Single config lookup pass (saves 10-15ms)
- Reduced logging verbosity
- Lazy agent loading: Discovery adapter loads agents on-demand
- Eliminates 25-40ms of manifest parsing at startup
- Agents still available when needed, just loaded lazily
Total Impact:
- Cold start: 150-250ms → 60-100ms (40-60% faster)
- Warm start with pooled connections: 150-250ms → 30-50ms (70-80% faster)
- Commands without semantic search: Nearly instant startup (no ML loading)
Affected Commands:
aur soar- Orchestrator startup optimizedaur goals- Goal decomposition starts fasteraur mem index- Indexing starts immediately (model loads during processing)aur mem search- Search command starts instantly (model loads on first query)
Database Layer:
- New
ConnectionPoolclass inpackages/core/src/aurora_core/store/connection_pool.py SQLiteStorenow uses deferred schema initialization- Connection pooling enabled by default for better performance
Orchestrator:
- Combined
_configure_proactive_health_checks()and_configure_early_detection() - Health monitoring configuration now single-pass
CLI Commands:
- Removed eager agent registry population from
aur soar - Discovery adapter handles agent loading on-demand
- New benchmark script:
benchmark_startup.py - Performance test suite in
tests/performance/ - Documentation in
docs/PERFORMANCE_TESTING.md
Spawner: Unified Parallel Execution Infrastructure:
- New
spawn_parallel_tracked()function as single source of truth for mature spawning- Stagger delays (default 5s) between agent starts to avoid API burst limits
- Per-task heartbeat monitoring with HeartbeatEmitter + HeartbeatMonitor
- Global timeout calculation based on waves and policy (num_waves * policy_max + stagger + buffer)
- Circuit breaker pre-checks for fast-fail on known broken agents
- Retry with exponential backoff + LLM fallback
- Execution metadata collection (early_terminations, fallback_count, retried_tasks, etc.)
- Spinner display during execution showing active task count and elapsed time
- Both
aur spawnand SOAR collect phase now use the same infrastructure - New CLI options for
aur spawn:--stagger-delay(default: 5.0s)--policy(default: patient)--max-concurrent(default: 4)--no-fallbackto disable LLM fallback
- New spawner configuration in
defaults.json:"spawner": { "max_concurrent": 4, "stagger_delay": 5.0, "default_policy": "patient" }
display_namefield inSpawnTaskfor progress display even when agent is None
Goals-SOAR Integration Refactor (Unified UX):
- Removed brittle adapter layer between SOAR and goals command
- Pydantic validators now coerce instead of reject:
- Agent names: automatically add '@' prefix if missing
- Subgoal IDs: automatically add 'sg-' prefix if numeric
- Dependencies: automatically convert numeric IDs to 'sg-N' format
- Removed normalization functions (
normalize_agent_name,normalize_dependency_id) aur goalsandaur soarnow have unified UX until divergence point- SOAR phases 1-5 display naturally in both commands
- Goals command shows agent assignments table after SOAR phases complete
CLI Output Improvements:
- Ad-hoc spawned agents now display correct agent name instead of "llm"
- Spinner shows during Phase 5 Collect:
⠧ Working... 3 active (125s) - Suppressed verbose HuggingFace Hub warnings during embedding model loading
- No more
WARNING:huggingface_hub.utils._httpnoise duringaur soar - Retries still work, just not logged to console
- No more
- Observability failure logs changed from WARNING/ERROR to DEBUG level
- Progress callbacks handle user-facing feedback
- Clean console output during normal operation
- Use
--verboseor--debugto see detailed logs
SOAR Collect Phase:
- Refactored to use
spawn_parallel_tracked()instead of inlinetracked_spawn() - Sets
display_name=agent.idwhen creating SpawnTasks for proper progress display - Collect phase now inherits all spawner improvements (stagger, heartbeat, global timeout)
- Spinner regression in Phase 5 - spinner now properly displays and cleans up
- Ad-hoc agent display name showing "llm" instead of actual agent name
- Missing
finallyblock inspawn_parallel_tracked()to stop spinner - HuggingFace warning spam during model loading
- Stagger delays prevent API burst limits and improve success rates
- Global timeout prevents hanging on stuck agents
- Heartbeat monitoring detects and handles stalled agents
- 40 unit tests passing for planning models (Goals-SOAR refactor)
- All spawner functionality tested via existing test suite
- Clean output verified with manual
aur soarandaur spawntesting
Spawner: Early Failure Detection & Circuit Breaker:
- Circuit breaker pattern with CLOSED/OPEN/HALF_OPEN states (2 failures → skip agent for 120s)
- Early error detection with 11 regex patterns (rate limit, 429, connection errors, auth failures)
- Per-attempt failure tracking for faster circuit opening within same query
- Soft error handling: timeouts/rate-limits don't stop execution of other agents
- Heartbeat emitter support for real-time progress tracking
- All spawner logs changed to DEBUG level for clean CLI output
- New file:
packages/spawner/src/aurora_spawner/circuit_breaker.py(~100 lines)
SOAR UI Enhancements:
- Plan Decomposition table display after Phase 4 verification
- Shows subgoal number, description, and assigned agent
- Spawned agents marked with asterisk (*) indicator
- Summary panel with intelligent gap detection
- Format: "X subgoals • Y assigned • Z spawned"
- Lists missing agents that will fallback to LLM
- Proper singular/plural grammar (1 subgoal vs 2 subgoals)
is_spawnflag propagation from verify_lite through orchestrator to UI
SOAR Phase Improvements:
- Collect phase now distinguishes soft vs hard errors
- Soft errors (timeout, rate limit, quota) continue execution
- Hard errors (auth failures, code errors) stop immediately
- Timeouts don't block other agents from running in parallel
- Better error messages and user feedback throughout pipeline
Memory:
aur mem searchnow records access and updates activation scores- ACT-R decay formula applied after each search (frequency + recency)
- Chunks retrieved more often get higher activation in future searches
- Summary panel grammar: "1 subgoals" → "1 subgoal"
- Gap detection using
is_spawnflag instead of unreliable string matching - Non-friendly WARNING logs changed to DEBUG level
- Clean CLI output with no verbose error messages during normal operation
- Circuit breaker prevents wasting time on broken agents (skip after 2 failures)
- Error patterns kill processes within 5s instead of waiting for 300s timeout
- Parallel agent execution continues even when some agents fail
CLI Output Enhancements:
- Added "For more details: aur mem stats" hint after indexing issues summary
- Added log file path display: "Skipped files logged to: .aurora/logs/index.log"
- Improved user guidance when indexing encounters warnings or errors
Documentation Updates:
- Updated
aur agents listdocumentation with all subcommands (--all,--category,search,refresh) - Updated
aur initdocumentation with 3-step flow,--toolsflag, and agent refresh option - Added agent discovery explanation and re-run options to init docs
- Updated Quick Reference table with new agent commands
- Synchronized all package versions to 0.6.6
- Pre-commit lint fixes (MD5→SHA256, docstrings, f-strings)
TypeScript/JavaScript Parser Support:
- Added
TypeScriptParserfor.tsand.tsxfiles- Extracts classes, functions, arrow functions, methods, interfaces, and type aliases
- JSDoc comment extraction
- Handles React/JSX syntax
- Added
JavaScriptParserfor.js,.jsx,.mjs,.cjsfiles- Extracts classes, functions, arrow functions, function expressions, and methods
- JSDoc comment extraction
- New dependencies:
tree-sitter-typescript>=0.20.0,tree-sitter-javascript>=0.20.0 - Auto-registered in parser registry
Memory Index Improvements:
- File-level git blame caching for 336x speedup on subsequent function lookups
- Batch embedding using native sentence-transformers batching
- Two-line progress display with overall progress and phase detail
- Files-by-language breakdown in
aur mem statsoutput - Success rate now calculated from parseable files only (not all discovered)
- Detailed index log written to
.aurora/logs/index.logwith:- Summary statistics
- Files by language breakdown
- Failed files with error messages
- Skipped files (parseable but no extractable elements)
aur inittool detection and duplicate display issues- Progress bar showing grey at 100% completion
- Total Files count in stats now matches language breakdown sum
- Warning help text now points to
aur mem stats
Build Configuration:
- Removed non-existent
headless/py.typedreference fromaurora-soarpackage build config - Fixes
FileNotFoundErrorduring package installation in CI environments - Note: The headless directory was removed in previous refactoring (commit 5299248), but pyproject.toml reference was left behind
Critical Dependency Fixes:
- Fixed
aurora-implementpackage name (was incorrectly named "implement") - Added missing dependencies to
aurora-clipackage:aurora-reasoning>=0.1.0aurora-planning>=0.1.0aurora-spawner>=0.1.0aurora-implement>=0.1.0
- Updated all sub-package versions to 0.6.0 for consistency
- Fixes
ModuleNotFoundError: No module named 'aurora_spawner'when installing from PyPI
CI/CD Fixes:
- Updated Makefile install targets to include all packages
- Updated GitHub Actions workflow to install spawner, implement, and planning packages
- Fixes 26 import errors in CI test suite
What this means for users:
pip install aurora-actrnow correctly installs all required packages- Sprint 4 features (
aur goals,aur spawn) now work out of the box - No manual package installation required
aur goals Command:
- New command for decomposing high-level goals into actionable subgoals with agent assignments
- SOAR-based goal decomposition with 2-7 subgoals per goal
- Automatic agent matching using keyword patterns and LLM fallback
- Memory context integration with ACT-R activation-based search
- Generates
goals.jsonin.aurora/plans/NNNN-slug/for/planskill integration - Interactive user review flow with
$EDITORintegration - Validation: 10-500 character goals, CLI tool existence checking
- Options:
--tool,-t: CLI tool selection (claude/cursor/windsurf)--model,-m: Model selection (sonnet/opus)--context,-c: Context files for informed decomposition--no-decompose: Skip decomposition for simple single-task goals--format,-f: Output format (rich/json)--yes,-y: Skip confirmation prompts--verbose,-v: Show detailed progress
Planning Flow Workflow:
aur goals "feature description"- Decompose goal → createsgoals.json/planskill in Claude Code - Generate PRD and tasks fromgoals.jsonaur implementoraur spawn- Execute tasks sequentially or in parallel
Documentation:
docs/commands/aur-goals.md- Comprehensive command reference (200+ lines)docs/workflows/planning-flow.md- Complete workflow guide (400+ lines)examples/goals/goals-example.json- Reference OAuth2 authentication example- Updated
README.mdwith planning flow quick start - Updated
COMMANDS.mdwith goals command and goals.json format specification
Test Coverage:
- 24 unit tests for goals command (100% coverage of core functionality)
- 4 E2E tests for command workflow
- 5 E2E tests for goals → /plan integration
- Total: 33 new tests passing
Related Files:
- Core implementation:
packages/cli/src/aurora_cli/commands/goals.py - Planning models: Extended
packages/cli/src/aurora_cli/planning/models.py - Planning core: Extended
packages/cli/src/aurora_cli/planning/core.py - Tests:
packages/cli/tests/test_commands/test_goals.py - E2E tests:
tests/e2e/test_goals_command.py,tests/e2e/test_goals_plan_flow.py
Configuration:
- Environment variables:
AURORA_GOALS_TOOL,AURORA_GOALS_MODEL - Config file support:
[goals]section withdefault_toolanddefault_model - Resolution order: CLI flag → env var → config file → default
aur spawn Command (Sprint 3):
- New command for parallel task execution from terminal
- Reads
tasks.mdwith agent metadata comments (<!-- agent: X -->) - Parallel spawns CLI tools (claude, cursor, aider, etc.) per task
- Reports completion status with rich progress display
- Lightweight ~100-line spawning primitive (90% reduction vs complex orchestration)
Enhanced aur soar Command (Sprint 3):
- CLI-agnostic execution using
CLIPipeLLMClient - Parallel spawning for research sub-questions
- Terminal-based orchestrator for complex queries
- Tool/model resolution: CLI flag → env var → config → default
Infrastructure (Sprints 1-2):
- New
aurora-spawnerpackage: Core spawning primitives - New
implementpackage: In-Claude execution for/implementskill - SOAR collect phase now uses real agent spawning (replaced
_mock_agent_execution()) - Deprecated
AgentRegistry, unified onagent_discoverymodule - Agent gap detection with LLM fallback for capability matching
Documentation Reorganization:
- Consolidated 280+ scattered files into organized structure
- Created 4 main directories:
reference/,guides/,development/,archive/ - Added 3 specialized directories:
commands/,workflows/,examples/ - Created README.md index for each section
- Updated all internal documentation cross-references
- Moved root-level completion summaries to archive
- Comprehensive Sprint 4 documentation (1,695 lines COMMANDS.md, 1,954 lines TOOLS_GUIDE.md)
Test Artifacts:
- Removed accidentally committed
MagicMock/test fixtures from repository root - Added to
.gitignoreto prevent future commits
- Deprecated MCP tools (
aurora_query,aurora_search,aurora_get) - replaced by slash commands and CLI equivalents - MCP configuration from
aur init- now requires--enable-mcpflag for testing/development - MCP checks from
aur doctor- MCP FUNCTIONAL section no longer displayed
/aur:implementplaceholder command - Future Aurora native workflow command for plan-based implementation--enable-mcpflag - Opt-in flag for MCP server configuration duringaur init- Comprehensive MCP deprecation documentation:
docs/MCP_DEPRECATION.md- Architecture rationale and re-enablement guidedocs/MIGRATION.md- Tool replacement mapping and behavior changesdocs/ROLLBACK.md- Complete rollback procedures with 3 options
- Slash commands now recommended -
/aur:searchand/aur:getare preferred over MCP tools - MCP infrastructure preserved - All 20+ MCP configurators and session cache kept dormant for future use
- Default behavior - Fresh installations skip MCP configuration by default
Tool Replacements:
| Deprecated MCP Tool | CLI Replacement | Slash Command | Notes |
|---|---|---|---|
aurora_query |
aur soar "query" |
N/A | Full SOAR pipeline execution |
aurora_search |
aur mem search "query" |
/aur:search "query" |
Formatted table output |
aurora_get |
N/A | /aur:get N |
Session cache retrieval |
Breaking Changes: None - deprecated tools were already replaced by superior alternatives.
Re-enablement: Use aur init --enable-mcp --tools=claude to configure MCP for testing/development.
Rollback Options:
- Git tag:
git checkout mcp-deprecation-baseline(complete revert) - Feature flag: Set
"mcp": {"enabled": true}in config (fastest, no code changes) - Revert commits: See
docs/ROLLBACK.mdfor detailed instructions
- PRD:
docs/prd/PRD-0024-mcp-tool-deprecation.md - Git Tag:
mcp-deprecation-baseline(rollback baseline) - Documentation:
docs/MCP_DEPRECATION.md,docs/MIGRATION.md,docs/ROLLBACK.md
Package Structure Simplified:
- All sub-packages (
aurora-core,aurora-cli, etc.) now bundled directly intoaurora-actr - Single package installation:
pip install aurora-actrincludes everything - No more separate package dependencies on PyPI
- Package size: ~528KB (still tiny!)
What This Means:
- ✅ Users: Just run
pip install aurora-actr- everything works - ✅ Simpler installation, no verbose sub-package output
- ✅ All features included by default (CLI, MCP, memory, reasoning, planning, SOAR)
⚠️ If you hadaurora-clior other sub-packages installed separately, uninstall them first
Optional Dependencies:
[ml]: Machine learning features (sentence-transformers, torch) for semantic embeddings[dev]: Development tools for contributors (pytest, mypy, ruff, etc.)
Installation:
# Full installation (recommended)
pip install aurora-actr
# With ML features
pip install aurora-actr[ml]
# Development (contributors only)
pip install aurora-actr[dev]Project-Local Configuration (Breaking Change):
- All Aurora artifacts now stored in project-local
./.aurora/directory (except budget tracker) - Plans created in
./.aurora/plans/with sequential numbering (0001, 0002, etc.) - Config loading detects project mode when
./.aurora/exists - Database, plans, and metadata now project-scoped for better isolation
Enhanced aur mem stats:
- Added
Last Indexedtimestamp display (e.g., "2 hours ago") - Added
Success Ratepercentage when < 100% - Displays failed files list (up to 10) with error details
- Displays warnings list (up to 10) for parse issues
- Metadata persisted in
.aurora/.indexing_metadata.json
Improved aur doctor Health Checks:
- New TOOL INTEGRATION section:
- CLI tools detection (checks for claude, cursor, aider, cline)
- Slash commands status (configured/not configured)
- MCP servers status with tool names listed
- Enhanced CODE ANALYSIS section:
- Tree-sitter language parsers detection and listing
- Shows available languages (python, javascript, typescript, etc.)
- Removed duplicate/unnecessary checks:
- Removed redundant MCP check from CONFIGURATION section
- Removed API key check (no longer needed)
MCP Server Configuration:
- MCP servers now configured automatically during
aur initStep 3 - Supports Claude, Cursor, Cline, Continue
- Shows "(+ MCP server)" notation in init output
- Fixed CLAUDE.md stub overwriting existing content (now prepends stub)
- Fixed error messages to reference
aur mem statsinstead ofaur doctorfor indexing issues - Fixed plan numbering to use project-local sequence instead of global
- Fixed init command to show "Check with aur mem stats" for indexing errors
- Updated all package versions from 0.1.0 → 0.2.0
- Updated main version from 0.2.0 → 0.3.0
- Doctor output now shows binary status (configured/not) instead of fractions
Tri-Hybrid Retrieval Architecture:
- BM25 Keyword Matching (30% weight): Code-aware tokenization for exact identifier matches
- Splits camelCase:
getUserData→["get", "user", "data", "getuserdata"] - Splits snake_case:
user_manager→["user", "manager", "user_manager"] - Preserves acronyms:
HTTPRequest→["HTTP", "Request", "httprequest"] - Handles dot notation:
auth.oauth→["auth", "oauth"]
- Splits camelCase:
- Staged Retrieval Pipeline:
- Stage 1: BM25 filtering (top-k=100 candidates from activation-ranked chunks)
- Stage 2: Tri-hybrid re-ranking (30% BM25 + 40% Semantic + 30% Activation)
- Backward Compatibility: Dual-hybrid mode (set
bm25_weight=0.0for original 60/40 activation/semantic)
Configuration:
- New
HybridConfigparameters:bm25_weight,stage1_top_k,use_staged_retrieval - Config validation ensures weights sum to 1.0
- Supports config loading from
aurora_config.get("context.code.hybrid_weights")
Implementation:
BM25Scorerclass with Okapi BM25 algorithm (k1=1.5, b=0.75)- Index persistence: save/load BM25 indexes
- Result format now includes
bm25_scorefield alongsideactivation_scoreandsemantic_score - Backup of v1 hybrid retriever saved as
hybrid_retriever_v1_backup.py
CLI Features:
--show-scoresflag: Display detailed score breakdown with intelligent explanations in rich box-drawing format- BM25 explanations: exact keyword match, strong term overlap, partial match
- Semantic explanations: very high/high/moderate/low conceptual relevance
- Activation explanations: access count, commit count, last used time
- Box-drawing format with Unicode characters for visual clarity
- Git metadata display: commit count and last modified time
--typefilter: Search specific element types (function, class, method, knowledge, document)- Type abbreviations: Search results display abbreviated types (func, meth, class, code, reas, know, doc) for improved readability
- Knowledge chunk support: Index and search markdown documentation files
Knowledge & Reasoning Chunk Support:
KnowledgeParser: Parse markdown files into searchable chunks (section-based splitting)MarkdownParser: Registered in global parser registry for automatic .md file handlingReasoningChunk: Support for SOAR reasoning patterns (created during pipeline execution)- CodeChunk validation expanded to support "knowledge" and "document" chunk types
Testing & Quality:
- Unit Tests: 52 tests (15 BM25 + 5 staged + 6 knowledge + 4 reasoning + 4 type abbreviations + 7 box drawing + 6 BM25 explanations + 5 semantic explanations + 5 activation explanations)
- Shell Tests: 20 acceptance tests covering exact match, CamelCase, staged retrieval, knowledge indexing, type abbreviations, box-drawing format, score explanations
- Integration Tests:
test_e2e_search_quality.py: MRR validation (target ≥0.85)test_index_rebuild.py: Index rebuild and BM25 IDF recalculationtest_performance_benchmarks.py: Query latency and memory usage benchmarks
- Type Safety: MyPy strict mode, all BM25 code type-checked
- Lint: Ruff clean (code formatting and import organization)
Performance:
- Simple queries: <2s latency (exact identifier matches)
- Complex queries: <10s latency (semantic concept search)
- Memory usage: <100MB for 10K chunks
- Indexing throughput: >2 files/sec, >10 chunks/sec
Documentation:
- Updated
docs/cli/CLI_USAGE_GUIDE.mdwith --show-scores and --type examples - Added BM25 architecture section to
docs/KNOWLEDGE_BASE.md - Comprehensive docstrings in BM25Scorer and HybridRetriever
Critical Bug Fixes (P0 Priority):
- Issue #2 - Database Path Unification: All commands now use
~/.aurora/memory.dbas single source of truth. No more localaurora.dbfiles created. Config-based path resolution ensures consistency across all operations. - Issue #4 - Activation Tracking: Fixed
record_access()not being called during search. Activation scores now properly update with each chunk access, using ACT-R decay formula. Scores vary across chunks instead of remaining static. - Issue #15 - Query Retrieval Integration: Direct LLM queries now retrieve context from indexed codebase before generating responses. Memory store properly initialized and passed to all query execution modes.
- Issue #16 - Git-Based BLA Initialization: Chunks now initialized with activation scores based on Git commit history at FUNCTION level using
git blame -L <start>,<end>. Frequently-edited functions have higher initial activation than rarely-touched functions in the same file. Gracefully falls back to base_level=0.5 for non-Git directories.
Critical Bug Fixes (Found During Manual E2E Testing):
- Bug #1: Fixed
retrieve_by_activationfiltering out negative BLA values (sqlite.py:355) - Changed filter to use-infwhen min_activation==0.0 to include all chunks - Bug #2: Fixed Query command not passing memory_store to Direct LLM (main.py:340) - Memory store now initialized and passed for all query modes
- Bug #3: Fixed HybridRetriever not extracting CodeChunk content properly (hybrid_retriever.py:236) - Now extracts full function signature and docstring with proper line ranges
- Bug #4: Fixed Config not respecting AURORA_HOME environment variable (config.py:226,359, init.py:151) - Added
_get_aurora_home()helper function, tests now use isolated config/database
Feature Improvements (P1 Priority):
- Issue #6 - Complexity Assessment: Added 16 domain-specific keywords (soar, actr, activation, agentic, marketplace, research, analyze, etc.). Multi-question queries (2+
?) get +0.3 complexity boost. Domain queries now correctly classified as MEDIUM/COMPLEX. - Issue #9 - Auto-Escalation Logic: Low confidence queries (<0.6) now trigger escalation to SOAR pipeline. In non-interactive mode, auto-escalates automatically. In interactive mode, prompts user with clear choice.
- Issue #10 - Budget Management: Implemented
aur budgetcommand group with 4 subcommands:show,set <amount>,reset,history. Budget checked before LLM calls, queries blocked with helpful error if limit exceeded. - Issue #11 - Error Handling: Added user-friendly error messages for authentication, API, network, configuration, and budget errors. Stack traces hidden by default, shown with
--debugflag. Each error includes actionable solutions.
Database Management:
- Default database location changed from
./aurora.dbto~/.aurora/memory.db - Migration tool added to
aur initfor existing local databases - Config file now specifies database path for all operations
Activation Scores:
- Initial BLA calculated from Git commit history at function level (not file level)
- Negative BLA values are valid (ACT-R log-odds representation)
- Each function has individual activation based on its edit history
- Access tracking now updates base_level, access_count, and last_access_time
Query Execution:
- Direct LLM mode now retrieves context from memory store (not just SOAR mode)
- Context includes file paths, line ranges, and full chunk content
- Queries about indexed code return accurate answers from codebase
Complexity Assessment:
- Threshold adjusted to confidence < 0.6 for auto-escalation
- Domain keywords expanded from 8 to 16 terms
- Multi-question detection added (2+
?triggers complexity boost)
Updated Documentation:
- CHANGELOG.md - Added v0.2.1 release notes with all fixes and improvements
- CLI_USAGE_GUIDE.md - Added budget commands section with examples
- TROUBLESHOOTING.md - Added budget exceeded errors, configuration errors with --debug usage
- PRD-0010 - Complete Phase 1 implementation documented
New Features Documented:
- FUNCTION-level Git tracking via
git blame -L <start>,<end> - Base-level activation (BLA) initialization from commit history
- Negative BLA values are valid (ACT-R log-odds)
- Budget management workflow with enforcement and history
Related PRD: tasks/0010-prd-aurora-phase1-core-restoration.md
Issues Fixed: #2, #4, #6, #9, #10, #11, #15, #16 (8 issues total)
Test Coverage: 12 E2E/integration tests added, 62 unit tests added, 4 critical bugs fixed during manual testing
Test Results: 31 budget tests passing, 10 integration tests passing, all 4 bugs verified fixed. E2E tests have environment setup issues (unrelated to bug fixes).
Retrieval Quality Handling (TD-P2-016):
- 3-tier retrieval quality system: no match / weak match / good match detection
- Interactive prompts for weak matches in CLI (groundedness < 0.7 OR < 3 high-quality chunks)
- Automatic groundedness scoring to prevent hallucination on weak context
- Activation threshold filtering (≥0.3) to exclude low-relevance chunks
--non-interactiveflag for CI/CD and automation workflows- Production deployment guide for tuning activation and groundedness thresholds
- MCP tools remain non-interactive (unaffected by retrieval quality handling)
- Comprehensive test coverage: 7 integration tests + 18 edge case tests
- Documentation in CLI_USAGE_GUIDE.md, TROUBLESHOOTING.md, and SOAR_ARCHITECTURE.md
Decision Matrix:
| Scenario | Chunks | Groundedness | CLI Interactive | CLI Non-Interactive | MCP/Headless |
|---|---|---|---|---|---|
| No match | 0 | N/A | Auto-proceed + note | Auto-proceed | Auto-proceed |
| Weak match | >0 | <0.7 OR <3 high-quality | Prompt user (3 options) | Auto-continue | Auto-continue |
| Good match | >0 | ≥0.7 AND ≥3 high-quality | Auto-proceed | Auto-proceed | Auto-proceed |
Test Suite Systematic Cleanup (Phases 1-5):
- Removed 20 low-value tests (constructor tests, implementation detail tests)
- Archived 7 performance benchmarks for manual execution
- Converted 79 @patch decorators to Dependency Injection pattern
- Added 26 integration tests for CLI, memory manager, and auto-escalation
- Improved test pyramid from 95/4/1 to 76/21/3 (unit/integration/E2E)
- Increased coverage from 74.95% to 81.06% (+6.11 percentage points)
- Created comprehensive testing documentation (TESTING.md, TEST_REFERENCE.md)
- Marked 86 tests with pytest markers (critical, core, integration, e2e)
- Fixed Python 3.11/3.12 compatibility (from 28+27 failures to 0)
Testing Documentation:
- Added
docs/development/TESTING.md- Testing principles and best practices - Added
docs/development/TEST_REFERENCE.md- Test categorization and markers - Added
docs/development/TESTING_TECHNICAL_DEBT.md- Technical debt tracking
- Python 3.11/3.12 test failures caused by @patch decorators (79 instances)
- Import organization issues (19 auto-fixes)
- Test fragility across Python versions
MCP Server Integration:
- Added FastMCP-based server with 5 tools for Claude Desktop integration
aurora_search: Semantic search across indexed codebase with hybrid scoringaurora_index: Index directory with configurable file patternsaurora_stats: Database statistics and metricsaurora_context: Retrieve full file or specific function contentaurora_related: Find related chunks using ACT-R spreading activation- MCP configuration schema in CLI config with
always_on,log_file,max_results aurora-mcpcontrol script:start,stop,statuscommands- Performance logging decorator for all MCP tools with latency tracking
- Cross-platform MCP setup for Windows, macOS, and Linux
Package Consolidation:
- Meta-package installation:
pip install aurorainstalls all 6 components - Post-install hook displaying component-level feedback (✓ Core, ✓ CLI, etc.)
- Optional dependencies:
[ml]for sentence-transformers,[mcp]for FastMCP,[all]for everything - Automated import path migration script:
aurora_*→aurora.*namespace aurora-uninstallhelper script with--keep-configflag
CLI Enhancements:
aur --verifycommand: Installation health check, dependency verification, diagnostics- Flexible
--headlessglobal flag: Bothaur --headless file.mdandaur headless file.mdwork - Enhanced help text with multiple examples for all commands
- Improved error messages with actionable recovery steps for common failures
- Better Path handling in
aur initcommand
Documentation:
- Comprehensive MCP Setup Guide (
docs/MCP_SETUP.md) with 9 sections - Troubleshooting Guide (
docs/TROUBLESHOOTING.md) with platform-specific notes - Updated README for v0.2.0 with MCP integration as primary workflow
- Installation verification documentation
Testing:
- Comprehensive MCP test suite (120+ tests) via Python client
- Integration tests for all 5 MCP tools
- MCP server startup/shutdown tests
- Error handling and edge case tests
- Performance and logging tests
- Platform compatibility tests (Linux, with Windows/macOS support)
- Smoke test suite with 11 end-to-end CLI tests
- Bug #1:
aur initcrash due to duplicatefrom pathlib import Pathimport (line 88 shadowing) - Bug #2:
aur mem indexAPI mismatch - changedadd_chunk()tosave_chunk(), fixed embeddings serialization - Bug #3: Dry-run import error - corrected import path to
aurora.context_code.semantic.hybrid_retriever - Fixed 39 import statements across packages (aurora.* -> aurora_* for backward compatibility)
- Resolved memory leak in
MemoryStore.close()for Python 3.12 - Fixed deprecated
datetime.utcnow()for Python 3.12 compatibility
- BREAKING: Import paths migrated to
aurora.*namespace (e.g.,from aurora.core.store import SQLiteStore)- Old
aurora_core.*imports still work but deprecated - Use migration script:
python scripts/migrate_imports.py
- Old
- Version bumped from
0.1.0to0.2.0inpyproject.toml - Project description updated to include MCP integration
- README reorganized: MCP integration as primary workflow, standalone CLI as secondary
- Updated feature list with Windows support and cross-platform compatibility
- Old import paths (
aurora_core.*,aurora_context_code.*, etc.) - useaurora.*namespace instead - Individual package installation (
pip install -e packages/core) - use meta-package (pip install aurora)
Import Path Migration:
Old (v0.1.0):
from aurora_core.store import SQLiteStore
from aurora_context_code import PythonParser
from aurora_soar import SOAROrchestratorNew (v0.2.0):
from aurora.core.store import SQLiteStore
from aurora.context_code import PythonParser
from aurora.soar import SOAROrchestratorAutomated Migration:
python scripts/migrate_imports.py --dry-run # Preview changes
python scripts/migrate_imports.py # Apply changesInstallation Migration:
Old (v0.1.0):
pip install -e packages/core
pip install -e packages/context-code
pip install -e packages/soar
pip install -e packages/cliNew (v0.2.0):
pip install aurora[all] # Single commandBackward Compatibility:
- Old import paths still work in v0.2.0 but will be removed in v0.3.0
- Individual package installation still works but not recommended
- Migrate before v0.3.0 release to avoid breakage
Phase 1 Foundation:
- Core storage layer with SQLite and in-memory implementations
- Chunk types:
CodeChunkandReasoningChunkwith validation - Python code parser using tree-sitter
- Context providers with scoring and caching
- Configuration system with JSON schema validation
- Agent registry for capability-based selection
- Comprehensive testing framework (243 tests, 88% coverage)
Phase 2 SOAR Pipeline:
- 9-phase SOAR orchestrator: Assess → Retrieve → Decompose → Verify → Route → Collect → Synthesize → Record → Respond
- Multi-provider LLM integration (Anthropic Claude, OpenAI, Ollama)
- Cost tracking with soft/hard budget limits
- Conversation logging with markdown format
- ReasoningChunk pattern caching with ACT-R activation
- 60-70% query optimization via keyword-based assessment
Phase 3 Advanced Memory:
- ACT-R activation engine with BLA, spreading activation, context boost
- Semantic embeddings with sentence-transformers
- Hybrid retrieval: 60% activation + 40% semantic similarity
- Multi-tier caching: hot cache + persistent cache + activation cache
- Query optimization: type filtering, threshold filtering, batch calculation
- Performance: <500ms for 10K chunks, 30%+ cache hit rate
CLI Implementation (v1.1.0):
- Complete CLI with
aurcommand - Auto-escalation between direct LLM and full AURORA pipeline
- Memory commands:
aur mem index/search/stats - Configuration management with environment variable overrides
- Headless reasoning mode for autonomous experiments
- Dry-run mode for testing without API costs
- Simple query latency: 0.002s (target: <2s) - 1000x faster
- Complex query latency: <10s (met target)
- Memory usage: 39.48 MB for 10K chunks (target: <100MB)
- Chunk storage: ~15ms (target: <50ms)
- Chunk retrieval: ~8ms (target: <50ms)
- Throughput: >100 queries/second (target: >10)
- v0.2.0 GitHub Release (pending)
- v0.1.0 GitHub Release (pending)
- v0.2.0 (2025-01-24): MCP integration, package consolidation, CLI enhancements
- v0.1.0 (2025-01-15): Initial release with SOAR pipeline and advanced memory
Last Updated: 2026-02-14