Skip to content

fix: harden governed learning storage#3

Merged
zzhang82 merged 1 commit into
mainfrom
fix/v0.14.1-governance-hardening
May 26, 2026
Merged

fix: harden governed learning storage#3
zzhang82 merged 1 commit into
mainfrom
fix/v0.14.1-governance-hardening

Conversation

@zzhang82
Copy link
Copy Markdown
Owner

Summary

Hardens the v0.14 governed learning-candidate boundary after post-release review found schema/static-client, storage, concurrency, and governance edge cases.

Fixes

  • Normalize empty optional text fields at MCP and storage boundaries.
  • Normalize empty claim_signal filters from static-schema clients.
  • Validate SQL identifiers in ensure_column() and tolerate duplicate-column migration races.
  • Add SQLite busy_timeout on bridge connections.
  • Wrap FTS rebuild in a savepoint and add a concurrency smoke regression.
  • Add indexed is_learning_candidate suppression with legacy backfill.
  • Block direct promote() on learning-candidate records and forged structured learning-candidate content.
  • Bump package/docs to v0.14.1 and add release notes.

Validation

  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv run --extra dev pytest -q tests/test_v0141_hardening.py tests/test_storage.py tests/test_learning_candidates.py -> 59 passed
  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv run --extra dev pytest -q -> 243 passed
  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv run python scripts/check_release_contract.py -> ok true
  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv run python scripts/check_public_surface.py -> ok true
  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv run python scripts/check_onboarding_contract.py -> ok true
  • UV_PROJECT_ENVIRONMENT=/tmp/amb-v0141-venv uv pip check -> compatible
  • Klaus claim-safety review -> PASS

Boundaries

The FTS concurrency regression is a smoke-level check, not a proof of all multi-process interleavings. The public MCP surface remains unchanged at 10 tools.

@zzhang82 zzhang82 merged commit f3c24db into main May 26, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant