@hunter-harness/workflow-harness 0.2.60 → 0.2.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness/bundles/general/claude-code/.harness-build.json +1 -1
- package/harness/bundles/general/claude-code/README.md +7 -7
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +35 -35
- package/harness/bundles/general/claude-code/harness-archive/checklist.md +5 -2
- package/harness/bundles/general/claude-code/harness-archive/reference.md +23 -7
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +4 -4
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/general/claude-code/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +829 -68
- package/harness/bundles/general/claude-code/scripts/harness_context.py +8 -2
- package/harness/bundles/general/claude-code/scripts/harness_events.py +5 -0
- package/harness/bundles/general/claude-code/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/claude-code/scripts/harness_state.py +22 -3
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/README.md +7 -7
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +35 -35
- package/harness/bundles/general/codebuddy/harness-archive/checklist.md +5 -2
- package/harness/bundles/general/codebuddy/harness-archive/reference.md +23 -7
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +4 -4
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +829 -68
- package/harness/bundles/general/codebuddy/scripts/harness_context.py +8 -2
- package/harness/bundles/general/codebuddy/scripts/harness_events.py +5 -0
- package/harness/bundles/general/codebuddy/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/codebuddy/scripts/harness_state.py +22 -3
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/README.md +7 -7
- package/harness/bundles/general/codex/harness-archive/SKILL.md +35 -35
- package/harness/bundles/general/codex/harness-archive/checklist.md +5 -2
- package/harness/bundles/general/codex/harness-archive/reference.md +23 -7
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-plan/SKILL.md +4 -4
- package/harness/bundles/general/codex/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-run/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/codex/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/general/codex/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/general/codex/scripts/harness_archive.py +829 -68
- package/harness/bundles/general/codex/scripts/harness_context.py +8 -2
- package/harness/bundles/general/codex/scripts/harness_events.py +5 -0
- package/harness/bundles/general/codex/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/codex/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/codex/scripts/harness_state.py +22 -3
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/README.md +7 -7
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +35 -35
- package/harness/bundles/general/cursor/harness-archive/checklist.md +5 -2
- package/harness/bundles/general/cursor/harness-archive/reference.md +23 -7
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +4 -4
- package/harness/bundles/general/cursor/harness-review/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-run/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +2 -2
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +2 -2
- package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/general/cursor/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/general/cursor/scripts/harness_archive.py +829 -68
- package/harness/bundles/general/cursor/scripts/harness_context.py +8 -2
- package/harness/bundles/general/cursor/scripts/harness_events.py +5 -0
- package/harness/bundles/general/cursor/scripts/harness_ledger.py +79 -2
- package/harness/bundles/general/cursor/scripts/harness_profile.py +7 -0
- package/harness/bundles/general/cursor/scripts/harness_state.py +22 -3
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/README.md +7 -7
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +35 -35
- package/harness/bundles/java/claude-code/harness-archive/checklist.md +5 -2
- package/harness/bundles/java/claude-code/harness-archive/reference.md +23 -7
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/java/claude-code/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +829 -68
- package/harness/bundles/java/claude-code/scripts/harness_context.py +8 -2
- package/harness/bundles/java/claude-code/scripts/harness_events.py +5 -0
- package/harness/bundles/java/claude-code/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/claude-code/scripts/harness_state.py +22 -3
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/README.md +7 -7
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +35 -35
- package/harness/bundles/java/codebuddy/harness-archive/checklist.md +5 -2
- package/harness/bundles/java/codebuddy/harness-archive/reference.md +23 -7
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +829 -68
- package/harness/bundles/java/codebuddy/scripts/harness_context.py +8 -2
- package/harness/bundles/java/codebuddy/scripts/harness_events.py +5 -0
- package/harness/bundles/java/codebuddy/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/codebuddy/scripts/harness_state.py +22 -3
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/README.md +7 -7
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-archive/SKILL.md +35 -35
- package/harness/bundles/java/codex/harness-archive/checklist.md +5 -2
- package/harness/bundles/java/codex/harness-archive/reference.md +23 -7
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-package/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/codex/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-run/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/codex/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/java/codex/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/java/codex/scripts/harness_archive.py +829 -68
- package/harness/bundles/java/codex/scripts/harness_context.py +8 -2
- package/harness/bundles/java/codex/scripts/harness_events.py +5 -0
- package/harness/bundles/java/codex/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/codex/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/codex/scripts/harness_state.py +22 -3
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/README.md +7 -7
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +35 -35
- package/harness/bundles/java/cursor/harness-archive/checklist.md +5 -2
- package/harness/bundles/java/cursor/harness-archive/reference.md +23 -7
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-package/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +4 -4
- package/harness/bundles/java/cursor/harness-review/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-run/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +2 -2
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +2 -2
- package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +7 -3
- package/harness/bundles/java/cursor/protocols/ledger-protocol.md +1 -1
- package/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +6 -4
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +3 -2
- package/harness/bundles/java/cursor/scripts/harness_archive.py +829 -68
- package/harness/bundles/java/cursor/scripts/harness_context.py +8 -2
- package/harness/bundles/java/cursor/scripts/harness_events.py +5 -0
- package/harness/bundles/java/cursor/scripts/harness_ledger.py +79 -2
- package/harness/bundles/java/cursor/scripts/harness_profile.py +7 -0
- package/harness/bundles/java/cursor/scripts/harness_state.py +22 -3
- package/harness/manifests/general/claude-code.json +26 -26
- package/harness/manifests/general/codebuddy.json +26 -26
- package/harness/manifests/general/codex.json +26 -26
- package/harness/manifests/general/cursor.json +26 -26
- package/harness/manifests/java/claude-code.json +28 -28
- package/harness/manifests/java/codebuddy.json +28 -28
- package/harness/manifests/java/codex.json +28 -28
- package/harness/manifests/java/cursor.json +28 -28
- package/hunter-workflow-family.json +5 -5
- package/package.json +1 -1
|
@@ -810,10 +810,15 @@ def close_transition(
|
|
|
810
810
|
artifact_entries: list[dict[str, Any]] = []
|
|
811
811
|
for raw in artifacts or []:
|
|
812
812
|
requested = Path(raw)
|
|
813
|
+
artifact_bases: list[Path] = []
|
|
814
|
+
for base in (project, contract_root, state_root):
|
|
815
|
+
resolved_base = base.resolve()
|
|
816
|
+
if resolved_base not in artifact_bases:
|
|
817
|
+
artifact_bases.append(resolved_base)
|
|
813
818
|
candidates = (
|
|
814
819
|
[requested]
|
|
815
820
|
if requested.is_absolute()
|
|
816
|
-
else [
|
|
821
|
+
else [base / requested for base in artifact_bases]
|
|
817
822
|
)
|
|
818
823
|
valid: list[Path] = []
|
|
819
824
|
for candidate in candidates:
|
|
@@ -838,10 +843,11 @@ def close_transition(
|
|
|
838
843
|
"ok": False,
|
|
839
844
|
"code": "TRANSITION_ARTIFACT_INVALID",
|
|
840
845
|
"path": raw,
|
|
841
|
-
"acceptedBases": [str(
|
|
846
|
+
"acceptedBases": [str(base) for base in artifact_bases],
|
|
842
847
|
"examples": [
|
|
843
848
|
str(contract_root / "meta" / "plan-finalization.json"),
|
|
844
849
|
f".harness/changes/{change}/meta/plan-finalization.json",
|
|
850
|
+
f".harness/state/changes/{change}/evidence/verification-ledger.json",
|
|
845
851
|
"meta/plan-finalization.json",
|
|
846
852
|
],
|
|
847
853
|
}
|
|
@@ -1077,6 +1077,11 @@ def split_phase_attempts(phase_events: list[dict[str, Any]]) -> list[dict[str, A
|
|
|
1077
1077
|
"external.wait",
|
|
1078
1078
|
"issue",
|
|
1079
1079
|
"ci.wait",
|
|
1080
|
+
# Preparation is intentionally outside the formal phase lifecycle.
|
|
1081
|
+
# A blocked preflight must remain visible in the raw timeline without
|
|
1082
|
+
# manufacturing an attempt or inflating the phase duration/count.
|
|
1083
|
+
"phase.prepare.start",
|
|
1084
|
+
"phase.prepare.end",
|
|
1080
1085
|
}
|
|
1081
1086
|
for event in phase_events:
|
|
1082
1087
|
if event.get("type") == "phase.start":
|
|
@@ -1053,6 +1053,40 @@ def ledger_evidence_identity(ledger: dict[str, Any]) -> str:
|
|
|
1053
1053
|
return "sha256:" + hashlib.sha256(canonical).hexdigest()
|
|
1054
1054
|
|
|
1055
1055
|
|
|
1056
|
+
def _immutable_change_base(
|
|
1057
|
+
change_dir: Path,
|
|
1058
|
+
project_root: Path,
|
|
1059
|
+
) -> str:
|
|
1060
|
+
roots = [change_dir]
|
|
1061
|
+
try:
|
|
1062
|
+
state_root = harness_paths.resolve_state_dir_for_contract(
|
|
1063
|
+
change_dir,
|
|
1064
|
+
project_root,
|
|
1065
|
+
)
|
|
1066
|
+
if state_root.resolve() != change_dir.resolve():
|
|
1067
|
+
roots.insert(0, state_root)
|
|
1068
|
+
except (OSError, ValueError):
|
|
1069
|
+
pass
|
|
1070
|
+
for root in roots:
|
|
1071
|
+
for relative in (
|
|
1072
|
+
Path("meta") / "state-snapshot.json",
|
|
1073
|
+
Path("state-snapshot.json"),
|
|
1074
|
+
):
|
|
1075
|
+
path = root / relative
|
|
1076
|
+
if not path.is_file():
|
|
1077
|
+
continue
|
|
1078
|
+
try:
|
|
1079
|
+
payload = json.loads(path.read_text(encoding="utf-8-sig"))
|
|
1080
|
+
except (OSError, json.JSONDecodeError, TypeError):
|
|
1081
|
+
continue
|
|
1082
|
+
if not isinstance(payload, dict):
|
|
1083
|
+
continue
|
|
1084
|
+
value = str(payload.get("changeBase") or "").strip()
|
|
1085
|
+
if value:
|
|
1086
|
+
return value
|
|
1087
|
+
return ""
|
|
1088
|
+
|
|
1089
|
+
|
|
1056
1090
|
def migrate_ledger_for_write(
|
|
1057
1091
|
change_dir: Path,
|
|
1058
1092
|
ledger: dict[str, Any],
|
|
@@ -1089,6 +1123,15 @@ def migrate_ledger_for_write(
|
|
|
1089
1123
|
if not _nonempty_str(resolved_base):
|
|
1090
1124
|
resolved_base = ledger.get("baseCommit")
|
|
1091
1125
|
if not _nonempty_str(resolved_base):
|
|
1126
|
+
resolved_base = _immutable_change_base(change_dir, repo_root)
|
|
1127
|
+
if not _nonempty_str(resolved_base):
|
|
1128
|
+
if record_migration:
|
|
1129
|
+
raise LedgerMigrationError(
|
|
1130
|
+
"immutable change base is missing; recapture the Plan boundary "
|
|
1131
|
+
"or pass an explicit --base-commit instead of using write-time HEAD"
|
|
1132
|
+
)
|
|
1133
|
+
# A genuinely new ledger establishes its identity at the first write.
|
|
1134
|
+
# Existing ledgers are handled above and may never take this fallback.
|
|
1092
1135
|
resolved_base = current_head
|
|
1093
1136
|
resolved_diff = diff_hash
|
|
1094
1137
|
if not _nonempty_str(resolved_diff):
|
|
@@ -2795,9 +2838,43 @@ def cmd_diff_hash(args: argparse.Namespace) -> int:
|
|
|
2795
2838
|
repo_raw = getattr(args, "repo", None)
|
|
2796
2839
|
repo = Path(repo_raw).expanduser().resolve() if repo_raw else Path.cwd().resolve()
|
|
2797
2840
|
base = getattr(args, "base", None)
|
|
2798
|
-
|
|
2841
|
+
change_dir_raw = getattr(args, "change_dir", None)
|
|
2799
2842
|
try:
|
|
2800
|
-
|
|
2843
|
+
change_dir = resolve_path(change_dir_raw) if change_dir_raw else None
|
|
2844
|
+
if change_dir is not None and _contract_is_v2(change_dir):
|
|
2845
|
+
resolved_base = str(base or "").strip()
|
|
2846
|
+
if not resolved_base:
|
|
2847
|
+
existing, _ = load_ledger(change_dir)
|
|
2848
|
+
if isinstance(existing, dict):
|
|
2849
|
+
resolved_base = str(existing.get("baseCommit") or "").strip()
|
|
2850
|
+
if not resolved_base:
|
|
2851
|
+
resolved_base = _immutable_change_base(change_dir, repo)
|
|
2852
|
+
if not resolved_base:
|
|
2853
|
+
raise ValueError(
|
|
2854
|
+
"immutable change base is missing; capture the Plan boundary "
|
|
2855
|
+
"or pass --base"
|
|
2856
|
+
)
|
|
2857
|
+
detail = compute_ownership_diff(
|
|
2858
|
+
repo,
|
|
2859
|
+
base=resolved_base,
|
|
2860
|
+
change_dir=change_dir,
|
|
2861
|
+
)
|
|
2862
|
+
payload = {
|
|
2863
|
+
"ok": True,
|
|
2864
|
+
"action": "diff-hash",
|
|
2865
|
+
"identityScope": "change-ownership",
|
|
2866
|
+
"algorithmVersion": "ownership-content-changeset-1",
|
|
2867
|
+
"base": resolved_base,
|
|
2868
|
+
"head": _git_text(repo, "rev-parse", "--verify", "HEAD"),
|
|
2869
|
+
**detail,
|
|
2870
|
+
}
|
|
2871
|
+
emit_json(payload, as_json=as_json)
|
|
2872
|
+
return 0
|
|
2873
|
+
diff_hash, meta = compute_diff_hash(
|
|
2874
|
+
repo,
|
|
2875
|
+
base=base,
|
|
2876
|
+
change_dir=str(change_dir) if change_dir is not None else None,
|
|
2877
|
+
)
|
|
2801
2878
|
except (OSError, RuntimeError, ValueError) as exc:
|
|
2802
2879
|
return emit_error(str(exc), as_json=as_json)
|
|
2803
2880
|
payload = {"ok": True, "action": "diff-hash", "diffHash": diff_hash}
|
|
@@ -838,13 +838,20 @@ def _node_commands(project: Path) -> dict[str, Any]:
|
|
|
838
838
|
"src/**/*.tsx",
|
|
839
839
|
"test/**/*.ts",
|
|
840
840
|
"test/**/*.tsx",
|
|
841
|
+
"tests/**/*.ts",
|
|
842
|
+
"tests/**/*.tsx",
|
|
841
843
|
"packages/*/src/**/*.ts",
|
|
842
844
|
"packages/*/src/**/*.tsx",
|
|
843
845
|
"packages/*/test/**/*.ts",
|
|
844
846
|
"packages/*/test/**/*.tsx",
|
|
847
|
+
"packages/*/tests/**/*.ts",
|
|
848
|
+
"packages/*/tests/**/*.tsx",
|
|
845
849
|
"apps/*/src/**/*.ts",
|
|
846
850
|
"apps/*/src/**/*.tsx",
|
|
847
851
|
"apps/*/test/**/*.ts",
|
|
852
|
+
"apps/*/test/**/*.tsx",
|
|
853
|
+
"apps/*/tests/**/*.ts",
|
|
854
|
+
"apps/*/tests/**/*.tsx",
|
|
848
855
|
]
|
|
849
856
|
# harness dogfood: canonical Python + .mjs sources feed npm run check (vitest
|
|
850
857
|
# imports harness-test/scripts; smoke:pack runs sync-harness.mjs).
|
|
@@ -119,6 +119,10 @@ def capture_snapshot(
|
|
|
119
119
|
"schemaVersion": SNAPSHOT_SCHEMA_VERSION,
|
|
120
120
|
"generatedAt": now_iso(),
|
|
121
121
|
"changeName": change_name,
|
|
122
|
+
# The first captured Git boundary is the immutable identity of the
|
|
123
|
+
# change. Later phases may advance HEAD, but must never silently move
|
|
124
|
+
# the base and collapse the archive range.
|
|
125
|
+
"changeBase": base or "",
|
|
122
126
|
"project": {"root": str(project.resolve())},
|
|
123
127
|
"worktree": {"root": str(Path(worktree_root).resolve())},
|
|
124
128
|
"git": {"base": base or "", "head": head or ""},
|
|
@@ -250,10 +254,25 @@ def capture_current_state(
|
|
|
250
254
|
base: str = "",
|
|
251
255
|
head: str = "HEAD",
|
|
252
256
|
) -> tuple[dict[str, Any], list[str]]:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
files = discover_segment_files(project, change_dir, base=resolved_base, head=resolved_head)
|
|
257
|
+
git_head = _git(project, "rev-parse", head)
|
|
258
|
+
resolved_head = git_head or head
|
|
256
259
|
previous = load_snapshot(change_dir)
|
|
260
|
+
previous_git = previous.get("git") if isinstance(previous, dict) else None
|
|
261
|
+
previous_base = (
|
|
262
|
+
str(previous.get("changeBase") or "").strip()
|
|
263
|
+
if isinstance(previous, dict)
|
|
264
|
+
else ""
|
|
265
|
+
)
|
|
266
|
+
if not previous_base and isinstance(previous_git, dict):
|
|
267
|
+
previous_base = str(
|
|
268
|
+
previous_git.get("base") or previous_git.get("baseCommit") or ""
|
|
269
|
+
).strip()
|
|
270
|
+
requested_base = _git(project, "rev-parse", base) if base else ""
|
|
271
|
+
# First capture establishes the boundary. A later --base value is an
|
|
272
|
+
# observation hint only; changing the boundary requires the explicit
|
|
273
|
+
# archive range-adoption receipt.
|
|
274
|
+
resolved_base = previous_base or requested_base or git_head
|
|
275
|
+
files = discover_segment_files(project, change_dir, base=resolved_base, head=resolved_head)
|
|
257
276
|
fresh = capture_snapshot(
|
|
258
277
|
change_dir,
|
|
259
278
|
change_name=change_name,
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "claude-code",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.50",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.67",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
{
|
|
25
25
|
"path": ".harness-build.json",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "8b914d22f840a59a680468f1bdca127d7066fffc253321e55071e294c3bffa64"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "agents/harness-evaluator.md",
|
|
@@ -83,11 +83,11 @@
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"path": "harness-archive/checklist.md",
|
|
86
|
-
"sha256": "
|
|
86
|
+
"sha256": "4844dcfbe052fe0d95a8b41120502777b35ea538d9fcb63c86ca720368a7196d"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
"path": "harness-archive/reference.md",
|
|
90
|
-
"sha256": "
|
|
90
|
+
"sha256": "a9f4ff879018d3e9ff7ad267396ae786ca30cee1239bbf0479a92880bbbcd89b"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"path": "harness-archive/SKILL.md",
|
|
98
|
-
"sha256": "
|
|
98
|
+
"sha256": "cd0e297bc677caf07f74cf53b58280545c53c92d7373a01c7a52ffcb042a7969"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "harness-codebase-map/SKILL.md",
|
|
114
|
-
"sha256": "
|
|
114
|
+
"sha256": "df01a87236c743a80f654710bab97192c5c3c9fd3955ca3b8d6503442ab83309"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "c2bf251986d898bd01610f66f07ddd450f0a568207741119bf978d647b405ad3"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-knowledge-query/SKILL.md",
|
|
158
|
-
"sha256": "
|
|
158
|
+
"sha256": "61af7d3dd7a65de6667b0366cd8ecc77dd3bf778ab6959faa0f6f28653c3522b"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-plan/checklist.md",
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-plan/SKILL.md",
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "d5970b58fc9b46755a145834c9045f122ea3777bf1ac5f402794a2a73ec6452f"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-review/checklist.md",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-review/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "4137a8aa990c1aaaa12660689b7dfad51c102cb578c779b956c1fc98e062ecad"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-run/checklist.md",
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-run/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "2a0050feba8f4e9e2257471b52cc7f5ef340b67e328c1979c0b630455f2530b7"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-submit/checklist.md",
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "harness-submit/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
218
|
+
"sha256": "b762b04506481dc8c177b70ed74c99c43b9b5d0cb0e59700301a526217f2e783"
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-sync/reference.md",
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
"path": "harness-sync/SKILL.md",
|
|
226
|
-
"sha256": "
|
|
226
|
+
"sha256": "1c7a430e1a1d44da6b0e1efb590d0165169c3cac9dc5c6f8f8fb9ecdcce6fa5f"
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
"path": "harness-test/checklist.md",
|
|
@@ -247,11 +247,11 @@
|
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
249
|
"path": "harness-test/SKILL.md",
|
|
250
|
-
"sha256": "
|
|
250
|
+
"sha256": "24398adf6467864d5bb8534f91bfc6a51fa1320d97c5207ba91abd03c48b92d5"
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"path": "protocols/archive-report-protocol.md",
|
|
254
|
-
"sha256": "
|
|
254
|
+
"sha256": "23add8a690289b5007bb9a38db55009b41866731f0c37c287ce9467392700652"
|
|
255
255
|
},
|
|
256
256
|
{
|
|
257
257
|
"path": "protocols/ci-layering-protocol.md",
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
},
|
|
272
272
|
{
|
|
273
273
|
"path": "protocols/ledger-protocol.md",
|
|
274
|
-
"sha256": "
|
|
274
|
+
"sha256": "c52d7e7d0ee1b21e761edcef2d0e853af3c381dcde3a323d3959b77d56e9818e"
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
"path": "protocols/memory-closeout-protocol.md",
|
|
@@ -291,7 +291,7 @@
|
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
"path": "protocols/report-pipeline-protocol.md",
|
|
294
|
-
"sha256": "
|
|
294
|
+
"sha256": "a755c54942c58262e9e3478021e4c9c5ac8255db625d6714f3fd9810eb1067f9"
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "protocols/sensitive-info-protocol.md",
|
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "protocols/state-layout-protocol.md",
|
|
302
|
-
"sha256": "
|
|
302
|
+
"sha256": "01ff757004a18913d5d5a8083071d0a6fc9d25ac7cf7db07a879f7bb1319445d"
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"path": "protocols/submit-protocol.md",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"path": "README.md",
|
|
314
|
-
"sha256": "
|
|
314
|
+
"sha256": "0b236ce76b6cc58f431b8b6be441e42e3120359d24a8c8d63b060164a417a8a7"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_archive.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "3c6fc709e5a2876fd4bad4ec60402b7b3933af1ea6d15bb6d16f269c7d65bf2f"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_change.py",
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "scripts/harness_context.py",
|
|
334
|
-
"sha256": "
|
|
334
|
+
"sha256": "5ef587edd57b0c819df1c37a448eda33f00a5b97b930c804290d1a83d9a4ad60"
|
|
335
335
|
},
|
|
336
336
|
{
|
|
337
337
|
"path": "scripts/harness_deploy.py",
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"path": "scripts/harness_events.py",
|
|
354
|
-
"sha256": "
|
|
354
|
+
"sha256": "f073ff0445a1de6d4e3030eb9b989e2f419ccdc9c36efcf060727ac4405b0804"
|
|
355
355
|
},
|
|
356
356
|
{
|
|
357
357
|
"path": "scripts/harness_execution_contracts.py",
|
|
@@ -375,7 +375,7 @@
|
|
|
375
375
|
},
|
|
376
376
|
{
|
|
377
377
|
"path": "scripts/harness_ledger.py",
|
|
378
|
-
"sha256": "
|
|
378
|
+
"sha256": "5c33a09f3b073294afa21804697488dd5fa5601e79707be8b7db9f89be8e95f9"
|
|
379
379
|
},
|
|
380
380
|
{
|
|
381
381
|
"path": "scripts/harness_migration_head.py",
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
413
|
"path": "scripts/harness_profile.py",
|
|
414
|
-
"sha256": "
|
|
414
|
+
"sha256": "9a10e62c52a7c84bf373bfb4aff18b2d51bfae6fd0ca75ef5ad7c87d22059e85"
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
417
|
"path": "scripts/harness_report_model.py",
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
437
|
"path": "scripts/harness_state.py",
|
|
438
|
-
"sha256": "
|
|
438
|
+
"sha256": "cd08bcf0347a289180d121d079d0d2e638c6188f47b9f393cc70bac3564721c4"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
441
|
"path": "scripts/harness_sync.py",
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codebuddy",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.50",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.67",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
{
|
|
25
25
|
"path": ".harness-build.json",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "1a5c32ccfd7843ea4946b268a0dfabc84c9ffdcb1ad25f3840f6117f926c9e93"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "agents/harness-evaluator.md",
|
|
@@ -83,11 +83,11 @@
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"path": "harness-archive/checklist.md",
|
|
86
|
-
"sha256": "
|
|
86
|
+
"sha256": "4844dcfbe052fe0d95a8b41120502777b35ea538d9fcb63c86ca720368a7196d"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
"path": "harness-archive/reference.md",
|
|
90
|
-
"sha256": "
|
|
90
|
+
"sha256": "a9f4ff879018d3e9ff7ad267396ae786ca30cee1239bbf0479a92880bbbcd89b"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "harness-archive/scripts/gen-manifest.ps1",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"path": "harness-archive/SKILL.md",
|
|
98
|
-
"sha256": "
|
|
98
|
+
"sha256": "a5aa79c8bb081725d7ae3adac1870d4913e7c349da5ef14f8a06b2dd563fb392"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "harness-codebase-map/SKILL.md",
|
|
114
|
-
"sha256": "
|
|
114
|
+
"sha256": "ee941a5278c8b64ab39c546e395672ee5cf922c12ae53f022a60e271718d4fae"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -151,11 +151,11 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
154
|
-
"sha256": "
|
|
154
|
+
"sha256": "5bd687266e6c00ba3d5c76e825be317855cb29cb4bd0e75bec33ddbf570523f2"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
"path": "harness-knowledge-query/SKILL.md",
|
|
158
|
-
"sha256": "
|
|
158
|
+
"sha256": "baa65efbcfcd748edd133490a29d10b35498bb2a1608bc58baf213f3f97eeed1"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"path": "harness-plan/checklist.md",
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"path": "harness-plan/SKILL.md",
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "09877f19170202e178916b58b653073344cb80970af04ecc61d222e0ff3520d3"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "harness-review/checklist.md",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"path": "harness-review/SKILL.md",
|
|
190
|
-
"sha256": "
|
|
190
|
+
"sha256": "51697c7b59a40fa8de33eb509b37c2d4cfe909691f27e882e5935c0e25e4f56c"
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"path": "harness-run/checklist.md",
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"path": "harness-run/SKILL.md",
|
|
206
|
-
"sha256": "
|
|
206
|
+
"sha256": "65213f59fc32480a8b62233bf42ef9529a6a9fbb26ede4002070161fc146a05a"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"path": "harness-submit/checklist.md",
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "harness-submit/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
218
|
+
"sha256": "9a25e2fd88e0a28fe1be5ed0299ea30f20f528f30950f422889de2d5284c67e0"
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
221
|
"path": "harness-sync/reference.md",
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
"path": "harness-sync/SKILL.md",
|
|
226
|
-
"sha256": "
|
|
226
|
+
"sha256": "0ba6a2fc13121e2920d0bff90c0a432d047049c8f520a77ceba36ebffbd4e904"
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
"path": "harness-test/checklist.md",
|
|
@@ -247,11 +247,11 @@
|
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
249
|
"path": "harness-test/SKILL.md",
|
|
250
|
-
"sha256": "
|
|
250
|
+
"sha256": "e10d4f140ce1a6d21605e90ea1e01815a5e96b619dfaffed3ff984da4533274c"
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"path": "protocols/archive-report-protocol.md",
|
|
254
|
-
"sha256": "
|
|
254
|
+
"sha256": "23add8a690289b5007bb9a38db55009b41866731f0c37c287ce9467392700652"
|
|
255
255
|
},
|
|
256
256
|
{
|
|
257
257
|
"path": "protocols/ci-layering-protocol.md",
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
},
|
|
272
272
|
{
|
|
273
273
|
"path": "protocols/ledger-protocol.md",
|
|
274
|
-
"sha256": "
|
|
274
|
+
"sha256": "c52d7e7d0ee1b21e761edcef2d0e853af3c381dcde3a323d3959b77d56e9818e"
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
277
|
"path": "protocols/memory-closeout-protocol.md",
|
|
@@ -291,7 +291,7 @@
|
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
"path": "protocols/report-pipeline-protocol.md",
|
|
294
|
-
"sha256": "
|
|
294
|
+
"sha256": "a755c54942c58262e9e3478021e4c9c5ac8255db625d6714f3fd9810eb1067f9"
|
|
295
295
|
},
|
|
296
296
|
{
|
|
297
297
|
"path": "protocols/sensitive-info-protocol.md",
|
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"path": "protocols/state-layout-protocol.md",
|
|
302
|
-
"sha256": "
|
|
302
|
+
"sha256": "01ff757004a18913d5d5a8083071d0a6fc9d25ac7cf7db07a879f7bb1319445d"
|
|
303
303
|
},
|
|
304
304
|
{
|
|
305
305
|
"path": "protocols/submit-protocol.md",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"path": "README.md",
|
|
314
|
-
"sha256": "
|
|
314
|
+
"sha256": "0b236ce76b6cc58f431b8b6be441e42e3120359d24a8c8d63b060164a417a8a7"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"path": "scripts/harness_archive.py",
|
|
322
|
-
"sha256": "
|
|
322
|
+
"sha256": "3c6fc709e5a2876fd4bad4ec60402b7b3933af1ea6d15bb6d16f269c7d65bf2f"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"path": "scripts/harness_change.py",
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"path": "scripts/harness_context.py",
|
|
334
|
-
"sha256": "
|
|
334
|
+
"sha256": "5ef587edd57b0c819df1c37a448eda33f00a5b97b930c804290d1a83d9a4ad60"
|
|
335
335
|
},
|
|
336
336
|
{
|
|
337
337
|
"path": "scripts/harness_deploy.py",
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"path": "scripts/harness_events.py",
|
|
354
|
-
"sha256": "
|
|
354
|
+
"sha256": "f073ff0445a1de6d4e3030eb9b989e2f419ccdc9c36efcf060727ac4405b0804"
|
|
355
355
|
},
|
|
356
356
|
{
|
|
357
357
|
"path": "scripts/harness_execution_contracts.py",
|
|
@@ -375,7 +375,7 @@
|
|
|
375
375
|
},
|
|
376
376
|
{
|
|
377
377
|
"path": "scripts/harness_ledger.py",
|
|
378
|
-
"sha256": "
|
|
378
|
+
"sha256": "5c33a09f3b073294afa21804697488dd5fa5601e79707be8b7db9f89be8e95f9"
|
|
379
379
|
},
|
|
380
380
|
{
|
|
381
381
|
"path": "scripts/harness_migration_head.py",
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
413
|
"path": "scripts/harness_profile.py",
|
|
414
|
-
"sha256": "
|
|
414
|
+
"sha256": "9a10e62c52a7c84bf373bfb4aff18b2d51bfae6fd0ca75ef5ad7c87d22059e85"
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
417
|
"path": "scripts/harness_report_model.py",
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
},
|
|
436
436
|
{
|
|
437
437
|
"path": "scripts/harness_state.py",
|
|
438
|
-
"sha256": "
|
|
438
|
+
"sha256": "cd08bcf0347a289180d121d079d0d2e638c6188f47b9f393cc70bac3564721c4"
|
|
439
439
|
},
|
|
440
440
|
{
|
|
441
441
|
"path": "scripts/harness_sync.py",
|