You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add person-only, home-wide amem migrate --sync-placement --dry-run|--apply|--resume|--abandon (#281). A person declares every local amem install that writes the home with repeatable --writer-root; the running CLI and every applied setup-receipt root are mandatory, and each install is measured afresh (package version and runtime-file pin) at every authority and sync boundary. Activation is crash-safe, forward-only, and leaves an immutable root locator so plain and cadence amem sync need no extra flags. An interrupted activation can be abandoned only while both markers still hold their original v2 bytes. Agent-marked sessions are refused before any home access. Activation never runs a migration, changes policy or writes formats.json.
Add same-epoch writer renewal through the same command on an already-active home (#282). After an amem upgrade or a host pin change, a person reviews the inventory diff and applies a new bounded revision; old holds, journal records, publication receipts, the initial locator and the active fence stay unchanged, and no new epoch is started. Renewal requires 0.22.0-or-later installs and a person-authored home floor at 0.22.0. It refuses while an append, publication, reservation or source-recovery intent is outstanding, and names the restore, sync and renew order. Interrupted renewals resume or, before the first commit-log byte, can be abandoned. The chain is capped at 64 revisions inside the epoch's 256-object budget; dry-run reports the remaining headroom, and checkpointing is tracked in #288.
CI runs bun test in two time-balanced shards per OS and moves the measurement and compatibility steps into their own job; the check (ubuntu-latest) and check (macos-latest) names remain the required gates and fail when any shard or measurement job fails (#283). The release workflow publishes only after every shard and the pre-publish gate pass. The recorded macOS acceptance run had a 13m25s critical path, versus the previous 31-37 minute jobs.
Compatibility with N-1 (0.21.0): curated, capture, hook-spool, candidates, work-list and setup receipt formats are unchanged, and no code raises a format floor. Indexes: INDEX_VERSION and the index file name are unchanged. Sync: shared-v1, generation and v1/v2 shard sync are unchanged, and inactive homes behave as before. Placement activation and renewal are opt-in person commands. On an activated home, the person should append the home floor at 0.22.0 at activation and must do so before the first renewal: with it, 0.21.0 refuses read, write and sync with Upgrade amem to 0.22.0 or later. before any effect. Without that floor, 0.21.0 can still read an activated but unrenewed v3 home. Its CLI supplies no writer attestation, so CLI v3 sync refuses. If renewal history is present, its closed journal reader also refuses that history and placement publication before effects. Tests cover both cases against the published 0.21.0. Activation adds the pending sync-placement-activation.json intent and immutable sync-placement-writer-roots.json locator at home level. Renewal adds writer-revision-NNNNN.json and writer-revisions.jsonl inside the existing epoch, plus the pending home-level sync-placement-writer-renewal.json intent and its owned .pending-<hash> companion. Root exports are additive only (313 to 320 runtime exports against 0.21.0, none removed). The console plugin module is unchanged, so an existing amem setup console registration stays valid at the same install root; after moving roots, rerun amem setup console --apply to update its pinned module path.