接续 88dd570,保存 W20–W24 已实现的共享接口、业务入口、迁移、工作台、测试与文档。 W20/W22/W23 保持 in_progress,W21/W24 保持 verified;此提交不宣称方法或规则正式启用、多轮返修、真实角色评测完成。 W25 新增实验、标定、逐调用交付与角色执行及其迁移/测试/索引留在实施工作树,原有私人和旧实现保留项不纳入。 验证:离线 571、前端 33 通过;PG 469 项通过、2 项浏览器未启用,2 项误带入的 W25 用例已移出本提交;最终任务与交付边界 37 项通过。make 检查、最终类型、84 项资源及 diff 检查通过。未重跑浏览器或 Pi 宿主,不以合成调用认证外部模型效果。 独立整体审查四维通过;证据保存在 R2-20260909/提交W20-W24。
35 lines
1.8 KiB
PL/PgSQL
35 lines
1.8 KiB
PL/PgSQL
-- 文学片结果和完整报告由B06持有,任务运行只记录引用和执行证据。
|
||
CREATE TABLE public.muse_literary_shard (
|
||
task_id uuid NOT NULL REFERENCES public.muse_task(task_id),
|
||
shard_id text NOT NULL CHECK (shard_id ~ '^[0-9a-f]{64}$'),
|
||
attempt_id uuid NOT NULL REFERENCES public.muse_attempt(attempt_id),
|
||
call_id text NOT NULL,
|
||
author_id text NOT NULL,
|
||
snapshot_id uuid NOT NULL REFERENCES public.muse_context_snapshot(snapshot_id),
|
||
basis_hash text NOT NULL CHECK (basis_hash ~ '^[0-9a-f]{64}$'),
|
||
payload jsonb NOT NULL CHECK (jsonb_typeof(payload) = 'object'),
|
||
payload_hash text NOT NULL CHECK (payload_hash ~ '^[0-9a-f]{64}$'),
|
||
evidence jsonb NOT NULL CHECK (jsonb_typeof(evidence) = 'object'),
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
PRIMARY KEY (task_id, shard_id),
|
||
UNIQUE (task_id, call_id)
|
||
);
|
||
CREATE TABLE public.muse_literary_report (
|
||
report_id uuid PRIMARY KEY,
|
||
task_id uuid NOT NULL UNIQUE REFERENCES public.muse_task(task_id),
|
||
author_id text NOT NULL,
|
||
revision bigint NOT NULL DEFAULT 1 CHECK (revision = 1),
|
||
payload jsonb NOT NULL CHECK (jsonb_typeof(payload) = 'object'),
|
||
payload_hash text NOT NULL CHECK (payload_hash ~ '^[0-9a-f]{64}$'),
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp()
|
||
);
|
||
CREATE FUNCTION public.muse_guard_literary_history() RETURNS trigger LANGUAGE plpgsql AS $$
|
||
BEGIN
|
||
RAISE EXCEPTION '文学片结果与报告只追加,不改写或删除历史';
|
||
END;
|
||
$$;
|
||
CREATE TRIGGER muse_literary_shard_guard BEFORE UPDATE OR DELETE ON public.muse_literary_shard
|
||
FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
CREATE TRIGGER muse_literary_report_guard BEFORE UPDATE OR DELETE ON public.muse_literary_report
|
||
FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history();
|