Skip to content

Commit dc06f8f

Browse files
author
codejunkie99
committed
chore: prepare v0.19.0 release
1 parent d1e437d commit dc06f8f

6 files changed

Lines changed: 127 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,34 @@ All notable changes to this project.
55
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.19.0] — 2026-07-18
9+
10+
Adds portable, bounded agentic loops and a local meta-harness for resumable
11+
maker/verifier/checker work.
12+
13+
### Added
14+
- Strict JSON loop contracts, executor profiles, constraints, budgets, and
15+
portable seed skills.
16+
- Atomic checkpoints, privacy-safe events, shell-free bounded subprocesses,
17+
owned Git worktrees, policy gates, stagnation breakers, and CLI lifecycle
18+
verbs (`init`, `validate`, `run`, `resume`, `status`, `stop`, `cleanup`,
19+
`audit`).
20+
- Read-only loop health in doctor/status/dashboard/Mission Control and hashed
21+
loop-event ingestion in the local data layer.
22+
23+
### Safety
24+
- L2/L3 action loops require worktree isolation, deterministic verification,
25+
independent checker approval, finite budgets, and explicit approval before
26+
mutating or external-write profiles.
27+
- Runtime events omit task/prompt/command/output content by construction. The
28+
supervisor is not an operating-system sandbox; use harness-native isolation
29+
for hostile child processes.
30+
31+
### Migration
32+
Run `agentic-stack upgrade --dry-run`, then `agentic-stack upgrade --yes` in
33+
existing projects. Upgrade adds missing loop starters and skills but preserves
34+
authored contracts, runtime state, and existing loop skill directories.
35+
836
## [0.18.0] — 2026-05-10
937

1038
Minor release. Adds first-class integration with the external Brain CLI/MCP

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,24 @@ workspace into agentic-stack.
4343

4444
See [CHANGELOG.md](CHANGELOG.md) for the full list.
4545

46+
### New in v0.19.0 — bounded agentic loops
47+
48+
Portable loop contracts live under `.agent/loops` and use a maker →
49+
deterministic verifier → independent checker lifecycle. Start with:
50+
51+
```bash
52+
agentic-stack loop init /path/to/your-project
53+
agentic-stack loop validate /path/to/your-project
54+
agentic-stack loop run ci-sweeper "make the failing test green" /path/to/your-project --yes
55+
agentic-stack loop status /path/to/your-project
56+
```
57+
58+
L2/L3 action loops use owned Git worktrees, finite attempts/runtime/output/token
59+
budgets, deny-path gates, resumable checkpoints, and privacy-safe local events.
60+
The supervisor bounds and audits child processes; it is not an operating-system sandbox. Use harness-native sandboxes and approvals for stronger isolation.
61+
Schedulers should invoke one bounded `loop run` command at a time and inspect
62+
its exit status before starting another run.
63+
4664
### v0.17.0 — adapters, Mission Control, and lesson retraction
4765

4866
Minor release. Clears the open PR queue and ships the combined production

docs/getting-started.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,26 @@ agentic-stack upgrade --yes # apply latest harness/memory/tools + new skil
8989
agentic-stack sync-manifest # rebuild .agent/skills/_manifest.jsonl from SKILL.md
9090
```
9191

92+
### Bounded agentic loops
93+
94+
Initialize and inspect the portable loop contracts before running an action loop:
95+
96+
```bash
97+
agentic-stack loop init /path/to/your-project
98+
agentic-stack loop validate /path/to/your-project
99+
agentic-stack loop run ci-sweeper "make the failing test green" /path/to/your-project --yes
100+
agentic-stack loop status /path/to/your-project
101+
```
102+
103+
The lifecycle is maker → deterministic verifier → independent checker. L1
104+
loops report in the current workspace; bundled L2/L3 action loops use owned
105+
worktrees, approvals, finite budgets, deny-path gates, and resumable local
106+
checkpoints. Events contain only allowlisted metadata and hashed identifiers.
107+
The loop supervisor is **not an operating-system sandbox**; pair it with a
108+
harness-native sandbox when hostile or high-impact child code is in scope.
109+
Schedulers should run one bounded command, inspect its exit code, and only then
110+
schedule the next run.
111+
92112
Source checkout users can run the same verbs through the clone:
93113

94114
```bash

