Skip to content

release: v3.2.0 — fix #833 + ship Unreleased (was: v3.1.1 release) - #835

Merged
github-actions[bot] merged 2 commits into
mainfrom
fix/issue-833-demotion-pressure-skew
May 15, 2026
Merged

release: v3.2.0 — fix #833 + ship Unreleased (was: v3.1.1 release)#835
github-actions[bot] merged 2 commits into
mainfrom
fix/issue-833-demotion-pressure-skew

Conversation

@robotrocketscience

@robotrocketscience robotrocketscience commented May 15, 2026

Copy link
Copy Markdown
Owner

Closes #833.

Replaces the prior release: v3.1.1 shape on this branch after the review thread surfaced that tagging current main at v3.1.1 would be a SemVer violation: [Unreleased] includes #814's Removed entry with four explicit breaking-API changes (apply_feedback(propagate=) kwarg → TypeError, FeedbackResult.{pressured_locks,demoted_locks}AttributeError, aelf locked --pressured CLI flag, aelf:feedback/aelf:confirm MCP payload keys → KeyError). Patch-version bumps cannot ship breaking changes; the SemVer-correct shape is v3.2.0.

What changed vs the prior PR shape

  • pyproject.toml + uv.lock: 3.1.03.2.0 (was: 3.1.03.1.1).
  • CHANGELOG/v3.md:
    • Renames ## [Unreleased]## [3.2.0] - 2026-05-15 and opens a new empty ## [Unreleased] above (per top-level CHANGELOG.md policy: "On release, move [Unreleased] content into a dated ## [X.Y.Z] section").
    • Prepends the #833 Fixed entry to the new [3.2.0] ### Fixed section.
    • Updates compare-link footers: [Unreleased]: …v3.2.0…HEAD, new [3.2.0]: …v3.1.0…v3.2.0. (Fixed a pre-existing drift in the same edit — the previous [Unreleased]: …v3.0.1…HEAD should have been …v3.1.0…HEAD after the v3.1.0 ship.)
  • Regression test commit (6c8963ef test: regression for #833 demotion_pressure post-DROP read) — unchanged from 3d1aecbb.

What ships in v3.2.0

Section Issue Summary
Added #816 Hot-path touch state v1 storage substrate
Added #817 ζ posterior-rerank surface (bounded sigmoid contribution)
Added #758 Seventh meta-belief consumer: adaptive posterior_temperature
Fixed #833 aelf v3.1.0 crash on any DB previously touched by post-#814 code
Fixed #834 Auto-install gated to uv-tool installs only
Fixed #798 Rebuilder pack accounting honours use_type_aware_compression
Fixed #809 Subfloor noise-pattern filter at sentence-level ingest
Removed #814 CONTRADICTS-edge auto-demote surface (breaking — see entry for caller migration notes)

Verification

  • 2 atomic signed commits (%G? = G); no rewrite of 6c8963ef.
  • Rebased onto current main (d3ea7ef5) — clean FF.
  • release-docs-check (existing) passes: [3.2.0] section + compare-link footnote exist in CHANGELOG/v3.md.
  • release-docs-check (after ci(release-docs-check): assert [Unreleased] drained on release PR (#837) #838 lands) would also pass: [Unreleased] is now empty.
  • pytest 3.12 / 3.13 will exercise the tests/test_demotion_pressure_drop.py regression on the rebased head.

Out of scope

@robotrocketscience robotrocketscience added the author-bagheera PR opened by bagheera session — do not pick up for review label May 15, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @robotrocketscience, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@robotrocketscience robotrocketscience added the attn:review Needs review (PR open, awaiting reviewer) label May 15, 2026
@github-actions

github-actions Bot commented May 15, 2026

Copy link
Copy Markdown

PR-size soft cap

This PR is over the advisory size threshold:

  • 129 changed lines (limit: 200)
  • 4 changed files (limit: 3)

Bigger PRs collide with more open work, which under the parallel-session workflow tends to produce repeated attn:merge-conflict cycles (see #602). When practical, split into smaller PRs that each touch a focused surface.

This is advisory only — nothing is blocked. If the size is intentional (large refactor, module removal, generated code), apply the size:override label and this comment will be removed on the next push.

@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (2)
  • docs:
  • release:

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d92ae1c7-25da-4d47-8898-1e88c162a6ae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/issue-833-demotion-pressure-skew

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:prince:2026-05-15T01:32:04Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

Reviewed e028573d (and prior 3d1aecbb). Reproducing the bug locally is unnecessary — the patch path matches what main already does. Two issues, the second is a blocker.

✅ What's right

  • Atomic split. Test commit and release commit are separated — matches the "atomic commits beat batched" rule in ~/.claude/CLAUDE.md.
  • Test correctness. _seed_v3_1_0_store mirrors the v3.1.0 column set, then opening with current MemoryStore exercises the DROP COLUMN demotion_pressure migration in _MIGRATION_STATEMENTS. The assertion that get_belief("b833") round-trips without IndexError directly guards _row_to_belief's defensive-keys contract. Second case verifies idempotent re-open. The minor noqa: SLF001 on s._conn.execute(...) for the PRAGMA table_info check is acceptable scope-bracketing for a regression test.
  • Version bump. pyproject.toml 3.1.0 → 3.1.1 and uv.lock re-locked.
  • CI. All required green: pytest 3.12 + 3.13, CodeQL python + actions, bench-smoke, eval calibration, staging-gate (secrets/pattern/history/release-docs/commit-msg/pr-title/pr-body), deptry, vulture, typos.
  • Commits signed. Both 3d1aecbb and e028573d validate (%G? = G).

🚨 Blocker — release scope / SemVer mismatch

The PR cuts v3.1.1 from current main. Current main's CHANGELOG/v3.md [Unreleased] section contains five entries that have landed since the v3.1.0 tag:

This PR moves only the new #833 Fixed entry into [3.1.1] and leaves the other five in [Unreleased]. That produces two compounding problems:

  1. Project release policy violation. Top-level CHANGELOG.md is explicit: "On release, move [Unreleased] content into a dated ## [X.Y.Z] section and add the compare-link footnote at the bottom of the same file." The release-docs-check job in .github/workflows/staging-gate.yml only checks that the ## [X.Y.Z] header and compare-link footnote exist — it does not check that [Unreleased] was actually drained. That's the gap that let this CI-green.

  2. SemVer violation. Tagging v3.1.1 at this HEAD ships every commit in v3.1.0..HEAD, which includes refactor(feedback): remove unreachable CONTRADICTS-edge auto-demote path (per #605) #814 with its four breaking-API changes. A patch-level bump for breaking changes is a SemVer break.

Resolution — two paths

A is the cheaper unblock for installed v3.1.0 users (which is what #833 is actually about). B is the right call only if we want everything currently on main to ship now.

Recommend A.

Follow-up — release-docs-check should catch this

release-docs-check should also assert that ## [Unreleased] is empty after the new dated section, or fail. That would have blocked this PR pre-review. Worth a follow-up issue (small docs-job patch).

🔸 Minor observation (not gating)

The PR title release: v3.1.1 — ... and branch name fix/issue-833-demotion-pressure-skew disagree on the conventional prefix. release: is the right title prefix for a version-bumping PR (per ~/.claude/CLAUDE.md). The branch name being fix/... rather than release/v3.1.1 is a minor convention drift but not a blocker — the commit subjects and PR title use the correct prefixes.


Not adding ready-to-merge. Leaving attn:review so the next session sees this and routes to either A or B. Release claim on this PR.

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:prince:2026-05-15T01:35:43Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:prince:2026-05-15T02:59:13Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:oppenheimer:2026-05-15T03:00:34Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:oppenheimer:2026-05-15T03:00:38Z]

@yoshi280
yoshi280 force-pushed the fix/issue-833-demotion-pressure-skew branch from e028573 to 37f9773 Compare May 15, 2026 03:01
@robotrocketscience robotrocketscience changed the title release: v3.1.1 — fix demotion_pressure schema/reader skew (#833) release: v3.2.0 — fix #833 + ship Unreleased (was: v3.1.1 release) May 15, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

Pushed Path B per the review thread. Rationale recap:

  1. Tagging current main at v3.1.1 ships #814's Removed entry, which is explicitly breaking (four call-site TypeError/AttributeError/KeyError/unrecognised-argument signatures listed in the entry body). SemVer requires a minor bump → v3.2.0.
  2. Path A (hotfix branch from the v3.1.0 tag) is SemVer-correct but doesn't compose with the existing merge-train (which only does FF-push to main), and the post-v3.1.0 CHANGELOG/v3.md split (feat(ingest): subfloor noise-pattern filter + intra-turn edge-anchor demotion (#809) #810 / docs(hibernation): mark memo as design-stage / unimplemented (#825) #832) means a hotfix-branch CHANGELOG edit would need a separate backport-to-main reconciliation pass.
  3. Path B (this PR, now) ships the same #833 fix plus the other six entries that already landed on main, all under one SemVer-correct tag, through the normal release infra.

Branch force-pushed onto current main (d3ea7ef5). The regression-test commit (6c8963ef) is unchanged from the prior 3d1aecbb — only the release commit was rewritten. Two signed commits, FF on main.

Re-adding ready-to-merge. Reviewer notes:

@robotrocketscience robotrocketscience added ready-to-merge Trigger merge-train: FF main to this PR's head and removed attn:review Needs review (PR open, awaiting reviewer) labels May 15, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:prince:2026-05-15T03:06:18Z]

@github-actions

Copy link
Copy Markdown

merge-train: blocked

branch is not fast-forward on main (branch base d3ea7ef5e9af80ca02cbd391a42e1169f05f6b38, current main 75d27b38a6a0838a8b8868aa9afe10de05fa57ac). Rebase locally (git rebase github/main), force-push, and re-add the label.

The ready-to-merge label has been removed. Address the issue above and re-add the label when you're ready for another attempt.

Seeds a DB with the pre-DROP belief schema (v3.1.0 column set including
`demotion_pressure`), opens it through MemoryStore so the
`ALTER TABLE beliefs DROP COLUMN demotion_pressure` migration fires,
and asserts `get_belief()` round-trips without `IndexError`. Second
case verifies the drop is idempotent across re-opens.
…hip [Unreleased]

Replaces the prior `release: v3.1.1` commit (`e028573d`) per the PR
review thread: tagging from current `main` ships #816, #817, #758 (Added),
#834, #798, #809 (Fixed), and #814 (Removed). Of those, #814 documents
four explicit breaking API changes (`apply_feedback(propagate=)` kwarg
→ TypeError, `FeedbackResult.{pressured_locks,demoted_locks}` →
AttributeError, `aelf locked --pressured` CLI flag, `aelf:feedback` /
`aelf:confirm` MCP payload keys → KeyError). SemVer requires a minor
bump for those removals → v3.2.0, not v3.1.1.

#833's user-visible fix (defensive `_row_to_belief` against post-DROP
schema) is already on `main` via the column removal in fed650c; the
regression test in the prior commit guards the contract. Cutting from
`main` is sufficient — no hotfix-from-tag needed.

Changes:

- pyproject.toml + uv.lock: 3.1.0 → 3.2.0.
- CHANGELOG/v3.md:
  - Rename `## [Unreleased]` → `## [3.2.0] - 2026-05-15`; open a new
    empty `## [Unreleased]` above it (project policy in top-level
    CHANGELOG.md: "On release, move [Unreleased] content into a dated
    ## [X.Y.Z] section").
  - Prepend the #833 Fixed entry to the new [3.2.0] section.
  - Update compare-link footers: `[Unreleased]: ...v3.2.0...HEAD`,
    new `[3.2.0]: ...v3.1.0...v3.2.0`. The prior `[Unreleased]:
    ...v3.0.1...HEAD` was stale (should have been v3.1.0...HEAD after
    the v3.1.0 ship); fixed in passing.

Closes #833.
@yoshi280
yoshi280 force-pushed the fix/issue-833-demotion-pressure-skew branch from 37f9773 to 840a792 Compare May 15, 2026 03:11
@robotrocketscience robotrocketscience added the ready-to-merge Trigger merge-train: FF main to this PR's head label May 15, 2026
@github-actions github-actions Bot removed the ready-to-merge Trigger merge-train: FF main to this PR's head label May 15, 2026
@github-actions
github-actions Bot merged commit 840a792 into main May 15, 2026
26 of 27 checks passed
@github-actions

Copy link
Copy Markdown

merge-train: merged 840a792main via FF push.

@robotrocketscience
robotrocketscience deleted the fix/issue-833-demotion-pressure-skew branch May 20, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author-bagheera PR opened by bagheera session — do not pick up for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] aelf v3.1.0 crashes on any DB touched by post-#814 code — demotion_pressure schema/reader skew

1 participant