Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/hew/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew
description: Index of installed hew skills. Loaded by the agent on session start.
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/brownfield/hew-audit.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-audit
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/brownfield/hew-boundary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-boundary
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/brownfield/hew-convention.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-convention
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/brownfield/hew-migrate.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-migrate
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/brownfield/hew-scan.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-scan
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-checkpoint.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-checkpoint
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-decompose.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-decompose
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-execute.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-execute
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-guard.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-guard
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-new-project.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-new-project
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-plan.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-plan
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/core/hew-verify.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-verify
category: core
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-adversarial-review.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-adversarial-review
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-blast.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-blast
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-compact.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-compact
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-deps.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-deps
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-quick.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-quick
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-research.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-research
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-review.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-review
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-security.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-security
category: optional
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/hew/optional/hew-spec.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-spec
category: optional
Expand Down
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ versioning follows [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.12.0] — 2026-05-31

### Added

- **Project-local config file `.hew.toml` (`hew-c0pa`).** Hew settings
Expand All @@ -24,6 +26,45 @@ versioning follows [Semantic Versioning](https://semver.org/).
without bypassing layering (`HEW_CONFIG` retains single-file bypass
semantics). See [`docs/CONFIG.md`](docs/CONFIG.md).

### Fixed

- **`hew loop run --jobs >= 2` now actually runs N workers (`hew-zt4z`).**
The parallel dispatcher claimed N tasks at slot-fill time, but the
per-worker loop then re-queried `bd.ready()` independently — and saw
an empty list (since the dispatcher's own claim removed those tasks
from ready). Result: 0 iters per worker, tasks stranded in
`in_progress`. Fix threads the assigned `ReadyTask` into the worker
via `Worker.assigned_task`; the worker prepends it to its
`bd.ready()` poll for the first iter, then falls back to the normal
query for iter 2+. Verified end-to-end: 2 workers, real `claude -p`
spawns, real per-worker worktrees at `~/.hew/wt/<run-id>/{0,1}/`,
real merge-back, both worker branches landed cleanly.
- **`hew loop run --jobs=1 --scope=epics` now honors the scope filter
(`hew-s9mb`).** The serial path's `bd.ready()` poll skipped the
scope-descendant check that the parallel `Dispatcher::dispatch_tick`
enforces. Result: agent-explicit `--scope=epics --epics=<id>` could
silently consume any bd-ready task. Fix re-resolves the descendant
set at the worker's bd.ready() poll and filters every iter, matching
dispatcher semantics. Verified: with P1 standalones at the top of
`bd ready` and a P2 in the scoped epic, the loop now picks the P2.
- **`hew loop summary` renders an in-flight view instead of erroring
with `No such file` (`hew-cn2y`).** The command crashed with raw
`× read run.json: No such file or directory` when called against a
run whose first iter hadn't completed yet. Fix classifies four
cases: no run-dir → today's "not found" error; run-dir with
manifest.json but no run.json → render parallel in-flight view from
manifest worker states; run-dir with iter-*.json but no run.json →
render serial in-flight view from latest iter; empty run-dir →
minimal "iter 0 in flight" view with elapsed time. Includes a
`note:` line pointing at re-running summary after iter 1 ends.

### Changed

- **`/hew:auto` slash description** corrected from the legacy
"Run plan → decompose → execute → verify autonomously" to the
in-conversation epic walk it actually does (per the rewrite in
`hew-6n0v` / 0.11.0).

## [0.11.0] — 2026-05-30

### Added
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ resolver = "2"
members = ["hew-core", "hew"]

[workspace.package]
version = "0.11.0"
version = "0.12.0"
edition = "2024"
rust-version = "1.91"
license = "MIT"
Expand Down
16 changes: 10 additions & 6 deletions hew/tests/config_e2e.rs
Original file line number Diff line number Diff line change
Expand Up @@ -375,15 +375,19 @@ fn docs_config_md_contains_merge_semantics_section() {
}

#[test]
fn changelog_unreleased_has_project_local_config_entry() {
fn changelog_has_project_local_config_entry() {
// Originally asserted the entry sat under [Unreleased]; the entry
// promoted into [0.12.0] at release time. The test stays as a
// "didn't accidentally drop the entry" guard against the shipped
// version's section.
let body = fs::read_to_string(workspace_root().join("CHANGELOG.md")).unwrap();
let unreleased = body
.split("## [Unreleased]")
let section = body
.split("## [0.12.0]")
.nth(1)
.and_then(|s| s.split("## [").next())
.expect("[Unreleased] section");
assert!(unreleased.contains("hew-c0pa") || unreleased.contains(".hew.toml"));
assert!(unreleased.contains("project") || unreleased.contains("Project"));
.expect("[0.12.0] section");
assert!(section.contains("hew-c0pa") || section.contains(".hew.toml"));
assert!(section.contains("project") || section.contains("Project"));
}

#[test]
Expand Down
2 changes: 1 addition & 1 deletion skills/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew
description: Index of installed hew skills. Loaded by the agent on session start.
Expand Down
2 changes: 1 addition & 1 deletion skills/brownfield/hew-audit.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-audit
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion skills/brownfield/hew-boundary.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-boundary
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion skills/brownfield/hew-convention.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-convention
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion skills/brownfield/hew-migrate.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-migrate
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion skills/brownfield/hew-scan.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-scan
category: brownfield
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-checkpoint.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-checkpoint
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-decompose.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-decompose
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-execute.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-execute
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-guard.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-guard
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-new-project.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-new-project
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-plan.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-plan
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/core/hew-verify.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-verify
category: core
Expand Down
2 changes: 1 addition & 1 deletion skills/data/planner-prompt.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
# Hew loop — batch planner

You are the planner subprocess inside `hew loop run --jobs N`. Your only
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-adversarial-review.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-adversarial-review
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-blast.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-blast
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-compact.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-compact
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-deps.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-deps
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-quick.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-quick
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-research.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-research
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-review.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-review
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-security.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-security
category: optional
Expand Down
2 changes: 1 addition & 1 deletion skills/optional/hew-spec.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- hew:version=0.11.0 -->
<!-- hew:version=0.12.0 -->
---
name: hew-spec
category: optional
Expand Down
Loading