v0.9.7
·
35 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Aelira v0.9.7
Security
- Authentication bootstrap, magic-link consumption, and open-signup provisioning are serialized. CSRF and session-cookie scope are separated, routine authentication logs exclude sensitive identifiers, and provisioning audit attribution trusts only configured proxy networks.
- Analytics, evidence reports, current-compliance projections, report artifacts, provider configuration, and institution rollups are tenant-scoped. Workspace AI credentials are encrypted and resolved only for the authenticated workspace and requested purpose.
- General STEM remediation is source-bound and fail closed. Typed provenance, specialist-specific verification, saved-file reverse verification, approval invalidation, and exact mixed-region composition prevent unsupported or ambiguous semantics from being published.
Added
- General STEM semantics now covers scanned equations, ordered multi-equation screenshots, vector equations, handwritten mathematics, chemical formulas, molecular structures, commutative diagrams, and mixed visuals. Each specialist has a bounded contract, purpose routing, independent verification, and explicit manual-review outcomes.
- Mixed STEM composition accepts only a fully resolved typed region graph, preserves source rendering and metadata, orders the specialist outputs deterministically, verifies the serialized candidate, and binds human approval to that exact candidate.
- Institution administrators can manage canonical regulatory profiles and workspace AI providers. Compliance evidence reports, current-state projections, declared institution coverage rollups, CVD metrics, durable weekly summaries, Brightspace course discovery, Blackboard signing keys, and verified CLI report retrieval extend operator and integration coverage.
- Separate API and worker liveness/readiness probes, privacy-bounded health metrics, and sustained Prometheus alerts cover unavailable APIs, missing worker heartbeats, expired leases, and stalled jobs with recovery notifications.
Fixed
- PDF image XObject traversal rolls back safely, API keys remain usable at narrow widths, AI-provider controls stay inside their cards on phones, and Microsoft OAuth tests exercise the real HTTP seam.
- Compliance deadlines come from canonical institution profiles, dashboard remediation outcomes come from durable jobs, and each document contributes only its latest verified state.
- Release image security checks inspect final installed Python packages and retain bounded, expiring governance for confirmed stale lower-layer attribution.
Changed
- Open-core makes no implicit AI-vendor choice. Text generation, fallback, and semantic embedding are independently opt-in; executable tenant inference resolves only the workspace's durable provider selection.
- CPU- and browser-intensive work runs only in the standalone
python -m src.jobs.workerservice. API processes enqueue bounded jobs and remain independently responsive; Compose supplies a single-job worker default, resource limits, killable child-process execution, durable leases, and worker-specific health reporting. POST /education/multimedia/transcribereturns an HTTP200asynchronous scan handle. Brightspace single-content and batch remediation return HTTP202job descriptors. Clients poll the authenticated status URLs for terminal outcomes and artifact references.- The unauthenticated
POST /education/focus-order/analyzeandPOST /education/focus-order/analyze-htmlendpoints are removed. The independent CLIfocuscommand and worker/scanner FocusOrder capability remain available.
Operator action required
- Drain active work and pause intake. Back up PostgreSQL and verify the restore path, then run
alembic upgrade headexplicitly and confirm the repository has one head:20260831_institution_scope. - Set and retain
BYOK_ENCRYPTION_KEYbefore storing workspace provider credentials. SelectLLM_PROVIDER,LLM_FALLBACK_PROVIDER, andEMBEDDING_PROVIDERdeliberately; no provider is selected implicitly. - If Blackboard LTI is enabled, configure a matching RSA 2048+ private/public signing-key pair. Review
TRUSTED_PROXY_CIDRS, session and CSRF cookie domains, Brightspace OAuth origins, shared report-artifact storage, and the worker resource and health limits before restarting services. - Deploy API and worker from the same 0.9.7 release. Confirm API readiness, a fresh worker readiness result, queue age, failed or quarantined rows, and alert recovery before resuming intake.
- Update clients for the asynchronous multimedia and Brightspace response contracts and the removed unauthenticated focus-order HTTP endpoints.
- Unsupported or ambiguous STEM content remains open for human review. Recognition alone never approves or publishes an artifact; persist human acceptance and allow the saved-file verifier to revalidate the exact candidate at consumption time.
- Preserve every v0.9.6 operator action in
CHANGELOG.md, including remediation timeout settings and deliberate handling of pre-v0.9.5 quarantined work.
Included changes
Platform trust and operations
- #188, #189, #191, #193, and #194 harden cookie scope, durable scans, PDF rollback, provider-neutral grounding, and admin-gated provisioning.
- #201, #202, #203, #204, #206, and #207 close authentication, privacy, proxy-attribution, and administrator-handoff races.
- #239, #241, #242, #243, and #245 tenant-scope analytics and evidence while projecting canonical current state and deadlines.
- #249, #259, #261, and #264 make regulatory and AI-provider settings durable, workspace-scoped, provider-neutral, and executable.
- #265, #266, #267, #268, #269, and #270 add signed Blackboard keys, worker isolation and health, responsive key management, verified CLI reports, and durable summaries.
- #271, #272, #273, #274, #275, #276, and #277 enforce configuration parity, validate local models, fill real metrics and discovery gaps, harden OAuth and image security evidence, and declare rollup coverage.
General STEM semantics
- #169, #210, #211, and #246 document the fail-closed boundary and establish scanned-region detection, exact association, typed provenance, review, and approval invalidation.
- #278 and #279 add verified commutative-diagram semantics.
- #280 and #281 add handwritten-math suitability and verified recognition.
- #282, #283, #284, and #285 add typed chemical formulas, molecular graphs, and verified PDF association.
- #286, #287, #288, and #289 add ordered multi-equation and exact vector-equation association.
- #290 and #291 route typed mixed regions and compose their independently verified outputs into one ordered candidate.
Release-candidate evidence
- Each included feature PR passed the backend, lint, dependency-security, CLI, dashboard, deterministic Chromium, linux/amd64 Docker, and linux/arm64 Docker checks at its reviewed head.
- Publication remains blocked until the exact merged release commit passes the same CI gates and the signed tag satisfies every protected release workflow receipt, signature, seven-file SBOM, audit, and reproducibility check.
- The mandatory manual browser walkthrough is recorded separately before tagging; automated checks alone do not satisfy that release gate.
- This checked-in body is consumed verbatim by
.github/workflows/release.yml.