Skip to content

Junjo AI Studio 0.86.0

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Oct 01:17
eac4423

Junjo AI Studio records and explains AI execution: model calls, tool activity, application state, and repeatable evaluation results. Studio 0.86.0 replaces the Python backend with one written in Rust that also serves the web UI. Studio now runs as two containers instead of three, on one origin, and its backend uses far less memory.

Breaking upgrade: wipe application data and update the deployment

Keep using Junjo Python SDK 0.69.0. The telemetry contract is unchanged.

Stop the old stack with the old Compose file, then wipe Studio application data or select a new empty data directory. Nothing is migrated: users, API keys, developer tokens, evaluations, and telemetry are discarded, and a database from Studio 0.85.0 or earlier is refused at startup. Complete first-user setup, create new credentials, and update application clients. Everyone signs in again.

Follow the tagged reset procedure. Take the Compose file, .env.example, and proxy configuration from this release's distribution instead of editing the earlier ones.

  • Two containers. mdrideout/junjo-ai-studio-app serves the UI and the HTTP API on port 26154 and replaces junjo-ai-studio-backend and junjo-ai-studio-frontend, which receive no further releases. mdrideout/junjo-ai-studio-ingestion keeps its name and port.
  • One Studio hostname. The separate API hostname and port 26153 are gone. Send the whole Studio hostname to the application container, and point JUNJO_AI_STUDIO_BACKEND_BASE_URL at it.
  • Fewer settings. Remove JUNJO_SESSION_SECRET, JUNJO_SECURE_COOKIE_KEY, JUNJO_PROD_FRONTEND_URL, JUNJO_PROD_BACKEND_URL, JUNJO_ALLOW_ORIGINS, and RUN_MIGRATIONS. Production needs JUNJO_ENV, JUNJO_INTERNAL_GRPC_TOKEN, and JUNJO_PROD_INGESTION_URL.

What changes

  • A smaller backend. In the measured comparison on the supported resource profile, the backend peaked at 56–79 MiB where the Python backend peaked at 287–350 MiB, and used 43% less CPU while ingesting.
  • Traces by API key. Ingestion records which key sent each span, and the Traces page can list one key's traces. Deleting a key stops it from authorizing exports and keeps the traces it sent.
  • A complete default Traces view. With "Has LLM Spans" checked, new traces stay listed after ingestion flushes them. They used to disappear until the flushed file was indexed.
  • Agents page and execution links under load. The Agent listing reads a service's newest executions and no longer its whole history, and an execution link finds its execution through the index. Both failed under load when a service had many executions.
  • Command-line sign-in. Studio provides the browser sign-in that junjo auth login in the next Python SDK release uses. Developer access tokens work as before.

Behavior and API changes

  • Sign-out ends the session it is used in. It used to end every session of that user.
  • A password is 8 to 72 bytes, and email addresses are compared in lowercase.
  • Browser-facing routes moved under /api/v1. SDK and CLI routes are unchanged.
  • Every error response is {code, message}. Errors used to carry a detail member.
  • A running Studio no longer serves GET /openapi.json. The API document is in the repository.
  • The application writes no log line per request at the default log level.

The minimal and VM/Caddy distributions pin Studio 0.86.0 with SDK 0.69.0. Their generated archives and mirrors are validated against the release source and published image digests.

Changes since Studio 0.85.0 · SDK release · Measurements

Validated release provenance and artifact evidence

Validated Junjo AI Studio 0.86.0 release.

Canonical source: https://github.com/mdrideout/junjo@eac4423485d2b7ee04cebbcc91c269880b714e8b
Workflow: https://github.com/mdrideout/junjo/actions/runs/37707142803

Immutable image tags:

  • backend: mdrideout/junjo-ai-studio-app@sha256:e4451f5f05ea2eceb01bc133e7fde60b566af0222774cdb4e619f82308efc5f2 (tags 0.86.0 and eac4423485d2b7ee04cebbcc91c269880b714e8b)
  • ingestion: mdrideout/junjo-ai-studio-ingestion@sha256:31b49104de72e7ceafd92bb5cecd00c2535fa5420cd3e5006ba4aab1877e5be9 (tags 0.86.0 and eac4423485d2b7ee04cebbcc91c269880b714e8b)

Deployment distributions:

  • minimal: archive df59359551f598e796d0d49769ea46b3a99004797edfa7846ca977cefc94c2b1, tree 45980a4ba9b508ec24e22cdfbadb7edaa26656a5407551b29faf80fcb03b1f54, mirror mdrideout/junjo-ai-studio-minimal-build:master@f00ffb9c802ac0000a8cf7276c9e9e376491268c
  • vm-caddy: archive 693a6bd863f3635cc7b8bd21f4a00123a8f1173f631567846be3e53b4e894342, tree b71cdf1c9b6e121b30be8a680793928af2da57693233c82ff1f339fa756890bb, mirror mdrideout/junjo-ai-studio-deployment-example:master@ddb87ca13ca9945f56bd1228582cdec660196cba