Skip to content

Tasks (mise)

mise is Rakkr’s canonical toolchain and task runner; all tasks are defined in .mise.toml. Prefer these over ad-hoc commands. Run a task with mise run <name>.

Setup & run

TaskWhat it does
mise trustTrust the repo’s .mise.toml.
mise run setupInstall pinned toolchains, then dependencies.
mise run installpnpm install.
mise run install:cipnpm install --frozen-lockfile (CI).
mise run devRun the API and web console together.
mise run services:up / services:downStart / stop local Postgres in Docker.

Gates

TaskWhat it does
mise run checkThe full repository gate (see below).
mise run buildBuild TS packages/apps and the Rust agent.
mise run check:locEnforce the 1000-LOC-per-file budget.
mise run helm:checkRender the controller Helm chart across secret backends and assert its invariants.

mise run check is intentionally broad. It runs the baseline doc verifiers, the Helm chart render, Drizzle migration replay, TypeScript checks, Node tests (including the DB-backed suite), oxlint, oxfmt check, the fake-controller agent smoke, and the Rust suite (cargo check, rustfmt, clippy, Miri). It needs a working Docker/Postgres for the DB verifier and DB-backed tests.

Cut a release with mise run release <agent|docs|controller>, which pushes a calendar-versioned tag that triggers that component’s release workflow — see Releases.

Targeted Node / TypeScript

TaskWhat it does
mise run node:checkTypeScript type-check.
mise run node:testNode test suites.
mise run node:test-dbConcurrency/race DB tests against a throwaway Postgres (real connections).
mise run node:lintoxlint.
mise run node:format / node:format-checkoxfmt write / check.
mise run node:buildBuild TS packages and apps.

Targeted Rust

TaskWhat it does
mise run rust:checkcargo check.
mise run rust:fmt / rust:fmt-checkrustfmt write / check.
mise run rust:clippyClippy lints.
mise run rust:miriMiri (undefined-behavior checks).
mise run rust:buildBuild the recorder agent.

Database

TaskWhat it does
mise run db:generateGenerate Drizzle migration SQL from the schema.
mise run db:migrateApply migrations to DATABASE_URL.
mise run db:verifyReplay all migrations against an in-process PGlite database (no Docker).

Baseline verifiers

Each checks a baseline doc against the source:

TaskBaseline
mise run auth:check-oidcAzure AD OIDC
mise run security:check-rbacRBAC / audit
mise run security:check-transportTransport security
mise run switcher:checkAudio matrix switcher routing
mise run scheduler:checkScheduler
mise run settings:checkSettings / templates
mise run recordings:checkRecording library
mise run recordings:check-first-reliableFirst reliable recording
mise run devices:check-genericGeneric devices
mise run health:check-watchdogHealth watchdog
mise run storage:checkStorage upload
mise run operations:checkOperations
mise run nodes:check-lifecycleNode lifecycle
mise run time:checkDate / time
mise run ops:check-alerts / ops:check-prometheus / ops:check-grafana / ops:check-observability-docsObservability artifacts

Agent & hardware smokes

TaskWhat it does
mise run agent:fake-controller-smokeFull agent lifecycle against a fake controller, no hardware (part of check).
mise run agent:loopback-smoke · loopback-meter-smoke · loopback-render-smoke · loopback-fixture-smoke · loopback-job-smokeALSA loopback smokes (Linux).
mise run agent:alsa-capture-smoke · alsa-meter-smoke · alsa-job-smokeGeneric ALSA hardware smokes (Linux).
mise run ansible:runner-smoke · ansible:x32-smokeNode-lifecycle smokes via the Ansible runner.

Hardware and loopback smokes require the matching Linux device or loopback setup and are not portable Windows gates. See Testing.