Skip to content

v0.9.7

Choose a tag to compare

@github-actions github-actions released this 31 Aug 13:13
· 35 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.9.7
96cf01f

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.worker service. 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/transcribe returns an HTTP 200 asynchronous scan handle. Brightspace single-content and batch remediation return HTTP 202 job descriptors. Clients poll the authenticated status URLs for terminal outcomes and artifact references.
  • The unauthenticated POST /education/focus-order/analyze and POST /education/focus-order/analyze-html endpoints are removed. The independent CLI focus command 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 head explicitly and confirm the repository has one head: 20260831_institution_scope.
  • Set and retain BYOK_ENCRYPTION_KEY before storing workspace provider credentials. Select LLM_PROVIDER, LLM_FALLBACK_PROVIDER, and EMBEDDING_PROVIDER deliberately; 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.