feat(task-013): add draft assembly API, immutable versioning, and editor preview

This commit is contained in:
2026-05-21 23:33:15 +03:00
parent 8ebb5ad623
commit c3914bf8be
19 changed files with 2416 additions and 16 deletions
+18
View File
@@ -215,12 +215,24 @@ POSTGRES_SCHEMA_STATEMENTS: tuple[str, ...] = (
meta_title TEXT,
meta_description TEXT,
body_object_key TEXT,
body_markdown TEXT NOT NULL DEFAULT '',
faq_items JSONB NOT NULL DEFAULT '[]'::jsonb,
visual_placeholders JSONB NOT NULL DEFAULT '[]'::jsonb,
evidence_references JSONB NOT NULL DEFAULT '[]'::jsonb,
unsupported_claim_warnings JSONB NOT NULL DEFAULT '[]'::jsonb,
based_on_draft_id UUID REFERENCES article_drafts(id) ON DELETE SET NULL,
status TEXT NOT NULL CHECK (status IN ({ARTICLE_STATUS_VALUES})),
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (article_id, version)
)
""",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS body_markdown TEXT NOT NULL DEFAULT ''",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS faq_items JSONB NOT NULL DEFAULT '[]'::jsonb",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS visual_placeholders JSONB NOT NULL DEFAULT '[]'::jsonb",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS evidence_references JSONB NOT NULL DEFAULT '[]'::jsonb",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS unsupported_claim_warnings JSONB NOT NULL DEFAULT '[]'::jsonb",
"ALTER TABLE article_drafts ADD COLUMN IF NOT EXISTS based_on_draft_id UUID REFERENCES article_drafts(id) ON DELETE SET NULL",
f"""
CREATE TABLE IF NOT EXISTS assets (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
@@ -525,6 +537,12 @@ SQLITE_SCHEMA_STATEMENTS: tuple[str, ...] = (
meta_title TEXT,
meta_description TEXT,
body_object_key TEXT,
body_markdown TEXT NOT NULL DEFAULT '',
faq_items TEXT NOT NULL DEFAULT '[]',
visual_placeholders TEXT NOT NULL DEFAULT '[]',
evidence_references TEXT NOT NULL DEFAULT '[]',
unsupported_claim_warnings TEXT NOT NULL DEFAULT '[]',
based_on_draft_id TEXT,
status TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,