Changelog

What we have been shipping.

raisindb 0.3.24 2026-08-22
  • Functions can sign and mint tokens: raisin.crypto gains JWS signing, P-256 key generation, hashing and cryptographically secure random bytes — a function could verify a token before, and had no way to issue one
  • Turn a guest into an account: raisin.identities lets a function find an identity by email and rename it, so the throwaway identity a storefront mints for a basket becomes the buyer’s real account instead of a magic link landing on an empty page
  • UNRELATE means it: removing a relationship reported success while graph queries kept serving the edge, and removing one relationship type between two nodes took every other type with it — both are fixed
Studio Beta 0.1.100 2026-08-22
  • Session sign-ups: a ticket gets you into the building; a room with thirty chairs is its own question. Seats, an interest list or nothing at all, per event or per session, with a waitlist that promotes the next person by itself
  • The organiser sees who is coming: a live badge on every session row, and the sheet behind it lists who is waiting — in the order they will be promoted — who is going and who has checked in, with a CSV for the room host
  • Target what the site knows about a visitor: audience rules can read visitor traits — whether someone holds a ticket, which type, which events they attend — instead of smuggling them through as invented segment slugs
Studio Beta 0.1.99 2026-08-21
  • Door check-in that survives the venue wifi: each event signs its own tickets, a scanner syncs what it needs, and a scan verifies and admits with no network — a door tablet can check a ticket and can never issue one
  • Ticket codes a person can read: tickets printed an internal allocation id because the code generator probed this runtime for a CSPRNG under a name it does not use; codes are now short, readable and impossible to derive from the one before
  • Add-ons ride on a ticket: lunch, a t-shirt or a workshop place is bought alongside admission and stamped onto the buyer’s real tickets, rather than issuing a second ticket that is not a way in
Platform 2026-08-20
  • AI billed in credits: a model catalogue and rate card, credit packs recorded in your billing history, a ledger an invoice can be reconciled against, the plan’s allowance drawn as depletion, and an alert before the balance runs out
  • Scoped, spend-capped API keys: issue a key limited to what it may reach and how much it may spend, and manage it yourself from the console
  • Sign your data processing agreement in place: an organisation records its legal entity, and an owner or admin reads and signs the DPA in the console — and a member can now be invited by email address, whether or not they already have an account
raisindb 0.3.21 2026-08-20
  • Functions cannot reach your internal network: raisin.http.fetch refuses loopback, private and link-local addresses; where a function genuinely needs an internal service, the operator names the endpoint and the function may only say which one to fire
  • Move and copy stop stranding nodes: the top level of a workspace is a valid destination again, a move onto a path another node already holds is refused instead of silently displacing it, and a cross-branch copy carries the node’s relations and can be pinned to a revision
  • Package installs that finish: a re-deploy applies the package instead of quietly doing nothing, one rejected node no longer fails the other ninety-nine, and a large install gets the time it needs
Studio Beta 0.1.88 2026-08-19
  • A publish carries what the page needs: an event used to go live with an empty programme and no failed step — publishing now follows references out to the sessions, rooms and pools a page depends on, pins the run to one revision, and reports what actually went live
  • Your ticket is yours: a ticket is delivered into its holder’s own home rather than being found by a query somebody else runs on their behalf, and a buyer can watch their own order — and only their own
  • Directory: contacts get a browser of their own instead of a flat catalogue, records can state how they relate to one another, and every record carries a graph of those relationships
Runtime 2026-08-17
  • Reconnect without losing messages: channel history is opt-in per channel pattern, and a client can now ask for everything published while it was away — replay was documented for months and always returned nothing
  • A sustained CPU budget: per-tenant CPU is measured and enforced per plan, so a cheap-but-relentless client — one looping browser held half a core for hours — is throttled instead of falling between the request-rate and per-request limits
  • Stripe without copying the platform key: the shared credential stays with the platform instead of being seeded into every tenant’s repository, and refunds, the billing portal and payment reads are permitted through it deliberately
raisindb 0.3.8 2026-08-16
  • Functions can send email: raisin.email.send over a provider configured once per tenant, behind a deny-by-default policy that states which addresses a function may write to
  • Magic-link sign-in: sign in from a link in your inbox, with the tokens stored as ordinary nodes
  • API keys on the HTTP surface: a script or a service can authenticate with a key instead of carrying a session
