• v0.7.0 2d3f5893d6

    v0.7.0
    All checks were successful
    E2E / Playwright against staging (push) Successful in 41s
    Check / fmt + clippy + build + tests (push) Successful in 1m41s
    Build OCI container / Build and push mokosh-server image (push) Successful in 5m44s
    Integration / integration tests (push) Successful in 10m11s
    Stable

    David released this 2026-07-15 14:18:47 +02:00 | 185 commits to main since this release

    Changelog

    2d3f589 Merge pull request 'Release v0.7.0' (#450) from release/v0.7.0 into main
    b8a52cb Release v0.7.0
    3aeaac9 Merge pull request 'feat(auth): alert users on a new-country login (PMS-657)' (#449) from feat/PMS-657-login-location-alerts into main
    e778b46 feat(auth): user-settable login-location opt-out, non-blocking alert (PMS-657)
    100ade1 feat(auth): alert users on a new-country login (PMS-657)
    fe5d511 Merge pull request 'feat(seed): load first-visit demo data from a committed bundle, not hardcoded Rust (PMS-651)' (#448) from feat/PMS-651-data-driven-seed into main
    1c0c120 feat(seed): load first-visit demo data from a committed bundle, not hardcoded Rust (PMS-651)
    40a8b83 Merge pull request 'test(seed): assert demo seed is the clean baseline with no zQA/QA prefix (PMS-629)' (#447) from fix/PMS-629-demo-seed-no-zqa into main
    2da0a7e test(seed): assert demo seed is the clean baseline with no zQA/QA prefix (PMS-629)
    dd5e390 Merge pull request 'fix(e2e): correct stale provisioning docs + cli.rs drift, skip suite when staging unseeded' (#446) from fix/PMS-656-e2e-provisioning-cleanups into main
    abbe8c7 fix(e2e): correct stale provisioning docs + cli.rs drift, skip suite when staging unseeded
    fc82ffe Merge pull request 'fix(audit): record real client IP behind Traefik' (#444) from fix/PMS-587-audit-client-ip into main
    af6f8d9 Merge remote-tracking branch 'origin/main' into fix/PMS-587-audit-client-ip
    b321f82 Merge pull request 'fix(e2e): submit login once with rate-limit backoff, surface the hub banner' (#445) from fix/PMS-654-e2e-login-backoff into main
    c0721b4 Merge pull request 'fix(data): defer FK checks so tenant import survives cyclic schema' (#442) from feat/PMS-648-deferrable-fk-import into main
    4f62cc0 fix(e2e): submit login once with rate-limit backoff, surface the hub banner
    6de4363 Merge remote-tracking branch 'origin/main' into feat/PMS-648-deferrable-fk-import
    b3954a1 fix(audit): record real client IP behind Traefik
    bfd56b9 Merge pull request 'feat(data): include tenant_name in the export envelope (PMS-647)' (#443) from feat/PMS-647-export-tenant-name into main
    74b50a6 ci: re-trigger checks (E2E flake on shared staging account)
    d12bead feat(data): include tenant_name in the export envelope (PMS-647)
    86ae88b fix(data): defer FK checks so tenant import survives cyclic schema
    f2de869 Merge pull request 'fix(data): break tenants->company FK before import wipe (un-red main, PMS-648)' (#441) from feat/PMS-648-data-import into main
    8cde8b3 test(data): quarantine import round-trip until deferrable-FK redesign
    7380d40 fix(data): break tenants->company FK before the import wipe
    9880f2e Merge pull request 'test(data): fix red integration round-trip (robust to pre-seeded data, PMS-648)' (#440) from feat/PMS-648-data-import into main
    07fdd05 test(data): make export/import round-trip robust to pre-seeded tenant data
    8f01cb1 Merge pull request 'feat(data): tenant data import - envelope validation + id-remap core (PMS-648)' (#439) from feat/PMS-648-data-import into main
    575bd33 Merge pull request 'feat(data): admin-only tenant data export endpoint (PMS-647)' (#438) from feat/PMS-647-data-export into main
    88df505 feat(data): tenant data import wipe-and-replace load + round-trip test
    d193e46 feat(data): tenant data import - envelope validation + id-remap core
    25a583e feat(data): admin-only tenant data export endpoint
    a9f0f4d Merge pull request 'fix(e2e): make the setup onboarding PUT best-effort, not fatal (PMS-645)' (#437) from fix/PMS-645-onboard-best-effort into main
    3c42e55 fix(e2e): make the setup onboarding PUT best-effort, not fatal
    a89cf26 Merge pull request 'fix(release): sync Cargo.lock on release and correct main's drift (PMS-642)' (#435) from fix/PMS-642-release-syncs-cargo-lock into main
    64717d5 Merge pull request 'fix(dev): mount ./tests so pre-commit compiles integration tests (PMS-640)' (#434) from fix/PMS-640-precommit-compile-integration-tests into main
    54920a7 Merge pull request 'feat(settings): DB-backed SMTP email config with live mailer swap (PMS-638)' (#433) from feat/PMS-638-email-db-settings into main
    7663cb3 Merge branch 'main' into fix/PMS-642-release-syncs-cargo-lock
    15d3141 Merge branch 'main' into fix/PMS-640-precommit-compile-integration-tests
    dba0e5d Merge branch 'main' into feat/PMS-638-email-db-settings
    db11e3d Merge pull request 'fix(e2e): onboard the E2E fixture account so specs are not bounced to onboarding (PMS-641)' (#436) from fix/PMS-641-onboard-e2e-account into main
    b777e41 fix(e2e): onboard the E2E fixture account so specs are not bounced to onboarding
    afec11e chore(release): drop no-op SQLX_OFFLINE from the cargo update step
    e09f70d fix(release): sync Cargo.lock on release and correct main's drift
    9375020 fix(dev): mount ./tests so pre-commit compiles the integration tests
    e9e19b8 fix(test): wrap LogMailer in SharedMailer for create_api_router
    3cc8a96 fix(settings): build-validate email config before persisting it
    9040a0b feat(settings): DB-backed SMTP email config with live mailer swap

    Downloads