Files
Agent-System/deploy/postgres/goose/00026_2026-09-13-chat-message-scope.sql
T
weichenandCursor 1abafa3176 fix(chat): add message scope columns and write-path resolution
Persist workflow_instance_id, stage_instance_id, scope_kind on chat
messages and task runs; resolve scope from live instance for chat and
document tasks so refresh can apply consistent stage authorization.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 03:06:08 +00:00

37 lines
1.5 KiB
SQL

-- +goose Up
-- 消息工作流作用域:支持刷新后阶段授权与历史兼容
ALTER TABLE chat_messages
ADD COLUMN IF NOT EXISTS workflow_instance_id BIGINT REFERENCES project_workflow_instances(id) ON DELETE SET NULL,
ADD COLUMN IF NOT EXISTS stage_instance_id BIGINT REFERENCES project_stage_instances(id) ON DELETE SET NULL,
ADD COLUMN IF NOT EXISTS stage_key TEXT,
ADD COLUMN IF NOT EXISTS scope_kind TEXT NOT NULL DEFAULT 'legacy_unscoped';
CREATE INDEX IF NOT EXISTS idx_chat_messages_session_scope
ON chat_messages (session_id, scope_kind)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_chat_messages_stage_key
ON chat_messages (session_id, stage_key)
WHERE deleted_at IS NULL AND stage_key IS NOT NULL;
ALTER TABLE task_runs
ADD COLUMN IF NOT EXISTS workflow_instance_id BIGINT REFERENCES project_workflow_instances(id) ON DELETE SET NULL,
ADD COLUMN IF NOT EXISTS stage_instance_id BIGINT REFERENCES project_stage_instances(id) ON DELETE SET NULL,
ADD COLUMN IF NOT EXISTS workflow_stage_key TEXT;
-- +goose Down
ALTER TABLE task_runs
DROP COLUMN IF EXISTS workflow_stage_key,
DROP COLUMN IF EXISTS stage_instance_id,
DROP COLUMN IF EXISTS workflow_instance_id;
DROP INDEX IF EXISTS idx_chat_messages_stage_key;
DROP INDEX IF EXISTS idx_chat_messages_session_scope;
ALTER TABLE chat_messages
DROP COLUMN IF EXISTS scope_kind,
DROP COLUMN IF EXISTS stage_key,
DROP COLUMN IF EXISTS stage_instance_id,
DROP COLUMN IF EXISTS workflow_instance_id;