docs/releases/v0.19.0.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# agentic-stack v0.19.0
2+
3+
v0.19.0 adds portable agentic loops and a bounded local meta-harness.
4+
5+
## Highlights
6+
7+
- JSON contracts for L1 report loops and L2/L3 action loops.
8+
- Maker → deterministic verifier → independent checker feedback lifecycle.
9+
- Atomic resumable checkpoints, privacy-safe local events, policy gates,
10+
stagnation detection, finite budgets, and owned Git worktrees.
11+
- `loop init`, `validate`, `run`, `resume`, `status`, `stop`, `cleanup`, and
12+
`audit` commands through both `agentic-stack` and `./install.sh`.
13+
- Read-only loop summaries in doctor, status, dashboard, Mission Control, and
14+
the local data-layer export.
15+
16+
## Usage
17+
18+
```bash
19+
agentic-stack loop init /path/to/project
20+
agentic-stack loop validate /path/to/project
21+
agentic-stack loop run ci-sweeper "make the failing test green" /path/to/project --yes
22+
agentic-stack loop status /path/to/project
23+
```
24+
25+
Use `agentic-stack upgrade --dry-run` followed by `agentic-stack upgrade --yes`
26+
to add loop starters to an existing installed project without overwriting
27+
authored contracts or runtime state.
28+
29+
## Safety boundaries
30+
31+
L2/L3 loops run mutating makers in owned worktrees, enforce deny-path and file
32+
count gates, require deterministic verification and independent checker
33+
approval, and stop on pause, budget, timeout, or repeated-failure decisions.
34+
Events are local-only and whitelist metadata; prompts, tasks, command arguments,
35+
stdout, stderr, and raw run IDs are not exported. The supervisor is not an operating-system sandbox; use harness-native sandboxes for stronger isolation.
36+
Schedulers should execute one bounded command and inspect its exit status before
37+
starting another.
38+
39+
## Verification and attribution
40+
41+
The release is covered by the focused loop, integration, and legacy-hook suites;
42+
the final release commit records the fresh full-suite command and count. The
43+
loop design was informed by public loop-engineering discussions about bounded
44+
feedback, verifier gates, resumability, and stagnation breakers. This project
45+
implements its own Python standard-library contracts and does not copy code.

harness_manager/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
The "harness_manager" name is internal only and never appears in CLI help, docs,
77
or error messages users see.
88
"""
9-
__version__ = "0.18.0"
9+
__version__ = "0.19.0"

tests/test_onboard_ui.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
11
from harness_manager import __version__
22
import onboard_ui
3+
from pathlib import Path
34

45

56
def test_onboarding_banner_uses_package_version():
67
assert f"v{__version__}" in onboard_ui._T
78
assert "v0.8.0" not in onboard_ui._T
9+
10+
11+
def test_v019_release_docs_describe_loops_and_safety():
12+
root = Path(__file__).resolve().parents[1]
13+
assert __version__ == "0.19.0"
14+
readme = (root / "README.md").read_text(encoding="utf-8")
15+
getting_started = (root / "docs" / "getting-started.md").read_text(encoding="utf-8")
16+
changelog = (root / "CHANGELOG.md").read_text(encoding="utf-8")
17+
release = (root / "docs" / "releases" / "v0.19.0.md").read_text(encoding="utf-8")
18+
for text in (readme, getting_started, release):
19+
assert "loop init" in text and "loop run" in text and "loop status" in text
20+
assert "not an operating-system sandbox" in text
21+
assert "## [0.19.0]" in changelog
22+
assert "### Added" in changelog and "### Safety" in changelog and "### Migration" in changelog

0 commit comments

Comments
 (0)