v0.3.0 — RabbitMQ steady-state resilience and frontend completion
Closes the RabbitMQ reconnection gaps found while validating steady-state failure recovery: inventory-service now redeclares exchange/queue topology after every reconnect (the actual root cause of a prior incident, not just the dropped-TCP-connection symptom already fixed), its Outbox publisher uses publisher confirms instead of a fire-and-forget publish, and per-event channel validation stops one bad outbox row from poisoning an entire poll batch. All six services now expose the same reconnection observability contract — rabbitmq_reconnect_attempts_total, rabbitmq_topology_setup_total{outcome}, messaging_last_progress_timestamp_seconds — visualized in a new "EasyDora / Resilience" Grafana dashboard. orders-service and billing-service's JWT filters were also standardized to let the filter chain continue on an unknown token instead of returning 401 directly, matching products-service's existing behavior.
On the product side, the frontend gained three screens that close out its remaining thin-client gaps: signup with an on-screen email-verification token (no real email sending, consistent with notification-service's own scope), seller product creation, and buyer-initiated order cancellation from PENDING/PROCESSING/INVENTORY_RESERVED. A .dockerignore was added to every service's build context.
This release also formalizes how the project versions and releases itself: every pom.xml and frontend/package.json/package-lock.json now track the release tag instead of an untouched generator default, and docs/project-governance/versioning-and-release-policy.md documents what a version number means here (1.0.0 as architectural stabilization, not a production-readiness claim — this remains an educational/portfolio project), an objective test for what counts as an architectural change, and the release checklist. A few stale README claims about contract-test and Outbox coverage were also corrected to match ADR-0002's and ADR-0037's actual current scope.
See ADR-0038's 2026-07-20 Update for the full RabbitMQ incident writeup and the reconnection observability contract this release completes, and docs/project-governance/versioning-and-release-policy.md for the versioning policy.
Structural ADRs this release: 1 (ADR-0038's 2026-07-20 Update) — consecutive non-structural releases: 0.