Skip to content
This repository was archived by the owner on Jun 14, 2026. It is now read-only.

Commit c178676

Browse files
committed
chore: release v0.17.6
- Add dependency-aware wave execution, prompt input, and output persistence to aur spawn - Fix truncation of long goals content before embedding (2048 char limit) - Replace HTML comment agent metadata with visible markdown sub-bullets - Remove 98 unused imports across test and source files - Fix pre-commit config: exclude fixture broken.py, add E731 ignore - Fix D212 docstring style in scripts
1 parent e1e967d commit c178676

34 files changed

Lines changed: 67 additions & 165 deletions

.pre-commit-config.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ repos:
3535

3636
- id: debug-statements
3737
name: Check for debug statements (pdb, ipdb)
38-
exclude: '^tests/'
38+
exclude: '^(tests/|.*fixtures/sample_python_files/broken\.py$)'
3939

4040
- id: mixed-line-ending
4141
name: Check for mixed line endings
@@ -48,7 +48,7 @@ repos:
4848
- id: black
4949
name: Format Python code with Black
5050
args: ['--line-length=100']
51-
exclude: 'tests/fixtures/.*broken\.py$'
51+
exclude: '.*fixtures/.*broken\.py$'
5252

5353
# Python import sorting
5454
- repo: https://github.com/pycqa/isort
@@ -66,8 +66,8 @@ repos:
6666
name: Lint Python code with flake8
6767
args: [
6868
'--max-line-length=100',
69-
'--extend-ignore=E203,W503,E501,E722,E721,F841,E402,F541', # Black compatibility + test/script leniency
70-
'--exclude=.git,__pycache__,build,dist,*.egg-info,tests/fixtures/sample_python_files/broken.py'
69+
'--extend-ignore=E203,W503,E501,E722,E721,F841,E402,F541,E731', # Black compatibility + test/script leniency
70+
'--exclude=.git,__pycache__,build,dist,*.egg-info,**/fixtures/sample_python_files/broken.py'
7171
]
7272

7373
# Python type checking (optional, can be slow)
@@ -125,7 +125,7 @@ repos:
125125
- id: pydocstyle
126126
name: Check docstring style
127127
args: ['--convention=google', '--add-ignore=D100,D101,D102,D103,D104,D105,D106,D107,D202,D205,D209,D300,D301,D402,D403,D415']
128-
exclude: '^(tests/|packages/.*/tests/|docs/archive/|.*_test\.py$|test_.*\.py$|compare_batch_sizes\.py|profile_.*\.py|benchmark_.*\.py|saas_financial_model\.py)'
128+
exclude: '^(tests/|packages/.*/tests/|packages/.*/fixtures/|docs/archive/|.*_test\.py$|test_.*\.py$|compare_batch_sizes\.py|profile_.*\.py|benchmark_.*\.py|saas_financial_model\.py)'
129129