raisindb 0.2.30 2026-08-11
  • Connectors declare their own OAuth surface: a connector whose client credentials are issued centrally no longer shows an editable client-id form that could only break it — it declares which fields its operator actually owns
  • Reconnect, don't disconnect: widening a scope used to mean breaking every mount on the account and rebuilding it — re-consenting now updates the account in place, and a connection reports the scopes the provider actually granted
  • Memory under control: RocksDB tuning that was being silently discarded now applies, two leaks are closed, and the server can finally report real numbers about its own memory
Platform 2026-08-10
  • Managed integrations: connect Microsoft 365 or Google in one click using Maravilla's registered apps — no app registration of your own, and your own bring-your-own-app connectors keep working
  • Release downloads of any size: asset downloads stream instead of being buffered whole, so anything over 4 MB no longer fails — with a known length, so clients can show progress
  • Mounts say what they mean: a paused mount stops reading “OK”, a stop request renders as “Stopping…”, and every write outcome — pushed, pending, rejected, blocked — appears on the run card instead of an edit vanishing silently
Runtime 2026-08-09
  • The full media suite in RaisinDB: all 23 transforms — screenshots, PDF, video render and transcode, document conversion, resize, face detection, OCR — are reachable from RaisinDB functions under raisin.media.*
  • Submit and poll, with real progress: every call enqueues a job and returns immediately, so a multi-minute render is no longer impossible inside a function's 30-second budget, and job status now carries a percentage and stage
raisindb 0.2.29 2026-08-09
  • Mounts stop scanning everything: the sync tick asked every repository for its mounts, almost none of which have one — 51% of server CPU. A registry now records which repositories actually hold one
  • Query planning got cheaper: every query deserialized the whole schema catalog to compute a statistic used by one estimate — about 33% of server CPU. It is now computed only when a query can actually use it
  • Faster, quieter boot: startup read the entire operation log up to three times per repository; it now seeks once and scans keys rather than values, turning a multi-minute silent boot into an ordinary one
Studio Beta 0.1.47 2026-08-08
  • Marbles — pin content to a real place (experimental): walk to a landmark, point the phone, tap the spot, and the coordinate is stored on the document you are editing, as canonical GeoJSON that answers a proximity query
  • From roughly 10 m to roughly 1.5 m: setting your standpoint on a map beats the receiver in your pocket, with an uncertainty ring and compass calibration behind it
  • See the placement in 3D: a live preview so an author can check a marble really sits where they meant — and Studio installs as a PWA for the walking-around part
Studio Beta 0.1.46 2026-08-07
  • Models is its own app: a dataset is a workflow — collect, label, generate, train — so it moved out of the media library into its own workspace instead of burying the library under generated variants
  • Label your own pictures: boxes, ellipses, freehand lasso and click-to-segment all produce the same annotation shape, so masks survive augmentation and every box-only consumer keeps working
  • Build a training set: augmentation turns a handful of labelled images into a dataset, each dataset keeps its own asset folder, and a QLoRA pipeline covers source, curation and build for text
Studio Beta 0.1.43 2026-08-06
  • AR image targets (experimental): printed artwork a camera recognises, with overlay content anchored to it — author, compile and test in Studio, render with the SDK or your own runtime
  • No server compute needed: targets compile entirely in the browser and the bundle is stored as an ordinary content-hashed asset, so an AR target is just an image in your library that can also be something else
raisindb 0.2.22 2026-08-06
  • Connectors can write back: a mount pushes local edits to Microsoft 365, Google or IMAP in one of three modes — a state flag such as a mail's read status, a full mirror of the remote object, or a command such as sending a mail
  • Writes go out first: the push runs ahead of the read phases so your edit reaches the provider before remote changes come in, and whatever a run does not reach stays pending rather than being lost
  • A broken mount stops hammering the provider: a push that can never succeed — a missing write scope, say — is parked instead of retried forever, which in production had meant 78 drains a minute and hundreds of throttling responses
Studio Beta 0.1.30 2026-07-28
  • Author with an agent: Studio ships an MCP server — an AI assistant can create pages, stories, tags and folders in your workspace through typed tools, with validation and reference resolution built in
  • Editorial ordering: the order you arrange pages in is now first-class — move, reorder and list children from the editor, the API or an agent, and it sticks
  • Editor polish: child counts stay live as you navigate, context menus flip away from the viewport edge, and database errors surface instead of failing silently
