From 098e142791e7462c5a61491a5a63793f9b0060f9 Mon Sep 17 00:00:00 2001 From: susheem-k Date: Sun, 13 Sep 2026 12:25:02 +0530 Subject: [PATCH] =?UTF-8?q?chore:=20release=20prep=200.2.0=20=E2=80=94=20s?= =?UTF-8?q?ync=20=5F=5Fversion=5F=5F,=20fold=20CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit __version__ was still 0.1.0 while pyproject said 0.2.0, which release.yml refuses (it requires the two to match before tagging). 0.2.0 was never published to PyPI, so the background-CLI and Dockerfile work sitting under [Unreleased] folds into the 0.2.0 entry rather than taking a version of its own — 0.3.0 is reserved for the breaking fold in #11. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01EMQxc7WjBTqdUJu18LAskK --- CHANGELOG.md | 36 +++++++++++++++++------------------- control_plane/__init__.py | 2 +- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3f0f9c..3b471b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,25 +2,7 @@ ## [Unreleased] -### Added - -- `control-plane start` / `stop` / `status` — run the plane detached from the - terminal as one managed background instance (PID + state file under a - `platformdirs` user-state dir; logs redirected to a file since the process is no - longer attached to a console). `start` waits for `/health` before returning and - reaps the process if it never comes up; `stop` escalates `terminate()` → `kill()` - on a timeout; both are idempotent (safe to call when already in the target state). - Cross-platform: POSIX detaches via `start_new_session`, Windows via - `DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP` — Windows has no SIGTERM, so `stop` - there is a hard stop, not a graceful drain. - New deps: `psutil`, `platformdirs`. -- `Dockerfile` + `docker-compose.yml` — the repo's first container image. Builds from - source (`pip install .`), runs as a non-root user, SQLite on a `/data` volume, - built-in `HEALTHCHECK` against `/health`. Entrypoint is `control-plane serve` - (foreground) — the container is its own process supervisor, so the new - `start`/`stop`/`status` background mode is for local dev only, not for images. - -## [0.2.0] — TokenOps remote-only (#10) +## [0.2.0] — 2026-09-13 — TokenOps remote-only + background CLI (#10) **Additive on the wire and schema.** 0.1-era clients keep working against 0.2.x; the breaking fold (drop `run_registrations`, remove `create_run`, narrow `PATCH`) is @@ -43,6 +25,22 @@ Added forward-only `_apply_migrations()`. Opening a 0.1 DB adds the new tables/columns and bumps the version — no data loss. The 0.3.0 destructive fold (#11) slots in as v3. +- `control-plane start` / `stop` / `status` — run the plane detached from the + terminal as one managed background instance (PID + state file under a + `platformdirs` user-state dir; logs redirected to a file since the process is no + longer attached to a console). `start` waits for `/health` before returning and + reaps the process if it never comes up; `stop` escalates `terminate()` → `kill()` + on a timeout; both are idempotent (safe to call when already in the target state). + Cross-platform: POSIX detaches via `start_new_session`, Windows via + `DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP` — Windows has no SIGTERM, so `stop` + there is a hard stop, not a graceful drain. + New deps: `psutil`, `platformdirs`. +- `Dockerfile` + `docker-compose.yml` — the repo's first container image. Builds from + source (`pip install .`), runs as a non-root user, SQLite on a `/data` volume, + built-in `HEALTHCHECK` against `/health`. Entrypoint is `control-plane serve` + (foreground) — the container is its own process supervisor, so the new + `start`/`stop`/`status` background mode is for local dev only, not for images. + Changed - `POST /v1/runs` response includes `registered_at`; `register_run` returns the persisted row so the SDK can bind without a follow-up `GET .../registration`. diff --git a/control_plane/__init__.py b/control_plane/__init__.py index 8777bb9..d5bb355 100644 --- a/control_plane/__init__.py +++ b/control_plane/__init__.py @@ -1,3 +1,3 @@ """AgentPlane shared control plane — governance (TokenOps) + Chronicle envelopes.""" -__version__ = "0.1.0" +__version__ = "0.2.0"