130130
# Configuration
131131
default_language_version:

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.17.6] - 2026-02-14
11+
12+
### Added
13+
14+
- **`aur spawn` dependency-aware wave execution**
15+
- `depends_on` field in `ParsedTask` with `- Depends: 1.0, 2.0` sub-bullet parsing
16+
- Topological sort (Kahn's algorithm) producing parallel-safe waves
17+
- Wave-based execution: sequential across waves, parallel within each wave
18+
- Completed task outputs forwarded as context into dependent tasks
19+
- Dry-run shows wave breakdown
20+
- **`aur spawn` prompt-to-tasks decomposition**
21+
- `decompose_prompt_to_tasks_md()` via LLM for natural language → tasks.md
22+
- Auto-detection of input type: file path vs prompt text
23+
- Discovers available agents via `AgentScanner`/`AgentParser`
24+
- **`aur spawn` output persistence**
25+
- `SpawnRunStore` class with `.aurora/spawn/runs/<timestamp>/` structure
26+
- Stores `tasks.md`, `results/task-{id}.json`, `summary.json`, `meta.json`
27+
- Re-run detection via SHA-256 hash; skip-completed-tasks on re-runs
28+
- `FEATURE_BACKLOG.md` tracking parked features and future work
29+
30+
### Fixed
31+
32+
- Truncate long goals content before embedding to avoid 2048 char limit (full content kept for BM25/FTS5)
33+
34+
### Changed
35+
36+
- Replace HTML comment agent metadata with visible markdown sub-bullets in task output
37+
- Code formatting cleanup across 170+ files (black/isort)
38+
1039
## [0.17.2] - 2026-02-14
1140

1241
### Fixed

packages/cli/src/aurora_cli/commands/spawn.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
from implement.persistence import SpawnRunStore
4242
from implement.topo_sort import topological_sort_tasks
4343

44-
4544
console = Console()
4645
logger = logging.getLogger(__name__)
4746

@@ -204,7 +203,9 @@ def spawn_command(
204203

205204
try:
206205
if has_deps:
207-
console.print(f"[cyan]Executing {len(pending_tasks)} tasks in dependency waves...[/]")
206+
console.print(
207+
f"[cyan]Executing {len(pending_tasks)} tasks in dependency waves...[/]"
208+
)
208209
result = asyncio.run(
209210
_execute_waves(
210211
pending_tasks,
@@ -345,7 +346,9 @@ def _display_dry_run(tasks: list[ParsedTask], has_deps: bool) -> None:
345346
for task in wave:
346347
status = "[x]" if task.completed else "[ ]"
347348
deps = f" (depends: {', '.join(task.depends_on)})" if task.depends_on else ""
348-
console.print(f" {status} {task.id}. {task.description} (agent: {task.agent}){deps}")
349+
console.print(
350+
f" {status} {task.id}. {task.description} (agent: {task.agent}){deps}"
351+
)
349352
except ValueError as e:
350353
console.print(f" [red]Dependency error: {e}[/]")
351354
else:
@@ -674,4 +677,6 @@ def execute_tasks_parallel(tasks: list[ParsedTask]) -> dict[str, int]:
674677
Execution summary with total, completed, failed counts
675678
676679
"""
677-
return asyncio.run(_execute_parallel(tasks, verbose=False, store=SpawnRunStore(), run_dir=Path(".")))
680+
return asyncio.run(
681+
_execute_parallel(tasks, verbose=False, store=SpawnRunStore(), run_dir=Path("."))
682+
)

packages/cli/src/aurora_cli/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
console = Console()
3131
logger = logging.getLogger(__name__)
3232

33-
AURORA_VERSION = "0.17.2"
33+
AURORA_VERSION = "0.17.6"
3434

3535

3636
def _version_callback(ctx: click.Context, param: click.Parameter, value: bool) -> None:

packages/cli/tests/integration/test_escalation_health.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
No LLM calls — escalation uses keyword-only mode, health checks use mocked filesystem.
66
"""
77

8-
import os
9-
import shutil
10-
118
import pytest
129

1310
from aurora_cli.escalation import AutoEscalationHandler, EscalationConfig, EscalationResult

packages/cli/tests/test_config.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"""
88

99
import json
10-
import os
1110

1211
import pytest
1312

packages/context-code/src/aurora_context_code/semantic/hybrid_retriever.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import time
2727
from collections import OrderedDict
2828
from dataclasses import dataclass
29-
from pathlib import Path
3029
from typing import Any
3130

3231
import numpy as np

packages/context-code/tests/integration/test_fts5_retrieval.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
"""
55

66
import numpy as np
7-
import pytest
87

98
from aurora_context_code.semantic.hybrid_retriever import HybridConfig, HybridRetriever
109
from aurora_core.store.sqlite import SQLiteStore
@@ -30,8 +29,6 @@ def _make_code_chunk(chunk_id, name, signature, docstring, file_path):
3029
class MockActivationEngine:
3130
"""Minimal activation engine for testing."""
3231

33-
pass
34-
3532

3633
class MockEmbeddingProvider:
3734
"""Embedding provider that returns deterministic embeddings."""

packages/context-code/tests/integration/test_retriever_fallbacks.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
when embeddings are unavailable.
66
"""
77

8-
import math
9-
108
import numpy as np
119
import pytest
1210

packages/core/src/aurora_core/chunk_types.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
"""
1212

1313
from pathlib import Path
14-
from typing import Union
1514

1615
# Extension-based type mapping
1716
EXTENSION_TYPE_MAP: dict[str, str] = {

0 commit comments

Comments
 (0)