raisindb 0.1.86 2026-07-27
  • Native MCP server: expose your data and functions as tools to any MCP client — tools run with the calling user's own permissions, and a rejection names the scope that was missing
  • Order as a query concept: __order and __tree_order make hand-curated sibling order a first-class sort in SQL, next to move, reorder and list-children operations
  • Persistent audit log: every change is recorded with user and agent attribution — you can see what changed and who changed it, human or machine
Runtime 2026-07-25
  • Astro adapter (experimental): deploy an Astro 6 or 7 site to the runtime with @maravilla-labs/adapter-astro — server-rendered pages and API routes run on the platform, prerendered pages are served as static files
  • Platform services in your pages: database, storage, key-value and queues arrive on Astro.locals.platform, and Astro.session is backed by the key-value store with no extra configuration
  • No new build step: the adapter hooks Astro's own build, and maravilla dev runs the Astro dev server alongside the platform services — the API may still change while it is experimental
raisindb 0.1.74 2026-07-23
  • Schema updates without a release: built-in definitions ship and resync by content hash, with per-instance overlays for local changes
  • Cluster stability: causal ordering, revision merge and node discovery fixes for replicated deployments
  • Query correctness: relational lookups now compose with hierarchy filters and ordering, and reverse-reference indexes stay accurate through moves and deletes
Studio Beta 0.1.19 2026-07-22
  • Self-service profile: change your name, avatar and details yourself, without going through an admin
  • Page previews: story cards show a rendered screenshot of the page instead of a placeholder
  • In-app updates: update the Studio package from inside Studio, with functions and apps refreshed according to the install policy
Platform 2026-07-21
  • Runaway protection: a circuit breaker on triggers plus per-tenant job caps stop one bad loop from swamping an instance
  • Install policies: a per-path .raisin-sync.yaml decides what a package update refreshes and what it leaves untouched
  • Live permissions: role changes reach connected clients immediately — no sign-out and back in
Platform 2026-07-19
  • Screenshots from your data layer: a media plugin lets the database call the rendering pipeline directly — capture a page and store the image as a record
  • Interactive agent tools: MCP-UI support means a tool can return real interface, not just text
  • Plugin extension point: bind database functions to native plugins, loaded dynamically and kept current by maravilla studio doctor
Studio Beta 2026-07-16
  • Offline bundling: maravilla dev bundles Studio locally and updates it over the air — no round trip to the cloud to get started
  • Config from your project: Studio settings are read from maravilla.config.* and applied on install
Studio Beta 2026-07-15
  • Publishing workflow: an approver chain from local to group to global owner, timed auto-escalation, publishing across linked sites, and a full audit trail
  • Least-privilege roles: editor and viewer roles scoped to exactly what each needs, with the create menu limited by policy
  • Editing polish: typed tag pickers instead of raw JSON, working cross-workspace reference pickers, and DST-safe schedule previews
Runtime 2026-07-13
  • Face-aware crops: detect faces, store focal points, and let crop: 'focal' frame the subject — with zoom, padding, and CSS-only helpers for the same framing in the browser
  • Render any URL: browserExtractHtml returns a Chrome-rendered page as HTML, and video frame rendering now accepts a URL, with prefetching and chunked short renders
  • Clearer limits: compute-bound overruns report as their own error, and every limit rejection carries the current value, unit, scope and a retry-after
Muli 0.4.25 2026-07-11
  • Releases from your pipeline: a declarative release: step with configurable notes, triggered by a tag push
  • Publishing credentials: pipeline jobs can opt into ambient registry credentials and publish to your organization's registry, not the repository owner's
  • Registry visibility: choose private, authenticated or public reads per tenant
Platform 2026-07-10
  • Know your limits: every plan's limits are published openly and readable from the API, so you can see exactly what your project is allowed before you hit a wall — and get an email heads-up as you approach one
  • Bot protection on sign-up: a proof-of-work challenge, honeypot and rate limiting on the hosted auth pages your users see
raisindb 0.1.53 2026-07-08
  • Faster queries: the SQL planner routes more predicate shapes through indexes
  • Package installs: bundled binaries are ingested and authored resources rebound when a .rap package is installed
  • Backups fixed: the nightly backup produces a usable artifact again
Studio Beta 2026-07-07
  • Maravilla Studio beta: our hosted visual editor is rolling out in beta — workspaces with the database module get their own Studio on a dedicated subdomain
  • Zero-setup provisioning: enabling the database module installs and configures Studio automatically, including cross-origin access — no manual steps
