diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cd7214b..a150a24c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,23 @@ PyPI version — not the changelog header. ## [2026-07-17] +**v2.7.2** — everything merged since v2.7.1, headlined by the compass decision +engine v2: curation with supersedes links + write-time conflict advisories +(Track 1), and ambient recall — rated past decisions now surface verbatim into +live sessions on matching prompts, governed by session caps and spacing +(Track 2). Also in this release: the plan close pipeline completes itself +(auto-vectorization + crash-safe registry writes), drone's 3-layer subprocess +timeout policy with a collision-free `--drone-timeout` flag, plan-number memory +search that pins the exact plan, a fleet-wide seedgo 100% restoration, and +SSH-signed commits now verifying on GitHub. Details in the sections below +(2026-07-16 carries the full stories). + ### Changed +- **Release cadence ruling: every dev→main merge ships a PATCH bump + tag by + default.** PyPI tracks main, always current; version numbers carry no + significance during beta — the big jump is reserved for beta exit. + - **Merge playbook SOP refined from live run PPLAN-0010.** The raw `git fetch origin main:main` step (now blocked by the git gate) is replaced with `drone @git sync` in both places it appeared, and the template opens diff --git a/pyproject.toml b/pyproject.toml index 367242de..d790a3bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "aipass" -version = "2.7.1" +version = "2.7.2" description = "A local multi-agent framework where your AI agents keep their memory, work together, and never ask you to re-explain context" readme = "README.md" license = "MIT" diff --git a/src/aipass/__init__.py b/src/aipass/__init__.py index 21e11f5a..ab100156 100644 --- a/src/aipass/__init__.py +++ b/src/aipass/__init__.py @@ -3,4 +3,4 @@ git clone + ./setup.sh — https://github.com/AIOSAI/AIPass """ -__version__ = "2.7.1" +__version__ = "2.7.2" diff --git a/src/aipass/flow/templates/playbook_plans/merge.md b/src/aipass/flow/templates/playbook_plans/merge.md index 7e45fbf6..743d3a2c 100644 --- a/src/aipass/flow/templates/playbook_plans/merge.md +++ b/src/aipass/flow/templates/playbook_plans/merge.md @@ -74,7 +74,7 @@ just that one merge commit — **cosmetic and trivially resolved**. - [ ] Confirm what's shipping — scan uncommitted changes + already-pushed dev commits ahead of main: `git rev-list --count main..dev` (read git, raw ok) - [ ] No surprise files (stray `/tmp` artifacts, test pollution, `.recovery`/`.archive` churn). Clean = archive, never delete. - [ ] **Version state check** (informs the bump decision): read the **two** release-tied versions — `grep '^version' pyproject.toml` and `grep __version__ src/aipass/__init__.py` (they should match; if drifted, note it) — and what PyPI already has: `curl -s https://pypi.org/pypi/aipass/json | python3 -c "import sys,json;print(json.load(sys.stdin)['info']['version'])"`. PyPI rejects a duplicate, so the target must be > published. -- [ ] Decide: **release tag this merge?** (tag = PyPI publish + GitHub Release). If yes, note target version. (Significance call is the user's — the PATCH-default rule below is guidance, and the actual release history is a useful tie-breaker.) +- [ ] **Release tag: default YES with PATCH bump.** Every dev-to-main merge ships a PATCH bump + tag so PyPI always tracks main (Patrick ruling S318, 2026-07-17 — version numbers carry no significance during beta). Override to MINOR/MAJOR only when warranted; skip only if explicitly told. ## 2. Verify, commit, CHANGELOG @@ -117,10 +117,12 @@ The PR gate (verified against `.github/workflows/`): - [ ] Never rebase, never reset, never checkout main. - [ ] Dependabot / other PRs targeting main: they go green once main has the fix + bots rebase — check after the push -## 7. Release tag (only if cutting a release) +## 7. Release tag -**Versioning rule — bump by SIGNIFICANCE, not cadence:** -- **PATCH** (`x.y.Z+1`) = fix / internal / standards / UX only → the default for most merges +**Standing default: PATCH bump every merge** (Patrick ruling S318, 2026-07-17). PyPI should always track main; version numbers carry no significance during beta. Big jump reserved for beta exit. + +Reference (SemVer — for when significance matters post-beta): +- **PATCH** (`x.y.Z+1`) = fix / internal / standards / UX only - **MINOR** (`x.Y+1.0`) = a new backward-compatible user-facing feature shipped - **MAJOR** (`X+1.0.0`) = breaking public-API change