Skip to content

v0.7.0 — security-audit remediation, supply-chain hardening, governance

Choose a tag to compare

@houfu houfu released this 10 Aug 16:12
· 26 commits to main since this release
b092e1f

The first substantial remediation of the #288 security audit. All three High-severity findings are closed, along with three Mediums.

This is a hardening release, not a feature milestone — and it is the first release whose headline is community work.

⚠️ Read before upgrading — three changes require operator action

This is why v0.7.0 is a minor and not a patch (ADR 0025).

# What changes What you must do
#396 The gateway now requires its key on /v1/chat/completions and /v1/embeddings Nothing in the default topology — the api already sends it. A deployment calling the gateway directly without a key gets 401 on every inference call.
#399 The api refuses to start if JWT_SECRET is still the published dev default Set JWT_SECRET to a strong random secret (or LQ_AI_DEV_MODE=true for local dev).
#400 The gateway refuses to start if any provider base_url is plaintext http to a non-local host Move remote providers to https. Loopback and private IPs over http are unaffected, so a local Ollama needs no change.

Security — all three Highs closed

Finding Severity PR
GW-01 — gateway inference/embeddings accepted unauthenticated requests High #396
API-01 — cross-tenant IDOR at chat creation High #397
D-01 — stored XSS in the skill source viewer High #398
GW-04 — provider base_url SSRF/egress guard Medium #400
AG-01 — autonomous retrieve_chunks scoped to the session owner Medium #401
API-04 — dev-JWT-secret boot guard Medium #399

Sixteen of the audit's 22 findings remain open and are listed honestly in the full notes.

Also in this release

  • uv-managed lockfiles for api/ and gateway/ (ADR 0023), reproducible across the SBOM
  • Staged release pipeline (ADR 0025) — the image build now gates backend before frontend, with a version-consistency check on every tag
  • starlette 0.48 → 1.3.1, cryptography 44 → 49, and a large dependency sweep
  • Migration 0066 — knowledge bases listed by the project_knowledge_bases junction, with a backfill. Runs on migrate; no operator step.
  • GovernanceGOVERNANCE.md with ADR 0022 accepted, plus ADR 0024 and the expansion direction paper

Who built this release

Every audit-remediation PR in this release was written by a contributor from outside the maintainer team. All three Highs, all three Mediums, the two follow-ups, and the Actions SHA-pinning are @SaifAlYounan's work — nine PRs, the first landed 2026-07-08.

Four people landed their first commit on main here:
@SaifAlYounan (the #288 remediation),
@mkorpela (#259, Windows entrypoint line-endings),
@sgbooth (#281, the Vite-HMR dev flow),
@sergiomaldo (#442, knowledge-base listing).

And @ThurgyThurg came back to finish the caddy-tailscale recipe (#261) first started in #134.

Thank you — the security-critical work in this release came from the community.

Images

ghcr.io/legalquants/lq-ai-api:v0.7.0
ghcr.io/legalquants/lq-ai-gateway:v0.7.0
ghcr.io/legalquants/lq-ai-web:v0.7.0
ghcr.io/legalquants/lq-ai-proxy:v0.7.0

All four are multi-arch (amd64 + arm64), carry SLSA build provenance, and are cosign-signed with an SBOM attached.

macOS app

Download LQ.AI-0.7.0-arm64.dmg from Assets below (Apple Silicon; signed and notarized).

It ships against the v0.7.0 image set above. Note that the launcher currently pulls the:latest image tag rather than pinning v0.7.0, so an install will follow future image releases —see ADR 0025 decision 2.

📄 Full release notes — including the complete list of what did not ship.