Platform 2026-07-07
  • Team onboarding, smoothed out: project pages now load for every collaborator role, invitations survive the email round-trip, and sign-up works on branded domains with a valid invite
  • Email verification: resend the verification email straight from the login screen — no more dead ends for unverified accounts
  • Project handover: transferring a project to another account or organization now moves the git repository, ownership, and collaborator access together
raisindb 0.1.47 2026-07-07
  • Operator provisioning: a new authenticated management surface for installing and updating packages inside a tenant — powering one-click Studio setup
  • Clearer setup status: database provisioning now reports failures with the reason and a retry path instead of silently switching off
CLI 2026-07-07
  • Smoother sign-up: username validation matches the server, and a rejected handle lets you retry instead of restarting registration
  • Clearer errors: expired sessions now point you to maravilla login, and API errors show the actual reason instead of a raw status code
Runtime 2026-06-08
  • Video and media transforms: extract frames from video, mix and duck audio tracks, and render long timelines in parallel chunks with live progress events
  • PDF generation: full print control — margins, page size, headers and footers, and render-wait — when turning pages into PDFs
  • Durable workflows: runs resume after sleeping and stalled runs are automatically reclaimed, so long jobs finish reliably
Platform 2026-06-08
  • Diagrams in docs: mermaid and bpmn diagrams render inline in the markdown viewer and release notes, with zoom and a fullscreen lightbox
  • Media rendering online: the video and image transform pipeline is now available on the platform
  • Reliability hardening: memory and stability improvements for long-running render jobs, and per-handle registry subdomains are now live
Muli 0.4.21 2026-06-02
  • Reliable large clones: big repositories now clone over SSH without truncation
  • Registry fixes: scoped npm package publishing, plus corrected npm search and Maven artifact listings
Muli 0.4.20 2026-05-27
  • Repository releases: publish a tagged release with attached build artifacts, stored and served as versioned download assets
  • Package registries: npm (including scoped packages) and Maven publishing, with version listings and package search across the registry API
Platform 2026-05-26
  • Releases in the console: cut a repository release, attach artifacts and browse downloads from the project UI
  • Per-handle registries: each handle gets its own package registry endpoint, addressed by path — point your package manager straight at it
  • Hosted auth emails: password reset, magic link and email verification sent from your own project, with a provider settings UI
Platform 2026-05-25
  • Security hardening: login rate-limiting and lockout, constant-time credential checks, and egress protection for server-side fetches
  • Sessions: configurable session lifetimes and reliable post-login redirects
Platform 2026-05-24
  • Built-in database, feature-complete: bulk operations, count and distinct, aggregation pipelines, relational lookups and upserts
  • Richer queries: a full set of comparison and array operators, with element-wise matching on array fields
Platform 2026-05-23
  • Access policies and relations: declarative, slug-addressable rules with relation-based access, field redaction and audit
  • Live data browser: inspect database, key-value and storage contents for any environment from the console
  • Policy validation: rules are checked as you edit them in project settings
raisindb 2026-05-23
  • Scheduled triggers: run agents and jobs on a cron schedule, managed from the admin UI
  • Full-text search: full-text indexing with clear error visibility in the admin
  • Agent editor: an improved agent editor and test chat for building and trying agents
Runtime 2026-05-21
  • Workbench: a terminal dev environment with live tails for requests, events and workflows
  • Workflows in development: run and hot-reload event handlers and durable workflows locally — no restart on source edits
  • Manual event emit: trigger any event from the CLI or dev UI to exercise your handlers
Platform 2026-05-21
  • Variables and secrets: manage org- and project-level variables and secrets, each with per-environment values
  • Instant rollout: secret and variable edits take effect without a redeploy or restart
  • Graceful deploys: in-flight requests drain cleanly on restart, for zero-downtime releases
raisindb 2026-05-18
  • Managed raisindb: provision a fully managed raisindb instance for your organization, with no servers to run
  • Provisioned per organization: an isolated instance with admin credentials surfaced the moment it is ready
  • Connected to your app: reach it directly from your deployed server-side code
Platform 2026-05-17
  • Maravilla Docs: a native desktop app with cloud sign-in and rich document editing
  • Diagrams as code: write UI mockups and diagrams in a fenced code block and have them render inline in docs, issues and comments — in the console and the Maravilla Docs app — powered by Boceto
  • Collaboration and sharing: issue notifications with participant fan-out and email delivery, plus clean vanity URLs for sharing docs and code
Runtime 2026-05-08
  • Document template merge: fill text, swap images and inject QR codes into a document in a single render
  • Document to HTML: convert documents to self-contained HTML with inlined images and styling
  • PDF thumbnails: server-side rasterisation for document previews
