Files
mizan/ISSUES.md

3.6 KiB

Mizan — Known Issues

Status board against the current codebase: Rust codegen (protocol/mizan-codegen), KDL IR, kernel-owned frontend state (@mizan/base). Issues that the earlier expert-review board filed against the deleted JavaScript codegen and the pre-kernel mizan-react provider have been removed — they audited files that no longer exist.

Open

  • Vue / Svelte frontend packages are unimplemented stubs. frontends/mizan-vue and frontends/mizan-svelte contain only a package.json — no src/. The Rust codegen emits Vue composables and Svelte stores (src/emit/vue.rs, src/emit/svelte.rs, byte-checked by vue_svelte_parity.rs), but there is no runtime kernel-adapter package for either and no example app exercises them against a live backend. React is the only frontend with full integration verification.
  • Svelte adapter emits Svelte 4 stores. src/emit/svelte.rs generates readable stores from svelte/store. Svelte 5 $state/$derived runes are the current idiom.
  • Forms have no codegen target. mizan-react/src/forms.ts (form core hooks) is hand-written and consumed via the pre-kernel MizanProvider; the e2e harness has its form fixtures removed. A form codegen target wired to mizanCall is owed.
  • Upload dispatch not wired for Rust/Axum + Tauri. The Upload type is first-class end to end — IR (upload KDL node), codegen (TS File; the Rust target lowers it to Vec<u8>), kernel (auto-multipart), and dispatch+constraint binding on Django and FastAPI. The Rust/Axum and Tauri adapters have no upload concept at dispatch — they don't bind multipart file parts yet.
  • Pre-kernel MizanProvider still shipped. mizan-react/src/context.tsx (~750 lines) is the pre-kernel provider, still imported by the desktop example. It coexists with the codegen-emitted MizanContext (which subscribes to @mizan/base). Migrating the desktop example onto the generated provider retires it.
  • Cache module open issues. See backends/mizan-django/src/mizan/cache/KNOWN_ISSUES.md: cross-language stringification of un-normalized value types, and no thundering-herd / single-flight protection.
  • Packages missing a README. frontends/mizan-base (the kernel everything imports), protocol/mizan-codegen (the codegen binary), frontends/mizan-vue, frontends/mizan-svelte, frontends/mizan-rust, backends/mizan-ts, backends/mizan-rust-axum, cores/mizan-python.

Resolved this pass

  • Codegen test suite compile break — every mizan-codegen test constructed SourceConfig without the rust/script fields added alongside the Rust-backend work. Suite now compiles and is green.
  • React parity baseline — the emitter correctly drops the dead initSession/MizanError top-level imports (they are only re-exported, never used in the module body); baseline regenerated. Fixed the template whitespace artifact that indented the } from '@mizan/base' closing brace.
  • Edge manifest non-determinismgenerate_edge_manifest iterated registration order; now sorts context and mutation keys, so the manifest is deterministic regardless of registration order.
  • Dead code removedworkers/mizan-ssr/src/test-worker.tsx (a relic of the rejected registerComponent registry), unused TS helpers isResponseReturn and sortedStringify (mizan-ts), the unused IndexMap import (emit/python.rs), the dead debug_expose_names Django setting, and the dead package.json exports + vite aliases (./client/nextjs, ./allauth, ./allauth/nextjs) pointing at source that does not exist.