refactor: remove canvas, automations, and custom statuses; simplify notification and status model

This commit is contained in:
2026-08-22 18:00:41 +00:00
parent 7b2cdc3bae
commit ffc50091b1
69 changed files with 834 additions and 6438 deletions
-3
View File
@@ -1,9 +1,6 @@
// ── Task ─────────────────────────────────────────────────────────────────────
// @deprecated — task status is now a per-project status_definition row.
// Kept as the category enum / default fallback only.
export const TASK_STATUS = ['todo', 'in_progress', 'done', 'cancelled'] as const;
export const TASK_STATUS_CATEGORY = ['todo', 'in_progress', 'done', 'cancelled'] as const;
export const TASK_PRIORITY = ['low', 'medium', 'high', 'urgent'] as const;
// ── Habit ────────────────────────────────────────────────────────────────────
-2
View File
@@ -5,8 +5,6 @@ export * from './schemas/habit';
export * from './schemas/project';
export * from './schemas/milestone';
export * from './schemas/note';
export * from './schemas/report';
export * from './schemas/canvas';
export * from './schemas/agent';
export * from './schemas/webhook';
-81
View File
@@ -1,81 +0,0 @@
import { z } from 'zod';
// ── Enums ────────────────────────────────────────────────────────────────────
export const canvasModeEnum = z.enum(['freeform', 'graph']);
export const canvasCardTypeEnum = z.enum(['note', 'task', 'image', 'entity']);
// ── Sub-schemas ──────────────────────────────────────────────────────────────
export const canvasCardSchema = z.object({
id: z.string(),
canvas_id: z.string(),
type: canvasCardTypeEnum,
entity_id: z.string().optional(),
title: z.string().optional(),
content: z.string().optional(),
x: z.number().default(0),
y: z.number().default(0),
width: z.number().positive().default(200),
height: z.number().positive().default(150),
rotation: z.number().default(0),
color: z.string().optional(),
z_index: z.number().int().default(0),
created: z.string().datetime(),
updated: z.string().datetime(),
});
export const createCanvasCardSchema = canvasCardSchema.omit({
id: true,
created: true,
updated: true,
});
export const updateCanvasCardSchema = createCanvasCardSchema.partial();
// ── Canvas Schema ────────────────────────────────────────────────────────────
export const canvasSchema = z.object({
id: z.string(),
name: z.string().min(1, 'Canvas name is required'),
description: z.string().optional(),
mode: canvasModeEnum.default('freeform'),
domain: z.string(),
tags: z.array(z.string()).default([]),
cards: z.array(canvasCardSchema).default([]),
connections: z.array(z.object({
id: z.string(),
source_card_id: z.string(),
target_card_id: z.string(),
label: z.string().optional(),
style: z.enum(['solid', 'dashed', 'dotted']).default('solid'),
})).default([]),
viewport: z.object({
x: z.number().default(0),
y: z.number().default(0),
zoom: z.number().positive().default(1),
}).optional(),
background: z.string().optional(),
custom_fields: z.record(z.string(), z.unknown()).optional(),
created: z.string().datetime(),
updated: z.string().datetime(),
});
export const createCanvasSchema = canvasSchema.omit({
id: true,
cards: true,
connections: true,
created: true,
updated: true,
});
export const updateCanvasSchema = createCanvasSchema.partial();
// ── Types ────────────────────────────────────────────────────────────────────
export type Canvas = z.infer<typeof canvasSchema>;
export type CreateCanvas = z.infer<typeof createCanvasSchema>;
export type UpdateCanvas = z.infer<typeof updateCanvasSchema>;
export type CanvasCard = z.infer<typeof canvasCardSchema>;
export type CreateCanvasCard = z.infer<typeof createCanvasCardSchema>;
export type UpdateCanvasCard = z.infer<typeof updateCanvasCardSchema>;
-72
View File
@@ -1,72 +0,0 @@
import { z } from 'zod';
// ── Enums ────────────────────────────────────────────────────────────────────
export const reportTypeEnum = z.enum(['weekly', 'monthly', 'project', 'habit', 'custom']);
// ── Sub-schemas ──────────────────────────────────────────────────────────────
export const reportTemplateSchema = z.object({
id: z.string(),
name: z.string().min(1, 'Template name is required'),
description: z.string().optional(),
type: reportTypeEnum,
sections: z.array(z.object({
title: z.string(),
type: z.enum(['summary', 'chart', 'table', 'list', 'text']).default('text'),
config: z.record(z.string(), z.unknown()).optional(),
sort_order: z.number().int().nonnegative().default(0),
})).default([]),
created: z.string().datetime(),
updated: z.string().datetime(),
});
export const createReportTemplateSchema = reportTemplateSchema.omit({
id: true,
created: true,
updated: true,
});
// ── Report Schema ────────────────────────────────────────────────────────────
export const reportSchema = z.object({
id: z.string(),
title: z.string().min(1, 'Report title is required'),
type: reportTypeEnum,
template_id: z.string().optional(),
domain: z.string(),
date_range: z.object({
start: z.string().datetime(),
end: z.string().datetime(),
}),
sections: z.array(z.object({
title: z.string(),
content: z.string().optional(),
data: z.record(z.string(), z.unknown()).optional(),
sort_order: z.number().int().nonnegative().default(0),
})).default([]),
summary: z.string().optional(),
is_draft: z.boolean().default(true),
generated_at: z.string().datetime().optional(),
tags: z.array(z.string()).default([]),
custom_fields: z.record(z.string(), z.unknown()).optional(),
created: z.string().datetime(),
updated: z.string().datetime(),
});
export const createReportSchema = reportSchema.omit({
id: true,
generated_at: true,
created: true,
updated: true,
});
export const updateReportSchema = createReportSchema.partial();
// ── Types ────────────────────────────────────────────────────────────────────
export type Report = z.infer<typeof reportSchema>;
export type CreateReport = z.infer<typeof createReportSchema>;
export type UpdateReport = z.infer<typeof updateReportSchema>;
export type ReportTemplate = z.infer<typeof reportTemplateSchema>;
export type CreateReportTemplate = z.infer<typeof createReportTemplateSchema>;
-8
View File
@@ -42,15 +42,7 @@ export type {
CreateNoteTaskLink,
} from '../schemas/note';
// ── Report ───────────────────────────────────────────────────────────────────
export type { Report, CreateReport, UpdateReport } from '../schemas/report';
export type { ReportTemplate, CreateReportTemplate } from '../schemas/report';
// ── Canvas ───────────────────────────────────────────────────────────────────
export type { Canvas, CreateCanvas, UpdateCanvas } from '../schemas/canvas';
export type { CanvasCard, CreateCanvasCard, UpdateCanvasCard } from '../schemas/canvas';
// ── Agent ────────────────────────────────────────────────────────────────────