What's Changed
- feat(fetch+ui+openapi): StreamDescriptor — auto cache keys for streaming endpoints [#2855] by @viniciusdacal in #2862
- fix(ci): stop premature "latest" flips on release workflow [#2860] by @viniciusdacal in #2864
- docs(plans): open-agents clone scoping note + fix shipped status on agents-loop plan by @viniciusdacal in #2869
- docs(design): design doc for agent visual handoff [#2865] by @matheuspoleza in #2866
- fix(db): jsonb parity on SQLite/D1 + type-gated path filters [#2850] by @viniciusdacal in #2870
- chore: version packages by @github-actions[bot] in #2863
- feat(vtz): phase 1 headless screenshot — POC + design for #2865 by @matheuspoleza in #2871
- feat(vtz): screenshot::artifacts module — Task 1 of Phase 1 [#2865] by @matheuspoleza in #2872
- feat(vtz): chromiumoxide dep + binary-size decision gate — Task 2 [#2865] by @matheuspoleza in #2873
- fix(ui-server): use createRequire for ESM-safe module loading [#2875] by @viniciusdacal in #2879
- feat(vtz): screenshot::fetcher local-probe path — Task 3a [#2865] by @matheuspoleza in #2874
- fix(landing): land #2876 + #2877 on main — missed during stacked merge by @viniciusdacal in #2882
- fix(compiler): recognize regex literals in strip_comments [#2878] by @viniciusdacal in #2883
- fix(ui,theme-shadcn,ui-server,cli): default token scales + two SSR bugs by @viniciusdacal in #2887
- fix(landing): replace array-wrapped css() blocks with plain objects by @viniciusdacal in #2892
- fix(db): run d.jsonb validator on writes across both dialects [#2867] by @viniciusdacal in #2891
- docs(plans): design doc for typed JSONB operators [#2868] by @viniciusdacal in #2884
- chore: version packages by @github-actions[bot] in #2888
- docs(mint-docs): guide for reading and writing files with vtz by @viniciusdacal in #2900
- fix(vertz): auto-load import.meta.hot types from client-runtime subpaths [#2893] by @viniciusdacal in #2895
- feat(db): typed JSONB operators — path() + jsonContains / jsonContainedBy / hasKey [#2868] by @viniciusdacal in #2896
- docs(mint-docs): guide for spawning processes with node:child_process by @viniciusdacal in #2901
- fix(ui,theme-shadcn,component-docs): radius scale vars, __conditional thunk unwrap, sidebar scroll preservation by @viniciusdacal in #2904
- fix(native-compiler): preserve attr exprs in arrow-fn JSX props [#2897] by @viniciusdacal in #2905
- fix(db): route SQLite writes without RETURNING through execute() [#2890] by @viniciusdacal in #2906
- fix(vtz): dedup redundant package versions [#2894] by @viniciusdacal in #2909
- feat(vtz): screenshot::fetcher download path — Task 3b [#2865] by @matheuspoleza in #2910
- fix(db): stringify primitive values written to d.jsonb() on SQLite [#2889] by @viniciusdacal in #2907
- feat(vtz): screenshot::pool + chromium spawner — Task 4 [#2865] by @matheuspoleza in #2913
- feat(vtz): MCP tool vertz_browser_screenshot + artifact route — Task 5 [#2865] by @matheuspoleza in #2915
- chore(ci): silence release workflow warnings by @viniciusdacal in #2911
- fix(vtz): iterate install dedup until fixpoint so orphan optional binaries collapse [#2912] by @viniciusdacal in #2914
- feat(create-vertz-app): dev-server-tools rule docs vertz_browser_screenshot — Task 6 [#2865] by @matheuspoleza in #2916
- feat(vertz): Vite-parity HMR API — invalidate/decline/on/off [#2812] by @viniciusdacal in #2917
- docs(mint-docs): vertz_browser_screenshot guide — Task 7 [#2865] by @matheuspoleza in #2918
- ci(vtz): screenshot E2E on Linux + macOS — Task 8 [#2865] by @matheuspoleza in #2919
- feat(db): d.bytea() column type for binary storage [#2843] by @viniciusdacal in #2921
- feat(db): hasAllKeys / hasAnyKey JSONB operators [#2886] by @viniciusdacal in #2922
- fix(vtz): preserve package bin files when regenerating .bin shims [#2908] by @viniciusdacal in #2924
- fix(vtz): native sqlite binds Uint8Array + reads BLOB as Uint8Array [#2920] by @viniciusdacal in #2923
- fix(server): coerce form-encoded bodies on the server [#2808] by @viniciusdacal in #2928
- fix(db): type-gate array operators (arrayContains/arrayContainedBy/arrayOverlaps) to Postgres [#2885] by @viniciusdacal in #2927
- feat(ui): add @vertz/ui/client subpath for UI-only HMR types [#2813] by @viniciusdacal in #2926
- fix(schema): user-friendly invalid-type messages for number/bigint/date [#2809] by @viniciusdacal in #2925
- fix(vtz): don't rewrite
effect→domEffectinside strings/comments [#2801] by @viniciusdacal in #2930 - fix(ui-primitives): resolve no-narrowing-let warning in calendar-composed [#2802] by @viniciusdacal in #2929
- fix(vtz): populate module graph in test watch mode [#2765] by @viniciusdacal in #2932
- fix(pm): transitive dist-tag deps with multiple versions in graph [#2796] by @viniciusdacal in #2931
- chore: changeset for #2865 Phase 1 (headless screenshot MCP tool) by @matheuspoleza in #2935
- fix(changeset): use @vertz/runtime (not vtz) so release workflow parses by @matheuspoleza in #2936
- fix(compiler): diagnose non-bare-identifier route component factories [#2787] by @viniciusdacal in #2933
- fix(compiler): field-selection gaps — reduce/flatMap, loops/try/switch, scope shadowing [#2782] by @viniciusdacal in #2934
- chore: version packages by @github-actions[bot] in #2902
- fix(changeset): use @vertz/runtime (not vtz) in #2934's field-selection changeset by @matheuspoleza in #2939
- chore: version packages by @github-actions[bot] in #2937
- docs: retrospective for #2865 Phase 1 (headless screenshot) by @matheuspoleza in #2941
- fix(vtz): invalidate dependents' cache when a file fails to compile [#2766] by @viniciusdacal in #2940
- fix(compiler): AOT threads hydration id onto first element child of fragment roots [#2784] by @viniciusdacal in #2938
- fix(client): type import.meta.main for run-if-main idioms (#2811) by @viniciusdacal in #2955
- docs(agents): design doc for agent-store ↔ entity bridge [#2847] by @viniciusdacal in #2959
- docs(plans): GEO/SEO strategy design doc + 5 phase files by @matheuspoleza in #2963
- feat(landing): blog — dogfood Vertz stack at /blog [#2947] by @matheuspoleza in #2960
- chore(2947): post-merge housekeeping — retro + archive plan by @matheuspoleza in #2973
- feat(landing): 10 thematic blog posts + per-post covers by @matheuspoleza in #2977
- feat(agents): bridge AgentStore to Vertz entities (RLS-aware sessions/messages) [#2847] by @viniciusdacal in #2966
- fix(compiler): disambiguate context stable ids on same-name collisions [#2786] by @viniciusdacal in #2965
- fix(ui): prevent concurrent form submissions on double-click [#2982] by @viniciusdacal in #2983
- test(ui,ui-primitives): regression coverage for List.Item context on reactive re-runs [#2956] by @viniciusdacal in #2978
- fix(query): refetch on remount after mutation while unmounted [#2986] by @viniciusdacal in #2988
- fix(compiler): make early-return guards reactive in component bodies by @viniciusdacal in #2991
- feat(ui,ui-server)!: remove Suspense — loading UX is early-return + query.loading [#2985] by @viniciusdacal in #2990
- fix(ui): form() initial option re-evaluates reactively [#2984] by @viniciusdacal in #2989
- fix(server): type rules.entitlement() with registered Entitlement union [#2992] by @viniciusdacal in #2993
- fix(ui,fetch): map server 422 validation errors to form field signals [#2981] by @viniciusdacal in #2994
- fix(vtz): recover from wiped .vertz/deps/ and clear stale dep re-bundle errors [#2954] by @viniciusdacal in #2995
- fix(ui,schema): drop unknown form fields and coerce checkbox values for JSON [#2980] by @viniciusdacal in #2996
- chore: version packages by @github-actions[bot] in #2950
- chore(release): lock remaining public packages to fixed version group by @viniciusdacal in #2999
- fix(agents): opt-in d.jsonb() for agent state/toolCalls [#2958] by @viniciusdacal in #2997
- fix(ui,runtime): return correct HTTP status for SSR routes [#3001] by @viniciusdacal in #3004
- fix(examples): use vtz dev in playwright configs [#3002] by @viniciusdacal in #3009
- fix(examples): align linear example on port 3001 [#3007] by @viniciusdacal in #3010
- fix(vtz): walk up to resolve @vertz/cli for codegen in hoisted workspaces [#3000] by @viniciusdacal in #3011
- docs(examples): fix entity-todo README stale references [#3005] by @viniciusdacal in #3013
- chore(examples): remove dead dev:legacy script from entity-todo by @viniciusdacal in #3014
- docs(site): replace bun/bunx references with vtz CLI invocations [#3006] by @viniciusdacal in #3015
- docs(examples): rewrite entity-todo README reactive UI snippet [#3012] by @viniciusdacal in #3016
- fix(changeset): rename 'vtz' to 'vertz' in fix-fragment-root-hydration changeset by @viniciusdacal in #3017
- fix(compiler): use span-overlap check for signal mutation ranges (#2785) by @viniciusdacal in #3019
- fix(build): assert bundle outputs land inside outDir [#2953] by @viniciusdacal in #3020
- fix(vtz): heal cache + project bins corrupted by pre-#2908 vtz [#2952] by @viniciusdacal in #3021
- fix(vtz): apply requested viewport before rendering screenshots [#2949] by @viniciusdacal in #3022
- chore: version packages by @github-actions[bot] in #3018
Full Changelog: v0.2.75...v0.2.80