-- B07保存具体提案、意向和外部owner原回执;不复制目标生效状态。 CREATE TABLE public.muse_improvement ( improvement_id uuid PRIMARY KEY, author_id text NOT NULL, current_revision integer NOT NULL CHECK(current_revision > 0) ); CREATE TABLE public.muse_improvement_version ( improvement_id uuid NOT NULL REFERENCES public.muse_improvement, revision integer NOT NULL CHECK(revision > 0), payload jsonb NOT NULL, content_hash text NOT NULL CHECK(content_hash ~ '^[0-9a-f]{64}$'), feedback_ids uuid[] NOT NULL CHECK(cardinality(feedback_ids) > 0), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), PRIMARY KEY(improvement_id,revision) ); CREATE TABLE public.muse_improvement_action ( action_id uuid PRIMARY KEY, author_id text NOT NULL, command_id text NOT NULL, improvement_id uuid NOT NULL, revision integer NOT NULL, kind text NOT NULL CHECK(kind IN ('validation','enable','disable')), payload jsonb NOT NULL, content_hash text NOT NULL CHECK(content_hash ~ '^[0-9a-f]{64}$'), created_at timestamptz NOT NULL DEFAULT clock_timestamp(), UNIQUE(author_id,command_id), FOREIGN KEY(improvement_id,revision) REFERENCES public.muse_improvement_version ); CREATE TABLE public.muse_improvement_result ( action_id uuid PRIMARY KEY REFERENCES public.muse_improvement_action, receipt jsonb NOT NULL, receipt_hash text NOT NULL CHECK(receipt_hash ~ '^[0-9a-f]{64}$'), created_at timestamptz NOT NULL DEFAULT clock_timestamp() ); CREATE TRIGGER muse_improvement_version_immutable BEFORE UPDATE OR DELETE ON public.muse_improvement_version FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history(); CREATE TRIGGER muse_improvement_action_immutable BEFORE UPDATE OR DELETE ON public.muse_improvement_action FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history(); CREATE TRIGGER muse_improvement_result_immutable BEFORE UPDATE OR DELETE ON public.muse_improvement_result FOR EACH ROW EXECUTE FUNCTION public.muse_guard_literary_history(); REVOKE ALL ON public.muse_improvement,public.muse_improvement_version, public.muse_improvement_action,public.muse_improvement_result FROM muse_eval; GRANT SELECT,INSERT,UPDATE ON public.muse_improvement TO muse_app; GRANT SELECT,INSERT ON public.muse_improvement_version,public.muse_improvement_action, public.muse_improvement_result TO muse_app;