diff --git a/CHANGELOG.md b/CHANGELOG.md index a4dcb69..5f4497f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ replacing a module has to be a decision with visible consequences. ## Unreleased +## 0.5.0 + +- **Unavailable data is reported, not hidden or failed.** `/vitals` answers `disk: null` when + `SYSTEMGATE_DISK_PATH` is invalid instead of a 500; `/services` answers + `status: "unavailable"` with `errors: ["service_enumeration_unavailable"]` when the host denies + the listing, instead of an empty inventory reported as success. An invalid or out-of-range + `SYSTEMGATE_PORT` stops startup with a clear configuration error. + - **Backup verification reads each archive once instead of twice.** `GET /backups` hashed every snapshot file and then read every archive member's payload to the end, doubling the disk reads of large model archives on each request. The hash already proves the bytes match the manifest, diff --git a/systemgate/main.py b/systemgate/main.py index f8c2be7..52b1a28 100644 --- a/systemgate/main.py +++ b/systemgate/main.py @@ -85,7 +85,7 @@ async def lifespan(app: FastAPI): # One place, so /health and the OpenAPI document cannot disagree about # which version is running. They had: /health said 0.1.0 at tag v0.2.1. -SERVICE_VERSION = "0.4.0" +SERVICE_VERSION = "0.5.0" app = FastAPI(title="SystemGate", version=SERVICE_VERSION, lifespan=lifespan)