Changelog

Notable changes to AkurAI/Framework. The format follows Keep a Changelog; the project uses semantic versioning.

Unreleased

Added

get_str/get_bool/get_i64, and escape(&str) so apps stop hand-rolling JSON mutation.

(app, framework, framework_version, version, status, extra fields) with .response(); akurai serve now uses it.

written (Reply::raw(|stream| …)), so app-owned protocol engines and handlers mid-migration run on the framework Server (pool, body limit, access log) without rewriting every response path first. Middleware passes raw replies through untouched.

Changed

AKURAI_APPS.toml is the minimum; an app may pin that release or a newer one (upgrades land in Framework first and consumers move serially).

/api/health carries the full contract envelope.

0.9.0 - 2026-09-03

Added

(RateLimit::new(capacity, refill_per_sec)), 429 with Retry-After, peer-IP key by default with .with_key(…), bounded memory with stalest eviction. See Middleware.

signing and presigned URLs (all four AWS documented vectors pass), typed builders for ListObjectsV2 (delimiter/paging), Head/Put/Get/Copy/Delete, batch DeleteObjects, multipart (create/part-presign/complete/abort/list), bucket versioning, ListObjectVersions, lifecycle rules, and CreateBucket; std-only XML reader for responses. The socket is injected through a Transport trait (TLS stays app-side), so tests run against canned responses. See S3 storage.

token_hex, unpadded base64url token_url, and bias-free uniform_u32. No fallback: minting fails loudly if the entropy device is unreadable. Auth session ids, salts, and OTP codes now use it; the SplitMix64 "CSPRNG-lite" and its module caveat are gone. See Random.

HMAC-SHA256, and hex_lower, proven by NIST and RFC 4231 known-answer vectors. akurai-blobs gains content_id_sha256 / BlobStore::put_sha256 for collision-resistant ids (FNV default unchanged). See Hashing.

Framework release, AkurAI Build pipeline ordering, immutable artifact path, absolute Cargo dependency paths, and duplicated generic infrastructure across every registered app checkout.

versioned, privacy-validated event envelope plus bounded non-blocking delivery, recent duplicate suppression, time-bounded shutdown, and payload-free metrics for organization/workspace adoption facts.

uses it for the built-in chat assistant avatar and conversation empty state without replacing AkurAI/Framework's product mark.

request to stderr by default (journald-friendly): peer address, method and target, status, body bytes, and duration. Malformed request heads are logged too (<malformed> -> 400). Opt out with Server::access_log(false).

the server on every live connection.

Removed

log, which sees parse failures and the peer address that middleware never could. Drop it from your MiddlewareStack; logging now happens by default.

0.8.4 - 2026-08-24

Changed

0.8.3 - 2026-08-24

Changed

0.8.2 - 2026-06-27

Added

{% raw %}...{% endraw %} so docs and examples can show {{ }} / {% %} syntax without the parser trying to execute it.

embed_many_with_bearer, and generated collection APIs read AKURAI_EMBED_API_KEY so protected OpenAI-compatible routers can power semantic search.

Three.js gradient (Stripe-style mesh gradient, GPU-only), replacing the static illustration. Self-hosted Three.js, no CDN; CSS-gradient fallback and respects reduced-motion.

0.8.1 - 2026-06-26

Changed

blue→mint accent — matching the AkurAI Drive look.

Docs

use, adopt, and extend them.

0.8.0 - 2026-06-26

Added

Solarized, Gruvbox, Tokyo Night, Rosé Pine, Dracula, AkurAI) in light and dark, generated by the Rust theme engine and served at /themes.css. Switch with the header picker; your choice is remembered and the OS light/dark setting is the default. Any app on the framework gets the same themes for free.

Docs

confirmations, questions, edit previews, artifacts, and typed receipts.

0.7.0 - 2026-06-26

Added

(/chat) backed by a new /api/assistant endpoint that talks to any OpenAI-compatible model, plus 27 tool-result components (charts, tables, forms, approvals, media, social cards, maps, and more) that turn a model's tool output into interactive UI. Explore the live gallery at /ai-components. It's a 1:1 port of assistant-ui + tool-ui into the framework's no-build native-ESM frontend — no React. Also added a root /llms.txt so LLMs can read the framework's map.

0.6.0 - 2026-06-26

Added

