AkurAI Build
Menu

Public repository / 5fdd8b81e1f8244cbfc64e15d9ca2d5dba604bfb

AkurAI-Framework / BATCHES.md

Latest change 55151256643f4d02740a188c69faae3b3814e295 - integrate batch 7: wire /client-demo route+nav, uploads/client-sdk docs, roadmap+changelogs for v0.4.0 by Ólafur Búi Ólafsson

# Feature batches — remaining roadmap

The canonical ledger for finishing the framework's roadmap. Each batch = up to 3
features built as **parallel worktree agents on DISJOINT file sets** (rule: AT
MOST ONE cli-touching feature per batch; the others are a NEW crate or
frontend-JS-only), then the orchestrator merges, gates, wires nav/docs/changelog,
verifies, and runs `./deploy.sh minor`.

Status: ✅ done · 🔄 in progress · ⬜ queued

Anything `std` genuinely cannot do (TLS clients, from-scratch image codecs) is
descoped honestly and documented rather than faked.

---

## Batch 5 — Data engine core ✅ (shipped v0.2.0, live)  → v0.2.0
- `crates/toml` — pure-std TOML parser (unblocks `collections.toml`). [new crate]
- `crates/collections` — collection schema + auto-CRUD records over `akurai-storage`. [new crate]
- `crates/vector` — embedding client (plain-HTTP OpenAI-compatible) + cosine/top-k. [new crate]
- **Integration (orchestrator):** wire `backend/collections.toml` → auto REST API
  (`/api/collections/<name>/records` CRUD) + `?search` (vector ranking, substring
  fallback when no `AKURAI_EMBED_URL`); merge collections into `/api/_meta`;
  scaffold a default `collections.toml`. **Ships: auto-generated REST API + semantic search.**

## Batch 6 — Build pipeline + SQL writes + Admin ✅ (shipped v0.3.0)  → v0.3.0
- (A) **Build-pipeline wiring** [cli]: emit `utilities.css` from `crates/css` on
  `serve`/`dev` (+ watch), and run `crates/assets` (fingerprint + minify, immutable
  cache headers) over static assets. Closes the two "lib, not wired" crates.
- (B) **SQL UPDATE/DELETE** [`crates/sqlexec`]: execute the already-parsed
  `UPDATE`/`DELETE` statements over the B+tree.
- (C) **Admin UI** [frontend-only]: an `/admin` page (native ESM) that reads
  `/api/_meta` and does collection CRUD via the auto-API.

## Batch 7 — Relations, blobs, typed client ✅ (shipping v0.4.0)  → v0.4.0
- (A) **Relations** [`crates/collections`]: a `relation` field referencing another
  collection by id, with `?expand=` on read.
- (B) **File uploads / blobs** [cli + storage]: `multipart/form-data` parsing in
  `akurai-http` + blob storage; a `file` field type.
- (C) **Typed client SDK** [frontend-only]: generate `akurai-client.js` (typed
  collection CRUD) from `/api/_meta`.

## Batch 8 — Frontend platform I 🔄  → v0.5.0
- (A) **SSG + ISR** [cli]: pre-render configured routes to static HTML cached in
  storage, with revalidation.
- (B) **i18n** [`crates/i18n` (new) + frontend]: locale message catalogs, a
  `{{ t "key" }}` template helper, and `Accept-Language` negotiation.
- (C) **Error/loading boundaries** [frontend-only]: declarative error + loading UI
  for SPA navigation and data loaders.

## Batch 9 — Frontend platform II + SQL depth ⬜  → v0.6.0
- (A) **Lazy routes / code splitting** [frontend + small cli manifest]: per-route
  JS via native `import()` + a route manifest.
- (B) **SQL indexes + joins** [`crates/sqlexec`]: secondary indexes + inner joins.
- (C) **Performance budgets** [`bench/` + `deploy.sh`]: `cargo bench` budgets
  enforced as a release gate.

## Batch 10 — Streaming, planner, images ⬜  → v0.7.0
- (A) **Streaming SSR** [`crates/http` + cli]: chunked transfer-encoding streaming
  of large templates.
- (B) **SQL planner + transactions** [`crates/sqlexec`]: a cost-aware planner +
  multi-statement transactions.
- (C) **Image optimisation** [frontend + cli]: responsive image hints + native
  lazy-loading (from-scratch raster codecs are out of pure-std scope — documented).

---

*After Batch 10 the roadmap's headline gaps vs Next/Vue/Svelte and PocketBase are
closed. Update `site/content/docs/roadmap.md` as each batch ships.*