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
14 changes: 12 additions & 2 deletions .agents/skills/release-prep/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,21 @@ If any row is missing, add it before committing.

## Step 5 — Commit and push

Stay on the **current branch** — do not switch to or push directly to `main`.
Stage all changed files and create one commit:

```
CURRENT_BRANCH=$(git branch --show-current)
git add CHANGELOG.md README.md docs/ .subagents/
git commit -m "chore(release): prepare NEXT_VERSION"
git push origin main
git push origin "$CURRENT_BRANCH"
```

If the current branch already has an open PR, the commit is added to it
automatically. If not, open a new PR targeting `main`:

```
gh pr create --title "chore(release): prepare NEXT_VERSION" --body "..."
```

Do not tag in this step. Tagging is the job of `leather-release-tag`.
Expand All @@ -100,5 +109,6 @@ Do not tag in this step. Tagging is the job of `leather-release-tag`.
- [ ] CHANGELOG has the new section with at least one bullet
- [ ] No stale version string remains in docs (grep clean)
- [ ] Subcommand tables are in sync
- [ ] Commit is on origin/main
- [ ] Commit is pushed to current branch (not directly to main)
- [ ] PR is open targeting main (create one if it doesn't exist)
- [ ] Working tree is clean (`git status` shows nothing)
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.

## [Unreleased]

## [0.2.0] — 2026-06-05 "weathered"

### Added

- **Shared stdlib leaf utilities** (`internal/fileutil`, `internal/jsonstore`,
Expand Down Expand Up @@ -351,7 +353,8 @@ Intentionally out of scope for v0.1.0; tracked for v0.2:
See [ROADMAP.md](ROADMAP.md) for the full deferred-item list with
rationales and proposed shapes.

[Unreleased]: https://github.com/tgpski/leather/compare/v0.1.3...HEAD
[Unreleased]: https://github.com/tgpski/leather/compare/v0.2.0...HEAD
[0.2.0]: https://github.com/tgpski/leather/compare/v0.1.3...v0.2.0
[0.1.3]: https://github.com/tgpski/leather/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/tgpski/leather/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/tgpski/leather/compare/v0.1.0...v0.1.1
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,8 @@ make example-01 # runs a mock-LLM example end-to-end
| `leather validate` | Validate config, agents, lifecycles, skills, workers, and MCP servers. |
| `leather test-agent` | Run an agent against `MockLLM` and print the transcript. |
| `leather status` | Print scheduler state and current token‑budget settings. |
| `leather snapshot` | Save or restore a point-in-time `tar.gz` archive of runtime state. |
| `leather attach` | Join a running `serve` instance and stream pretty-printed runtime events. |
| `leather replay` | Replay a snapshot or live session. |
| `leather version` / `leather help` | The obvious. |

Expand Down
2 changes: 2 additions & 0 deletions docs/GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -1187,5 +1187,7 @@ my-project/
| `leather ingest` | Write a file as a hide and optionally enqueue it. |
| `leather status` | Print job history, token usage, scheduler state. |
| `leather test-agent` | Run an agent against `MockLLM` and print the transcript. |
| `leather snapshot` | Save or restore a point-in-time `tar.gz` archive of runtime state. |
| `leather attach` | Join a running `serve` instance and stream pretty-printed runtime events. |
| `leather replay` | Replay a snapshot or live session. |
| `leather version` / `leather help` | The obvious. |
10 changes: 4 additions & 6 deletions docs/OPERATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ discipline, queue and dead-letter recovery, DevTools authentication,
upgrades, and troubleshooting.

If you are looking for *how to write an agent*, see [README.md](../README.md)
and [GUIDE.md](GUIDE.md). For trust boundaries and the v0.1 security
and [GUIDE.md](GUIDE.md). For trust boundaries and the v0.2 security
posture, see [SECURITY.md](../SECURITY.md). For architecture context, see
[ARCHITECTURE.md](ARCHITECTURE.md). For the day-2 ops roadmap, see
[ROADMAP.md](../ROADMAP.md).
Expand Down Expand Up @@ -149,7 +149,7 @@ Returns a JSON object — **not** Prometheus exposition format. The shape is:
```

If you need Prometheus, scrape this endpoint and adapt it externally. A
native Prometheus exporter is not in v0.1.
native Prometheus exporter is not in v0.2.

### `GET /cache/stats`

Expand Down Expand Up @@ -359,7 +359,7 @@ in.

## Upgrading

leather is a single static binary with no runtime data migrations in v0.1.
leather is a single static binary with no runtime data migrations in v0.2.

1. Stop the service: `systemctl stop leather` (releases `leather.lock`).
2. Replace the binary: `install -m 0755 leather /usr/local/bin/leather`.
Expand Down Expand Up @@ -393,13 +393,11 @@ For deeper debugging, `--log-level debug` increases verbosity across the
runtime. Logs identify components and agent names but never include token
content, API keys, or hide payloads.

## What is NOT in v0.1
## What is NOT in v0.2

The following commonly-requested operational features are explicitly
deferred. See [ROADMAP.md](../ROADMAP.md) for the full deferral list.

- **`leather snapshot save/restore`** — built-in backup tooling.
Use the stop-then-tar procedure documented above.
- **Prometheus exposition** — `/metrics` returns JSON. Adapt externally.
- **Hot config reload** — `SIGHUP` reloads the worker supervisor but not
every config field. For substantive changes, restart the process.
Expand Down
4 changes: 4 additions & 0 deletions docs/modules/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ HTTP API and replay endpoints, and provides testable command handlers for
| `RunValidate` | `func RunValidate(args []string, stdout, stderr io.Writer) int` | Validate config, agents, lifecycles, skills, workers, and MCP server definitions. |
| `RunTestAgent` | `func RunTestAgent(args []string, stdout, stderr io.Writer) int` | Run an agent with `MockLLM` and optional fake tool responses. |
| `RunStatus` | `func RunStatus(args []string, stdout, stderr io.Writer) int` | Print current config summary and persisted scheduler state. |
| `RunIngest` | `func RunIngest(args []string, stdout, stderr io.Writer) int` | Store raw bytes as a hide and optionally enqueue for curing. |
| `RunReplay` | `func RunReplay(args []string, stdout, stderr io.Writer, version, commit string) int` | Replay a captured snapshot or runs directory via the API. |
| `RunSnapshot` | `func RunSnapshot(args []string, stdout, stderr io.Writer) int` | Save or restore a point-in-time `tar.gz` archive of runtime state. |
| `RunAttach` | `func RunAttach(args []string, stdout, stderr io.Writer) int` | Join a running `serve` instance and stream pretty-printed DevTools events. |
| `RunVersion` | `func RunVersion(_ []string, stdout, _ io.Writer, version, commit string) int` | Print build metadata. |

## Internal Design
Expand Down