Skip to content

chore: prepare v0.3.0 release notes and docs#133

Merged
v0l merged 4 commits into
masterfrom
chore/release-v0.3.0-notes
Jun 17, 2026
Merged

chore: prepare v0.3.0 release notes and docs#133
v0l merged 4 commits into
masterfrom
chore/release-v0.3.0-notes

Conversation

@v0l

@v0l v0l commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Prepares the v0.3.0 release metadata (no functional code changes).

  • Bump workspace version 0.2.0 → 0.3.0
  • Add v0.3.0 changelog section covering changes merged since v0.2.0 that were not yet documented: GET /api/admin/v1/users/by-email, restored LNURLp endpoints, pending-payment auto-delete guard, startup VM→subscription backfill, gateway-outside-CIDR capacity fix, deleted-VM payment handling
  • Document GET /api/admin/v1/users/by-email in ADMIN_API_ENDPOINTS.md

No tag is created yet — will tag after deploy/test verification.

v0l added 4 commits June 17, 2026 10:39
- Bump workspace version 0.2.0 -> 0.3.0
- Add v0.3.0 changelog section covering changes since v0.2.0
  (by-email admin endpoint, LNURLp restore, pending-payment delete
   guard, startup backfill, gateway CIDR fix, deleted-VM payments)
- Document GET /api/admin/v1/users/by-email in ADMIN_API_ENDPOINTS.md
- Add lnvps_agent (AI support agent) to features, crate table, build list
- Add lnvps_agent config reference (OpenAI/LLM, email IMAP/SMTP, Nostr kind-1)
- Add missing workspace crates to table (lnvps_host_util, lnvps_e2e)
…and is_setup in subscription backfill

The vm→subscription backfill wrote several fields incorrectly:
- subscription.created was stamped Utc::now() instead of vm.created, so all
  migrated VMs showed today's date as their creation date
- custom-template VMs got line_item.amount = 0 (showed $0 in the admin UI)
  instead of the computed custom pricing cost
- subscription.currency used the company base currency instead of the
  cost-plan / pricing currency (mismatch with the live provisioning paths)
- is_setup/is_active were forced true even for never-paid VMs, so the
  worker's unpaid-VM cleanup (now keyed off subscription.is_setup) would
  never delete a VM that was still unpaid at migration time

Changes:
- Add created to VmForMigration + its query
- Extract resolve_vm_billing() shared by initial backfill and repair
- build_subscription_for_vm() preserves created and derives is_setup from
  the legacy expires > created signal
- Add Phase 0 repair pass: idempotently corrects already-migrated rows at
  startup (created/currency/interval/is_setup + custom line-item amount)
- Add list_vm_ids_with_subscription() DB method
- Derive PartialEq/Eq on IntervalType for change detection
- Regression tests for created preservation, is_setup, deleted/unpaid cases
…ment endpoints

The v0.2.0 section (tagged 2026-02-22 23:20) contained entries dated
2026-02-23/24/25 \u2014 work that shipped after the tag and belongs in v0.3.0.
Moved those (resource limits, email verification, image checksum/download,
company_base_currency on AdminVmPaymentInfo, manual payment-complete admin
endpoints, cpu_mfg/arch/features unset fix) into the v0.3.0 section.

Also documented the previously-undocumented Sponsoring LIR Agreement
endpoints in both the changelog and API_DOCUMENTATION.md:
- GET /api/v1/legal/sponsoring-lir-agreement
- GET /api/v1/legal/sponsoring-lir-agreement/from-subscription/{id}
@v0l v0l merged commit 79cd72c into master Jun 17, 2026
7 checks passed
@v0l v0l deleted the chore/release-v0.3.0-notes branch June 17, 2026 10:48
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