History: internal/server/api/api.go
Ref:
| Hash | Message | Author | Date |
|---|---|---|---|
| 39c407f2 | volumes: durable block storage a VM attaches at create | a73x | 2026-09-05 |
| 7bf37937 | release: one Feature shape for every version floor | a73x | 2026-09-05 |
| 1ca7b3d5 | vms: a host that says nothing cannot vouch for its guests | a73x | 2026-09-05 |
| 81b4b6c1 | fix: three boundaries the audit found open | a73x | 2026-09-02 |
| b5e82f75 | comments: a claim a test already fails on is not one | a73x | 2026-08-23 |
| 5e59e2b0 | wire: the spec/status vocabulary the loop always meant | a73x | 2026-08-22 |
| f52ac6a1 | networks: a VM joins the operator's LAN by name, and keeps its NAT life | a73x | 2026-08-14 |
| c994de4a | refactor: one home each for facts the tree stated in several | a73x | 2026-08-12 |
| 120a24fd | fix(consolidation): centralize the defaults the review found drifted | a73x | 2026-08-12 |
| d6105e58 | fix(placement): the plane's refusal is never stricter than the host's admission | a73x | 2026-08-12 |
| c4ec7226 | feat(observability): a creating VM says what it is doing, and an exposure counts its sessions | a73x | 2026-08-11 |
| 7d929b91 | feat(console): an offered upgrade shows itself | a73x | 2026-08-11 |
| 55e7bb7f | feat(server): a full host is not a place to put one | a73x | 2026-08-11 |
| f986d9b8 | feat(fleet): persistence is not a column | a73x | 2026-08-11 |
| 8dd4b711 | feat(server,web): a guest names the CAs it trusts | a73x | 2026-08-11 |
| 4c1941bf | fix(server): a tenant with no CA is told how to get one | a73x | 2026-08-11 |
| 70f0a1d0 | feat(api): every VM is persistent | a73x | 2026-08-10 |
| 323e2c24 | feat(web): the VM page hands you the command that reaches the guest | a73x | 2026-08-09 |
| 17485cac | feat(server): a host that cannot certify a guest is not a place to put one | a73x | 2026-08-09 |
| 212f6ed1 | feat(server): a PAT is enough — public MCP at /mcp | a73x | 2026-08-08 |
| 2874212c | feat(server): a guest's host key never leaves its host | a73x | 2026-08-08 |
| 6b7245e6 | feat: a tenant publishes a VM's port on its host | a73x | 2026-08-06 |
| a1533a4f | feat: a host proposes its guest subnet, and the fleet only suggests one | a73x | 2026-08-06 |
| 401f3162 | feat(server): a VM says which key eitri put in it | a73x | 2026-08-06 |
| 5080647e | fix(server): a one-click create takes the image its host can run | a73x | 2026-08-06 |
| ee0c9258 | feat(fleet): sweep VMs no agent will reap | a73x | 2026-07-29 |
| d7e93399 | feat: multi-tenant console with OIDC sign-in | a73x | 2026-07-29 |
| 2823c631 | feat(arch): every crossing is owned — R7 through R10 | a73x | 2026-07-26 |
| 752d49c4 | feat(fleet): per-host agent upgrades from the web console | a73x | 2026-07-26 |
| d3f4ed21 | feat(server,agent): report host OS facts and live metrics per fleet host | a73x | 2026-07-25 |
| 9f7b4f69 | feat(ssh): bring-your-own per-tenant SSH user CA | a73x | 2026-07-25 |
| d0b7e5e1 | feat(tenant): multi-tenancy — data model, principal, and gate authz | a73x | 2026-07-25 |
| 72a48183 | feat: UEFI guest boot, deploy boot-gate, and control-plane hardening | a73x | 2026-07-25 |
| bd0d241b | feat: serial console, teardown observability, quotas, and the SSH-CA jump gate | a73x | 2026-07-25 |
| e523eae3 | feat: single-paste join enrollment and reliability hardening | a73x | 2026-07-25 |
| c2b35d97 | feat: Eitri — BYO-hardware VM fleet control plane | a73x | 2026-07-25 |