Platform 2026-05-03
  • Platform services per environment: database, storage, KV and asset URLs run isolated for production, preview or any custom environment within a project
  • Signed asset URLs: uploads served from a single edge route, scoped to your workspace, project and environment
  • Maravilla CLI overhaul: onboarding scaffold, doctor command, dev proxy, terminal-UI workflow browser, plus pipeline and Git PR commands
Platform 2026-04-25
  • Media transforms: resize images and transcode video on the platform, served with responsive variants
  • Admin console: lists every workflow, event handler and run across your project, with live tails for events and workflows
  • Hosted auth pages: sign-in, sign-up and password flows in your own design on your own domain, configured from project config
Muli 0.4.16 2026-04-23
  • File-scoped commit history: follows renames with git log --follow semantics over the API
  • Batch file operations: atomic creates, updates, deletes and renames in a single commit
  • Recursive tree listings: plus per-file commit history endpoints, mirroring the standard Git API
Runtime 2026-04-21
  • Events platform: react to database writes, KV updates, sign-ups, scheduled times and queue messages with a single TypeScript handler
  • Durable workflows: long-running jobs that survive restarts, with state, retries and a live runs view in the admin console
  • Vector search and declarative indexes: configure once in your project config, applied automatically on deploy
Platform 2026-04-19
  • Scheduled push notifications: send at a future time, replace reschedules cleanly with an idempotency key, or loop every N seconds for daily and weekly digests
  • Live scheduled-queue view: see every pending, running, succeeded and failed job update in real time, cancel a job with one click
  • Background dispatch: for immediate sends, HTTP handlers return right away instead of waiting for every device round-trip
Runtime 2026-03-24
  • Multi-framework SSR: React Router 7, Nuxt, SolidStart and TanStack Start alongside existing SvelteKit support
  • Runtime performance: significantly faster request handling for deployed applications
  • Framework auto-detection: extended to all newly supported frameworks in the CLI
Muli 0.4.10 2026-03-23
  • Git Contents write API: file creation and update endpoints
  • Batch commits and tree ops: new gRPC RPCs for high-throughput repository operations
Platform 2026-03-22
  • Custom domains: automatic SSL provisioning included
  • Deployment rollback: one-click recovery from the admin UI
Muli 0.4.8 2026-03-19
  • Pipeline secrets: encrypted storage with AES-256-GCM, injected into jobs at run time
  • Artifact metadata: now included in webhook payloads
Muli 0.4.0 2026-03-18
  • Jobs-based pipeline format: declarative jobs with DAG execution
  • Faster CI builds: host-side git checkout cuts repository fetch time
  • Job-to-job artifact handover: for complex multi-stage workflows
Platform 2026-03-18
  • Pipeline-based deployment: end-to-end build and delivery via the same pipeline engine
  • Code browser: branch, tag and commit navigation with a built-in file viewer
Muli 0.3.0 2026-03-17
  • Per-tenant resource limits: with a priority tier system
  • Tenant-level concurrency: enforcement for pipeline runs
Muli 0.2.0 2026-03-16
  • CI/CD Pipeline Orchestrator: YAML-defined pipelines
  • DAG executor: distributed Docker agents for parallel job execution
Platform 2026-03-13
  • Platform migration: moved to the maravilla-labs organization
  • Tenant-aware uploads: with org logo management
Muli 0.1.0 2026-03-10
  • Muli open-sourced: our internal CI/CD and git pipeline infrastructure released to the community
  • Unified Rust binary: git hosting, package registries and pipeline execution in a single deployable
Runtime 2025-09-24
  • V8 snapshots in production: for faster cold starts
  • In-memory cache layer: faster runtime response times with connection pooling across services
Runtime 2025-09-01
  • Rate limiting: cluster-wide token bucket with built-in circuit breakers
  • Worker pool scaling: least-connections load balancing across hosted workers
Platform 2025-08-15
  • Maravilla Runtime: integrated as the edge function execution engine
  • Full-stack serverless: platform evolves from static hosting to full-stack serverless
Platform 2025-07-24
  • Maravilla CLI: JavaScript-to-WebAssembly bundling
  • Edge functions: hot reload and ES6 module system
Platform 2025-07-09
  • MongoDB integration: multi-tenant data isolation
  • Auth and access control: role-based access, JWT authentication and email verification
Platform 2025-07-07
  • First commit: Maravilla Cloud project, multi-tenant static hosting in Rust and React