Merge main into Scene 7 evidence workflow

This commit is contained in:
2026-08-22 17:23:47 +02:00
16 changed files with 210 additions and 51 deletions
+18
View File
@@ -0,0 +1,18 @@
-- Merit nodes: a ceremony node that awards an achievement when the playthrough
-- reaches it (Scene 8 — "The Barricelli Luggage"). The awarded flag is authored on
-- the node; the runtime grants it on arrival with node provenance. Merit nodes may
-- also carry a component_key for their ceremony presentation (e.g. a 3D model).
ALTER TABLE osint.story_nodes DROP CONSTRAINT story_nodes_node_type_check;
ALTER TABLE osint.story_nodes ADD CONSTRAINT story_nodes_node_type_check
CHECK (node_type IN ('cutscene','dialogue','level','det_gate','llm_gate','merit'));
-- Let a merit node carry a ceremony component_key (was cutscene/gate only).
ALTER TABLE osint.story_nodes DROP CONSTRAINT story_nodes_check1;
ALTER TABLE osint.story_nodes ADD CONSTRAINT story_nodes_check1
CHECK (component_key IS NULL OR node_type IN ('cutscene','det_gate','llm_gate','merit'));
ALTER TABLE osint.story_nodes ADD COLUMN awards_flag TEXT
CHECK (awards_flag IS NULL OR awards_flag ~ '^[a-z][a-z0-9_.-]{0,63}$');
ALTER TABLE osint.story_nodes ADD CONSTRAINT story_nodes_awards_flag_type
CHECK (awards_flag IS NULL OR node_type = 'merit');
+12
View File
@@ -0,0 +1,12 @@
-- Phone book + phone directory nodes. NPCs gain contact details; a phone node's
-- terminals each bind to an NPC (the callee) whose number the player dials.
ALTER TABLE osint.npcs ADD COLUMN phone_number TEXT;
ALTER TABLE osint.npcs ADD COLUMN email TEXT;
ALTER TABLE osint.story_nodes DROP CONSTRAINT story_nodes_node_type_check;
ALTER TABLE osint.story_nodes ADD CONSTRAINT story_nodes_node_type_check
CHECK (node_type IN ('cutscene','dialogue','level','det_gate','llm_gate','merit','phone'));
-- A terminal on a phone node binds to the NPC you reach by dialing their number.
ALTER TABLE osint.story_node_terminals ADD COLUMN npc_id UUID REFERENCES osint.npcs(id) ON DELETE SET NULL;