# Changelog — mgf-vm-firecracker

All notable changes land here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
and [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.4] - 2026-06-26

### Changed
- Release the **mgf-common 0.49** pin (`<0.50`) onto devpi so the full
  fleet co-installs at the 0.49 cornerstone (devpi backfill; no API change).

## [0.1.3] - 2026-06-16

### Changed
- Widened the `mgf-common` pin to `<0.48` — mgf-common 0.47 is the pure-library release (the end-user CLI moved to `mgf-fed[cli]`); the importable API is unchanged.

## [Unreleased]

## [0.1.2] — 2026-06-06 — federation cohort: mgf-common 0.46 walk

Walk the `mgf-common` pin ceiling `<0.46 → <0.47` to accept the
library-API-neutral `mgf-common 0.46.0` (CLI-only release: new
`federation`/`design` commands + a `doctor --standards` gate; no library
surface change).

---

## [0.1.1] — 2026-06-04 — federation cohort: mgf-common 0.45 walk

PATCH: pin widened to `mgf-common>=0.41,<0.46` to accept mgf-common 0.45
(Codeberg cutover — PKG-01..12). `mgf-*` resolve from the `codeberg-mgf`
index (PKG-06). No API change.

## [0.1.0] - 2026-06-03

First Codeberg release. Resolves all external `mgf-*` dependencies
(`mgf-common`, `mgf-vm-core`) from the Codeberg PyPI registry instead
of local sibling checkouts.

### Added
- Initial repo skeleton (2026-05-24): the canonical second-adapter
  exercise per D-F2 in `vm-vmanager-docs/DECISIONS.md`. Same
  federation pattern as `mgf-vm-libvirt`: `pyproject.toml` +
  four-gate scaffolding (ruff / mypy / pytest / import-linter), MIT
  license, README pointing to `vm-vmanager-docs` (and specifically
  to `developer/adding-an-adapter.md` — the playbook this repo is
  the worked example for).
- `src/mgf/vm/firecracker/` namespace skeleton + smoke test.
- Federation discipline files: `USERS.md`, `STANDARDS_NOTE.md`,
  `docs/inprogress/MGF_STANDARDS_CONFORMANCE.md`.

### Pending (Phase 1)
- `FirecrackerAdapter` implementing `HypervisorBackend` +
  `StorageBackend` per `vm-vmanager-docs/component-specs/contracts.md`.
- `api/` — REST-over-UDS client.
- `jailer.py` — subprocess management with SC-02 argv discipline.
- `translate.py` — `VmSpec` ↔ Firecracker JSON.
- `errors.py` — typed-error translation at the seam.
- Conformance suite green against real Firecracker.

### Capabilities Firecracker will report
- `supports_live_migration` = False
- `supports_memory_snapshots` = False (full-VM snapshots yes; the
  distinction is documented in adapter.py when it lands)
- `supports_device_attach_live` = False (no PCI passthrough)
- Image format: raw only
- Isolation: jailer-based; `IsolationLevel.high` only

These capability gates let the conformance suite skip the right
tests automatically.
