Implement production-ready block designer and schema

- Add EnhancedBlockDesigner with Scratch-like block interface - Remove
all legacy designer implementations (React Flow, FreeForm, etc.) - Add
block registry and plugin schema to database - Update experiments table
with visual_design, execution_graph, plugin_dependencies columns and GIN
index - Update drizzle config to use hs_* table filter - Add block
shape/category enums to schema - Update experiment designer route to use
EnhancedBlockDesigner - Add comprehensive documentation for block
designer and implementation tracking
This commit is contained in:
2025-08-05 01:47:53 -04:00
parent b1684a0c69
commit 7cdc1a2340
18 changed files with 2338 additions and 10215 deletions

View File

@@ -1,5 +1,5 @@
import { notFound } from "next/navigation";
import { ExperimentDesignerClient } from "~/components/experiments/designer/ExperimentDesignerClient";
import { EnhancedBlockDesigner } from "~/components/experiments/designer/EnhancedBlockDesigner";
import { api } from "~/trpc/server";
interface ExperimentDesignerPageProps {
@@ -20,14 +20,17 @@ export default async function ExperimentDesignerPage({
}
return (
<div className="fixed inset-0 z-50">
<ExperimentDesignerClient
experiment={{
...experiment,
description: experiment.description ?? "",
}}
/>
</div>
<EnhancedBlockDesigner
experimentId={experiment.id}
initialDesign={{
id: experiment.id,
name: experiment.name,
description: experiment.description ?? "",
blocks: [],
version: 1,
lastSaved: new Date(),
}}
/>
);
} catch (error) {
console.error("Error loading experiment:", error);