Crafter.Review/interfaces/Crafter.Review.cppm
Jorijn van der Graaf 61acd6a72e
feat(freeze): crafter-review freeze, and --verify that names a git upgrade
Freeze: identity, AI trailers by the consumer's rule (the pattern with
case-insensitive folds and its \s* that crosses lines), a clean tree, no
merges, a fast-forward, then format-patch, the hash, the dispositions
register and the optional detached worktree; --verify at push time. The
command line takes --opt=value, unique prefixes and the last of a repeat,
with a usage error at exit 3 like every command that cannot start; the
config is loaded and its warnings and problems reported first. The run
line it prints names this binary.

freeze.json records gitVersion. format-patch ends every patch with the
git version, so a fresh export under another git hashes differently;
--verify's MISMATCH says which git exported the artifact and which the
fresh copy, reading the patches' own signature when freeze.json does not
record it. freeze becomes a subreaper and takes down whatever gpg left
running for %G?.

tests/Freeze: 18 checks, plus the gitVersion record and both MISMATCH
messages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 07:03:48 +01:00

26 lines
623 B
C++

// SPDX-License-Identifier: AGPL-3.0-only
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
export module Crafter.Review;
export import :Unicode;
export import :Json;
export import :Text;
export import :Crypto;
export import :Platform;
export import :Process;
export import :Core;
export import :Schema;
export import :Tools;
export import :Plan;
export import :Artifact;
export import :Inventory;
export import :Dispositions;
export import :State;
export import :Normalize;
export import :PgWire;
export import :Stream;
export import :Prompt;
export import :Config;
export import :Freeze;
export import :Driver;