your email (/login/otp), in addition to username + password. Codes expire after 10 minutes and lock out after 5 wrong tries. The framework hands the code to a pluggable sender (logged by default), so you wire in your own email.

admin-only pages. The built-in demo user is an admin.

0.5.0 - 2026-06-26

Added

once and served from cache, with optional timed revalidation. Try /welcome.

{{ t "key" }} template helper, and automatic language negotiation from the browser's Accept-Language.

that shows a loading state, then your content, or a retryable error. See /boundaries-demo.

0.4.0 - 2026-06-26

Added

collection, and ?expand= inlines the referenced record on read.

a content-addressed blob store and a download URL per file field.

per-collection CRUD methods, built from your API at runtime. Demo at /client-demo.

Changed

gradient feature icons, all hand-authored SVG (no images, no external requests).

0.3.0 - 2026-06-26

Added

delete records in any collection, generated from your schema. No build step.

rows (with WHERE), on top of create/insert/select.

a utilities.css of just the classes you use, regenerated live as you edit.

immutable headers out of the box.

0.2.0 - 2026-06-26

Added

and the framework serves CRUD endpoints for it automatically: list, create, read, update, and delete records under /api/collections/<name>/records, with validation and a self-describing /api/_meta — no handler code. Three new from-scratch crates power it (a TOML parser, a collections engine, and a vector library), all pure std, zero dependencies.

meaning, using any OpenAI-compatible embeddings endpoint; with no endpoint configured it falls back to plain substring search.

Docs

that every breaking change is documented there and in the changelog.

0.1.0 - 2026-06-26

Added

INSERT, and SELECT (with WHERE, ORDER BY, and LIMIT) execute over the B+tree storage engine, and your tables and rows survive a restart.

/account page, and /logout, all backed by the storage engine. Try the demo user demo / akurai.

just the regions you mark, with no flicker and no virtual DOM. See the /islands demo.

component rendered live next to its copyable markup, instead of just code.

command, and akurai update self-updates the CLI to the latest release.

CREATE TABLE, with WHERE/ORDER BY/LIMIT) — the first half of the embedded database's query layer. Execution comes next.

page, so data-driven pages need no code. See the /team demo.

content with smooth View Transitions, while plain links still work without it. See the /spa demo.

directives (data-text, data-model, data-for, …) — client interactivity with no build step and no dependencies. See the /reactivity demo.

field in routes.json. See the /welcome demo.

minification for long-term-cacheable static assets.

middleware chain that adds security headers (nosniff, frame-deny, referrer policy) and a response-time header.

only the utility CSS you actually use (Tailwind-style, from scratch, no build).

descriptions for better search and social previews.

The /guestbook persists to disk: entries survive a server restart and a redeploy. No separate database server — it's one file in the binary's data dir.

Try the /guestbook: a plain form the server validates, stores, and redirects back from — works with JavaScript disabled, and entries are HTML-escaped.

(/posts/:id, /files/*path) to templates, with captured params available in the page as params. See the live /hello/:name demo.

browser on every change over SSE; no plugin, no build step. Production (akurai serve) is untouched.

/files/*path) with specificity ranking — the foundation for dynamic routes.

components across Actions, Forms, Data display, Feedback, Navigation, and Overlays, grouped by category with a quick index. Tabs, modals, toasts, dropdowns and the rest are all pure HTML/CSS with native-first behaviour.

Server-Sent Events, both pure std with zero dependencies and standards- compliant, so a browser's native WebSocket/EventSource connect directly. Demo endpoints /api/ws and /api/events; see Docs → Realtime.

component catalog (~60 components, from buttons to the admin shell) specifying the UI primitives the framework ships. Under Docs → Design system.

framework ships today versus what's in progress or still planned, measured against Next, Vue, and Svelte.

code blocks, blockquotes, inline code/bold/italic/links). Powers these docs.

page, sidebar documentation, an API reference, this changelog, and a categorized /components library.

{% for %}, {% include %}) rendering against a JSON context.

foundation of the embedded database.

through the maintained akurai-ec2 release operation with automatic TLS; live at akurai-framework.olibuijr.com.

Notes

written from scratch on std.

0.0.1

Initial foundation: workspace, HTTP core, JSON, the bootstrap CLI, and the single-binary, zero-dependency thesis proven end to end.