feat: introduce conditional steps and branching logic to the experiment wizard and designer, along with new core and WoZ plugins.

This commit is contained in:
2026-02-10 10:24:09 -05:00
parent 388897c70e
commit 0f535f6887
38 changed files with 2410 additions and 1190 deletions

View File

@@ -168,7 +168,6 @@ export function convertDatabaseToSteps(
const sortedSteps = [...dbSteps].sort((a, b) => (a.orderIndex ?? 0) - (b.orderIndex ?? 0));
return sortedSteps.map((dbStep, idx) => {
// console.log(`[block-converter] Step ${dbStep.name} OrderIndex:`, dbStep.orderIndex, dbStep.order_index);
return {
id: dbStep.id,
name: dbStep.name,

View File

@@ -24,7 +24,7 @@ export type TriggerType =
export interface ActionParameter {
id: string;
name: string;
type: "text" | "number" | "select" | "boolean";
type: "text" | "number" | "select" | "boolean" | "json" | "array";
placeholder?: string;
options?: string[];
min?: number;

View File

@@ -148,7 +148,11 @@ export class WizardRosService extends EventEmitter {
console.error("[WizardROS] WebSocket error:", error);
clearTimeout(connectionTimeout);
this.isConnecting = false;
this.emit("error", error);
// Prevent unhandled error event if no listeners
if (this.listenerCount("error") > 0) {
this.emit("error", error);
}
reject(error);
};
});