Menu
Public repository / 4f0fa16197a4c339c643dd14c402e84faadc29d9
AkurAI-Framework / BATCHES.md
Latest change b34c72a614f00efd0c0d58bdc5e3ccc63f07c682 - docs: fix stale info (v0.1.0 status, roadmap, crate table) + file remaining-feature batch ledger (BATCHES.md) 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 🔄 → 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 ⬜ → 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 ⬜ → 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.*