feat patch KH3 main #24 / 31
aaronrene · 52 days ago · Jul 13, 2026 · Diff

feat(KH3): footprint self-integrity hard gate (Thinking + Auto, same session)

sha256:c3cdd349369c343e2fa79c4405bf937ee2d15aa0177785760712651bcc32c7e4 sha
+134 ~17 −2 symbols
sha256:8012514eb4263940b9042fe2643cec6e20ddc5dd6d4154f366d98071857135ce snapshot
+134
symbols added
~17
symbols modified
−2
symbols removed
0
dead code introduced
Semantic Changes 153 symbols
+ Phase KH3 — Footprint self-integrity hard gate (Thinking freeze) section Phase KH3 — Footprint self-integrity hard gate (Thinking freeze) L1–292
+ code[yaml] variable variable code[yaml] L7–41
+ table section table L51–55
+ 0 — Simple summary section §KH3.0 — Simple summary L58–92
+ 1 — Scope section §KH3.1 — Scope L92–128
+ 2 — What exists now (verified, do not redesign) section §KH3.2 — What exists now (verified, do not redesign) L128–148
+ table section table L130–140
+ 3 — Why "missing" only, never "content differs" (frozen scope boundary) section §KH3.3 — Why "missing" only, never "content differs" (frozen scope boundary) L148–166
+ table section table L154–158
+ 4 — FootprintIntegrityReport + check_footprint_integrity (frozen) section §KH3.4 — FootprintIntegrityReport + check_footprint_integrity (frozen) L166–228
+ code[python] variable variable code[python] L171–192
+ 5 — Wiring: three fail-closed choke points (frozen) section §KH3.5 — Wiring: three fail-closed choke points (frozen) L228–242
+ table section table L234–239
+ 6 — Boundary: what this gate does and does not catch (frozen, stated plainly) section §KH3.6 — Boundary: what this gate does and does not catch (frozen, stated plainly) L242–258
+ table section table L244–252
+ 7 — Config & regime interaction section §KH3.7 — Config & regime interaction L258–269
+ 8 — Seven-tier test matrix (KH3b Auto build must satisfy) section §KH3.8 — Seven-tier test matrix (KH3b Auto build must satisfy) L269–283
+ table section table L271–280
+ 9 — Close-out (execute only when KH3 marked DONE) section §KH3.9 — Close-out (execute only when KH3 marked DONE) L283–292
+ _lock function function _lock L11–17
+ FootprintEntry import import FootprintEntry L7–7
+ ORIGIN_KIT import import ORIGIN_KIT L7–7
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L7–7
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ build_version_lock_from_entries import import build_version_lock_from_entries L7–7
+ check_footprint_integrity import import check_footprint_integrity L8–8
+ test_identical_state_yields_identical_report function function test_identical_state_yields_identical_report L20–31
+ test_no_partial_state_on_repeated_calls function function test_no_partial_state_on_repeated_calls L34–47
+ test_origin_reclassification_changes_report_deterministically class function test_origin_reclassification_changes_report_deterministically L65–72
+ test_varying_disk_state_yields_varying_report_deterministically function function test_varying_disk_state_yields_varying_report_deterministically L50–62
+ _git_only_runner function function _git_only_runner L19–25
+ _init function function _init L28–36
+ FIXTURES import import FIXTURES L10–10
+ Path import import Path L7–7
+ annotations import import annotations L4–4
+ json import import json L6–6
+ kit_root import import kit_root L9–9
+ make_runner import import make_runner L10–10
+ ok import import ok L10–10
+ pass_provider_factory import import pass_provider_factory L10–10
+ run_cli import import run_cli L10–10
+ test_governance_sync_refuses_then_proceeds_across_a_simulated_sync function function test_governance_sync_refuses_then_proceeds_across_a_simulated_sync L75–96
+ test_review_freeze_refuses_then_proceeds_across_a_simulated_sync function function test_review_freeze_refuses_then_proceeds_across_a_simulated_sync L39–72
+ _init function function _init L11–19
+ FIXTURES import import FIXTURES L8–8
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L8–8
+ json import import json L5–5
+ run_cli import import run_cli L8–8
+ test_existing_opt_in_content_digest_check_unchanged function function test_existing_opt_in_content_digest_check_unchanged L62–75
+ test_status_exit_code_0_when_self_footprint_complete function function test_status_exit_code_0_when_self_footprint_complete L32–36
+ test_status_exit_code_2_when_self_footprint_file_missing function function test_status_exit_code_2_when_self_footprint_file_missing L22–29
+ test_status_json_payload_reports_missing_self_footprint function function test_status_json_payload_reports_missing_self_footprint L39–49
+ test_status_json_payload_reports_ok_when_complete function function test_status_json_payload_reports_ok_when_complete L52–59
+ FIXTURES import import FIXTURES L9–9
+ FootprintEntry import import FootprintEntry L8–8
+ ORIGIN_KIT import import ORIGIN_KIT L8–8
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ build_version_lock_from_entries import import build_version_lock_from_entries L8–8
+ check_footprint_integrity import import check_footprint_integrity L10–10
+ git_status_runner import import git_status_runner L9–9
+ patch import import patch L6–6
+ run_cli import import run_cli L9–9
+ test_passing_precomputed_lock_avoids_a_second_disk_read function function test_passing_precomputed_lock_avoids_a_second_disk_read L13–26
+ test_status_exit_code_adds_no_additional_shell_calls function function test_status_exit_code_adds_no_additional_shell_calls L29–51
+ _lock function function _lock L11–17
+ FootprintEntry import import FootprintEntry L7–7
+ ORIGIN_KIT import import ORIGIN_KIT L7–7
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ build_version_lock_from_entries import import build_version_lock_from_entries L7–7
+ check_footprint_integrity import import check_footprint_integrity L8–8
+ test_corrupt_lock_fails_closed_not_ok function function test_corrupt_lock_fails_closed_not_ok L20–26
+ test_missing_paths_reported_never_leak_file_contents function function test_missing_paths_reported_never_leak_file_contents L39–50
+ test_ok_report_never_lists_any_paths function function test_ok_report_never_lists_any_paths L67–72
+ test_remediation_text_is_static_never_shell_invoked function function test_remediation_text_is_static_never_shell_invoked L29–36
+ test_unusual_lock_entry_paths_never_crash_or_execute function function test_unusual_lock_entry_paths_never_crash_or_execute L53–64
+ ENTRY_COUNT variable variable ENTRY_COUNT L11–11
+ FootprintEntry import import FootprintEntry L8–8
+ ORIGIN_KIT import import ORIGIN_KIT L8–8
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_version_lock_from_entries import import build_version_lock_from_entries L8–8
+ check_footprint_integrity import import check_footprint_integrity L9–9
+ time import import time L5–5
+ test_large_declared_footprint_resolves_in_bounded_time function function test_large_declared_footprint_resolves_in_bounded_time L14–44
+ test_missing_count_scales_linearly_not_quadratically function function test_missing_count_scales_linearly_not_quadratically L47–67
+ _lock function function _lock L19–25
+ FootprintEntry import import FootprintEntry L10–10
+ FootprintIntegrityReport import import FootprintIntegrityReport L16–16
+ ORIGIN_KIT import import ORIGIN_KIT L10–10
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L10–10
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_version_lock_from_entries import import build_version_lock_from_entries L10–10
+ check_footprint_integrity import import check_footprint_integrity L16–16
+ dataclasses class import dataclasses L5–5
+ pytest import import pytest L8–8
+ test_all_declared_present_is_ok function function test_all_declared_present_is_ok L47–55
+ test_content_mismatch_is_never_missing function function test_content_mismatch_is_never_missing L97–105
+ test_corrupt_lock_is_unreadable function function test_corrupt_lock_is_unreadable L36–44
+ test_declared_but_absent_is_missing function function test_declared_but_absent_is_missing L58–68
+ test_empty_footprint_lock_is_ok function function test_empty_footprint_lock_is_ok L108–112
+ test_missing_entries_are_sorted function function test_missing_entries_are_sorted L71–79
+ test_mixed_missing_and_preserved_only_flags_kit_owned function function test_mixed_missing_and_preserved_only_flags_kit_owned L115–128
+ test_no_lock_file_is_not_applicable function function test_no_lock_file_is_not_applicable L28–33
+ test_preserved_origin_absent_is_never_missing function function test_preserved_origin_absent_is_never_missing L82–94
+ test_report_is_frozen_dataclass class function test_report_is_frozen_dataclass L131–135
+ __all__ variable variable __all__ L7–7
+ FootprintIntegrityReport import import FootprintIntegrityReport L5–5
+ annotations import import annotations L3–3
+ check_footprint_integrity import import check_footprint_integrity L5–5
~ tools/footprint_integrity/check.py .py 13 symbols added
+ FootprintIntegrityReport class class FootprintIntegrityReport L44–54
+ ok method method ok L53–54
+ REMEDIATION variable variable REMEDIATION L40–40
+ check_footprint_integrity function function check_footprint_integrity L57–121
+ LockError import import LockError L31–31
+ ORIGIN_PRESERVED import import ORIGIN_PRESERVED L31–31
+ Path import import Path L29–29
+ VersionLock import import VersionLock L31–31
+ annotations import import annotations L26–26
+ dataclass class import dataclass L28–28
+ entry_origin import import entry_origin L31–31
+ lock_path import import lock_path L31–31
+ read_version_lock import import read_version_lock L31–31
~ cli/commands/review.py .py 1 symbol added, 1 symbol modified
+ check_footprint_integrity import import check_footprint_integrity L19–19
~ cli/commands/status.py .py 2 symbols added, 2 symbols modified
+ _footprint_self_integrity_payload function function _footprint_self_integrity_payload L313–320
+ check_footprint_integrity import import check_footprint_integrity L20–20
~ docs/OVERSEER-HANDOVER.md .md 2 symbols added, 2 symbols removed, 9 symbols modified
~ tools/governance_hygiene/reads.py .py 1 symbol added, 1 symbol modified
+ check_footprint_integrity import import check_footprint_integrity L13–13

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:c3cdd349369c343e2fa79c4405bf937ee2d15aa0177785760712651bcc32c7e4 --body "your comment"