Effect↔React Seam Qwen3.6-35B-A3B — React/Seam LoRA (MLX, rank-8, unfused)

A local LoRA adapter that teaches Qwen3.6-35B-A3B-4bit to write the thin React front-end + the React↔Effect seam of a modern typed-functional stack: React 19 + Mantine v9 view, TanStack Query/Start, and the Effect v4 boundary (effect@4.0.0-beta.8x, effect/unstable/*). Built $0-local on a single Apple M5 Max (48 GB). It is the React half of a dual-LoRA library that shares ONE base with the Effect "write" LoRA — the two are hot-swapped in-process behind one server.

Architecture it bakes in: Contract = Effect Schema · Logic = Effect · View = React (NO business logic in .tsx) · typed errors carried across the server-fn boundary as a Schema discriminated union (pattern A) or reconstructed client-side via effect/unstable/rpc (pattern B). It writes idiomatic v4 seam code: Context.Service (not Context.Tag), Result (not Either), queryOptions/mutationOptions, useMutation().isPending (v5), Schema.TaggedErrorClass for RPC contract errors — no throw across boundaries.

Honest framing. This is a rank-8 adapter (apply unfused on the base), not a fused model. The headline numbers below are the served PRODUCT (best-of-N sampling + a real tsc --strict gate with the Mantine/TanStack/Effect type roots), not bare greedy weights — tsc is the only arbiter. The win is concentrated where it matters: the seam, which the base model gets wrong.

What it is

  • Base: mlx-community/Qwen3.6-35B-A3B-4bit (qwen3_5_moe, 35.9B total / ~3B active).
  • Adapter (react_v1s42_i100): rank-8 LoRA (seed 42, the val-minimum checkpoint), warm-started from the shared CPT base, SFT on 94 tsc+LSP-gated pairs (38 react-view + 56 seam) covering all 11 seam topics.
  • This repo: the LoRA adapter (adapter_config.json + adapters.safetensors, the 408-tensor delta). Apply it unfused with mlx_lm.

Eval — frozen 26-task React/seam held-out, served product (best-of-N + real tsc)

The held-out set (eval/tasks_heldout_react.jsonl, 11 react-view + 15 seam) is frozen; each task is routed to the gate it must pass (react-view → React+Mantine JSX gate; seam → Effect+TanStack+Mantine gate). The same prompts are used for the base and the adapter, so any delta is the adapter's baked-in idioms.

config compiled @ 26 compiled+rubric @ 26
base model (no adapter) 13 / 26 8 / 26
this adapter (react_v1s42_i100) 24 / 26 15 / 26

+11 compiled / 0 regressions — every gain is on the SEAM lane (base 2/15 → 13/15; react-view 11/11 for both, i.e. the base already handles plain Mantine views, and the adapter adds the React↔Effect boundary it could not write). Measured at best-of-16; the live server runs best-of-8 with the same gate.

How it's served

The production server (serve/serve.py in the training repo) routes by intent: seam / react → this adapter; Effect business-logic / edits → the Effect "write" champion — both LoRAs on one resident base, hot-swapped in-process (a load_weights weight-overwrite; the two adapters share an identical tensor namespace). Each request is best-of-N sampled and kept only if it passes the lane's real tsc gate.

Usage (mlx_lm, Apple Silicon)

pip install mlx-lm
python -c "
from mlx_lm import load, generate
# apply the adapter unfused on the base
model, tok = load('mlx-community/Qwen3.6-35B-A3B-4bit', adapter_path='./')
prompt = 'Write a TanStack queryOptions factory userQuery(id) that fetches a User via a createServerFn running an Effect, returning a Result discriminated union. Output one tsx block.'
msgs = [{'role':'user','content':prompt}]
text = tok.apply_chat_template(msgs, add_generation_prompt=True, enable_thinking=False)
print(generate(model, tok, text, max_tokens=640, verbose=True))
"

Tip: for production, sample N times and keep the first output that passes tsc --strict against your React/Mantine/TanStack/Effect type roots — that is the served product, not bare greedy.

Limitations

  • Rank-8 adapter — needs the exact base above; greedy single-shot is weaker than the best-of-N product.
  • Targets effect@4.0.0-beta.8x + Mantine v9 + TanStack Query v5 / Start + React 19; other versions may drift.
  • View tasks must be thin — this is deliberately NOT trained to put business logic in .tsx.
  • MLX format → Apple Silicon. Reasoning disabled (enable_thinking=False); it's a direct code generator.

Companion: the Effect "write" LoRA / fused champion (jrad123777/effect-qwen36-35b-write-lora).

Built $0-local. Trained and evaluated against the installed .d.ts with tsc --strict as the only arbiter, and documented honestly.

Downloads last month

-

Downloads are not tracked for this model. How to track
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for jrad123777/effect-qwen36-35b-react-lora

Adapter
(4)
this model