The crash — and the floor that fixes it
The 4.5.0 wheel on PyPI started crashing at startup with
Status code 204 must not have a response body. The cause was a
regression in FastAPI 0.115.x against any
@router.delete(status_code=204) -> None route — a pattern the
codebase uses in several places. v5.2.5 pins fastapi >= 0.116.0, <1
in backend/pyproject.toml, so the buggy assertion never resolves
on a fresh install.
Everyone stuck on 4.5.0 can now pip install --upgrade openconstructionerp
and the server starts. No data migration is required — the Alembic head
v3144 is unchanged from v5.2.0.
Dashboard route restored
Authenticated / now redirects to /dashboard again,
restoring the canonical landing surface. A previous fix had sent the
authenticated root to /projects; that decision is reverted — the
dashboard widgets are the right first thing to see for every role.
W22 — Daily Diary & W25 — Finance
Two small UI pieces from the parallel waves land in the same release:
- W22 — Daily Diary: the
deleteDiaryAPI helper is wired in the client. Removing a diary entry now works from the UI without a manual reload. - W25 — Finance:
FinancePage.Payment.amountis widened tostring | numberand acurrency_codefield is added. Multi-currency payments no longer trip on the narrower number-only contract.
Upgrade
pip install --upgrade openconstructionerp && \
alembic upgrade head && \
systemctl restart openconstructionerp
Fresh install? Same one-liner. PyPI is now serving the 5.2.5 wheel; the live demo VPS is on the same SHA.
Install v5.2.5.
Live demo in your browser, or self-host in five minutes. AGPL-3.0, no signup required.