@hunter-harness/workflow-harness 0.2.49 → 0.2.51
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 +4 -4
- package/harness/bundles/general/claude-code/harness-archive/SKILL.md +11 -3
- package/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +45 -244
- package/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +41 -112
- package/harness/bundles/general/claude-code/harness-plan/SKILL.md +9 -4
- package/harness/bundles/general/claude-code/harness-plan/checklist.md +2 -2
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +8 -3
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +7 -2
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +12 -7
- package/harness/bundles/general/claude-code/harness-sync/reference.md +18 -11
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +7 -2
- package/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +769 -191
- package/harness/bundles/general/claude-code/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/general/claude-code/scripts/harness_gate.py +17 -0
- package/harness/bundles/general/claude-code/scripts/harness_profile.py +0 -1
- package/harness/bundles/general/claude-code/scripts/harness_state.py +3 -5
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/README.md +4 -4
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +11 -3
- package/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/general/codebuddy/harness-plan/SKILL.md +9 -4
- package/harness/bundles/general/codebuddy/harness-plan/checklist.md +2 -2
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +8 -3
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +7 -2
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +13 -8
- package/harness/bundles/general/codebuddy/harness-sync/reference.md +18 -11
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +7 -2
- package/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +769 -191
- package/harness/bundles/general/codebuddy/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/general/codebuddy/scripts/harness_gate.py +17 -0
- package/harness/bundles/general/codebuddy/scripts/harness_profile.py +0 -1
- package/harness/bundles/general/codebuddy/scripts/harness_state.py +3 -5
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/README.md +4 -4
- package/harness/bundles/general/codex/harness-archive/SKILL.md +11 -3
- package/harness/bundles/general/codex/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/general/codex/harness-plan/SKILL.md +9 -4
- package/harness/bundles/general/codex/harness-plan/checklist.md +2 -2
- package/harness/bundles/general/codex/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/codex/harness-run/SKILL.md +8 -3
- package/harness/bundles/general/codex/harness-submit/SKILL.md +7 -2
- package/harness/bundles/general/codex/harness-sync/SKILL.md +13 -8
- package/harness/bundles/general/codex/harness-sync/reference.md +18 -11
- package/harness/bundles/general/codex/harness-test/SKILL.md +7 -2
- package/harness/bundles/general/codex/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/general/codex/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/general/codex/scripts/harness_archive.py +769 -191
- package/harness/bundles/general/codex/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/general/codex/scripts/harness_gate.py +17 -0
- package/harness/bundles/general/codex/scripts/harness_profile.py +0 -1
- package/harness/bundles/general/codex/scripts/harness_state.py +3 -5
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/README.md +4 -4
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +11 -3
- package/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/general/cursor/harness-plan/SKILL.md +9 -4
- package/harness/bundles/general/cursor/harness-plan/checklist.md +2 -2
- package/harness/bundles/general/cursor/harness-review/SKILL.md +7 -2
- package/harness/bundles/general/cursor/harness-run/SKILL.md +8 -3
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +7 -2
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +13 -8
- package/harness/bundles/general/cursor/harness-sync/reference.md +18 -11
- package/harness/bundles/general/cursor/harness-test/SKILL.md +7 -2
- package/harness/bundles/general/cursor/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/general/cursor/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/general/cursor/scripts/harness_archive.py +769 -191
- package/harness/bundles/general/cursor/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/general/cursor/scripts/harness_gate.py +17 -0
- package/harness/bundles/general/cursor/scripts/harness_profile.py +0 -1
- package/harness/bundles/general/cursor/scripts/harness_state.py +3 -5
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/README.md +4 -4
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +11 -3
- package/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +45 -244
- package/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +41 -112
- package/harness/bundles/java/claude-code/harness-package/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +9 -4
- package/harness/bundles/java/claude-code/harness-plan/checklist.md +2 -2
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +8 -3
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +12 -7
- package/harness/bundles/java/claude-code/harness-sync/reference.md +18 -11
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +7 -2
- package/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +769 -191
- package/harness/bundles/java/claude-code/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/java/claude-code/scripts/harness_gate.py +17 -0
- package/harness/bundles/java/claude-code/scripts/harness_profile.py +0 -1
- package/harness/bundles/java/claude-code/scripts/harness_state.py +3 -5
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/README.md +4 -4
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +11 -3
- package/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/java/codebuddy/harness-package/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +9 -4
- package/harness/bundles/java/codebuddy/harness-plan/checklist.md +2 -2
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +8 -3
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +13 -8
- package/harness/bundles/java/codebuddy/harness-sync/reference.md +18 -11
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +7 -2
- package/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +769 -191
- package/harness/bundles/java/codebuddy/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/java/codebuddy/scripts/harness_gate.py +17 -0
- package/harness/bundles/java/codebuddy/scripts/harness_profile.py +0 -1
- package/harness/bundles/java/codebuddy/scripts/harness_state.py +3 -5
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/README.md +4 -4
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-archive/SKILL.md +11 -3
- package/harness/bundles/java/codex/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/java/codex/harness-package/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-plan/SKILL.md +9 -4
- package/harness/bundles/java/codex/harness-plan/checklist.md +2 -2
- package/harness/bundles/java/codex/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-run/SKILL.md +8 -3
- package/harness/bundles/java/codex/harness-submit/SKILL.md +7 -2
- package/harness/bundles/java/codex/harness-sync/SKILL.md +13 -8
- package/harness/bundles/java/codex/harness-sync/reference.md +18 -11
- package/harness/bundles/java/codex/harness-test/SKILL.md +7 -2
- package/harness/bundles/java/codex/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/java/codex/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/java/codex/scripts/harness_archive.py +769 -191
- package/harness/bundles/java/codex/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/java/codex/scripts/harness_gate.py +17 -0
- package/harness/bundles/java/codex/scripts/harness_profile.py +0 -1
- package/harness/bundles/java/codex/scripts/harness_state.py +3 -5
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/README.md +4 -4
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +11 -3
- package/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +6 -1
- package/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +42 -230
- package/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +38 -98
- package/harness/bundles/java/cursor/harness-package/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +9 -4
- package/harness/bundles/java/cursor/harness-plan/checklist.md +2 -2
- package/harness/bundles/java/cursor/harness-review/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-run/SKILL.md +8 -3
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +7 -2
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +13 -8
- package/harness/bundles/java/cursor/harness-sync/reference.md +18 -11
- package/harness/bundles/java/cursor/harness-test/SKILL.md +7 -2
- package/harness/bundles/java/cursor/protocols/archive-report-protocol.md +5 -7
- package/harness/bundles/java/cursor/protocols/state-layout-protocol.md +17 -11
- package/harness/bundles/java/cursor/scripts/harness_archive.py +769 -191
- package/harness/bundles/java/cursor/scripts/harness_events_sync.py +90 -12
- package/harness/bundles/java/cursor/scripts/harness_gate.py +17 -0
- package/harness/bundles/java/cursor/scripts/harness_profile.py +0 -1
- package/harness/bundles/java/cursor/scripts/harness_state.py +3 -5
- package/harness/manifests/general/claude-code.json +23 -47
- package/harness/manifests/general/codebuddy.json +23 -47
- package/harness/manifests/general/codex.json +23 -47
- package/harness/manifests/general/cursor.json +23 -47
- package/harness/manifests/java/claude-code.json +25 -49
- package/harness/manifests/java/codebuddy.json +25 -49
- package/harness/manifests/java/codex.json +25 -49
- package/harness/manifests/java/cursor.json +25 -49
- package/hunter-workflow-family.json +4 -4
- package/package.json +1 -1
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/general/codex/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/general/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/general/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/general/cursor/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/general/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/general/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/java/codex/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/java/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/java/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
- package/harness/bundles/java/cursor/harness-knowledge-ingest/design.md +0 -842
- package/harness/bundles/java/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
- package/harness/bundles/java/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
- package/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +0 -413
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -7263
- package/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -275
|
@@ -119,12 +119,19 @@ def post_json(endpoint: dict[str, str], path: str, body: dict[str, Any]) -> dict
|
|
|
119
119
|
return json.loads(response.read().decode("utf-8"))
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
def sync_change(
|
|
122
|
+
def sync_change(
|
|
123
|
+
project: Path,
|
|
124
|
+
change_dir: Path,
|
|
125
|
+
*,
|
|
126
|
+
heartbeat_only: bool = False,
|
|
127
|
+
run_id: str | None = None,
|
|
128
|
+
change_key: str | None = None,
|
|
129
|
+
) -> dict[str, Any]:
|
|
123
130
|
endpoint = load_endpoint(project)
|
|
124
131
|
if endpoint is None:
|
|
125
132
|
return {"ok": True, "skipped": True, "reason": "remote credentials not configured"}
|
|
126
|
-
|
|
127
|
-
rid = run_id_for(change_dir)
|
|
133
|
+
resolved_key = change_key or change_dir.name
|
|
134
|
+
rid = run_id or run_id_for(change_dir)
|
|
128
135
|
project_id = endpoint["project_id"]
|
|
129
136
|
|
|
130
137
|
# Always heartbeat so the console can separate connection vs run status.
|
|
@@ -138,20 +145,26 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
138
145
|
{
|
|
139
146
|
"protocol_version": "hunter-progress-sync/v1",
|
|
140
147
|
"run_id": rid,
|
|
141
|
-
"change_key":
|
|
148
|
+
"change_key": resolved_key,
|
|
142
149
|
"client_time": client_time,
|
|
143
|
-
"title":
|
|
150
|
+
"title": resolved_key,
|
|
144
151
|
},
|
|
145
152
|
)
|
|
146
153
|
except (urllib.error.URLError, TimeoutError, OSError, json.JSONDecodeError) as exc:
|
|
147
154
|
return {"ok": False, "error": f"heartbeat failed: {exc}", "run_id": rid}
|
|
148
155
|
|
|
149
156
|
if heartbeat_only:
|
|
150
|
-
return {"ok": True, "heartbeat": True, "run_id": rid}
|
|
157
|
+
return {"ok": True, "heartbeat": True, "run_id": rid, "change_key": resolved_key}
|
|
151
158
|
|
|
152
159
|
events_file = change_dir / "events.ndjson"
|
|
153
160
|
if not events_file.is_file():
|
|
154
|
-
return {
|
|
161
|
+
return {
|
|
162
|
+
"ok": True,
|
|
163
|
+
"run_id": rid,
|
|
164
|
+
"change_key": resolved_key,
|
|
165
|
+
"uploaded": 0,
|
|
166
|
+
"reason": "no events.ndjson",
|
|
167
|
+
}
|
|
155
168
|
|
|
156
169
|
lines = events_file.read_text(encoding="utf-8").splitlines()
|
|
157
170
|
acked = load_cursor(change_dir)
|
|
@@ -167,7 +180,7 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
167
180
|
continue
|
|
168
181
|
if not isinstance(event, dict):
|
|
169
182
|
continue
|
|
170
|
-
event_id = str(event.get("id") or f"{
|
|
183
|
+
event_id = str(event.get("id") or f"{resolved_key}:{acked + offset}")
|
|
171
184
|
payload = sanitize(event)
|
|
172
185
|
batch.append(
|
|
173
186
|
{
|
|
@@ -181,7 +194,13 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
181
194
|
)
|
|
182
195
|
if not batch:
|
|
183
196
|
save_cursor(change_dir, len(lines))
|
|
184
|
-
return {
|
|
197
|
+
return {
|
|
198
|
+
"ok": True,
|
|
199
|
+
"run_id": rid,
|
|
200
|
+
"change_key": resolved_key,
|
|
201
|
+
"uploaded": 0,
|
|
202
|
+
"acked_lines": len(lines),
|
|
203
|
+
}
|
|
185
204
|
|
|
186
205
|
# Drop None phase keys for strict schema.
|
|
187
206
|
for item in batch:
|
|
@@ -195,8 +214,8 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
195
214
|
{
|
|
196
215
|
"protocol_version": "hunter-progress-sync/v1",
|
|
197
216
|
"run_id": rid,
|
|
198
|
-
"change_key":
|
|
199
|
-
"title":
|
|
217
|
+
"change_key": resolved_key,
|
|
218
|
+
"title": resolved_key,
|
|
200
219
|
"events": batch,
|
|
201
220
|
},
|
|
202
221
|
)
|
|
@@ -222,6 +241,7 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
222
241
|
return {
|
|
223
242
|
"ok": accepted == len(batch),
|
|
224
243
|
"run_id": rid,
|
|
244
|
+
"change_key": resolved_key,
|
|
225
245
|
"uploaded": accepted,
|
|
226
246
|
"batch_size": len(batch),
|
|
227
247
|
"acked_lines": acked_lines,
|
|
@@ -229,10 +249,62 @@ def sync_change(project: Path, change_dir: Path, *, heartbeat_only: bool = False
|
|
|
229
249
|
}
|
|
230
250
|
|
|
231
251
|
|
|
252
|
+
def auto_events_sync(
|
|
253
|
+
project_root: Path,
|
|
254
|
+
change_dir: Path,
|
|
255
|
+
*,
|
|
256
|
+
heartbeat_only: bool = False,
|
|
257
|
+
run_id: str | None = None,
|
|
258
|
+
change_key: str | None = None,
|
|
259
|
+
) -> dict[str, Any]:
|
|
260
|
+
"""Best-effort platform events sync (same style as auto_push_archive_core).
|
|
261
|
+
|
|
262
|
+
Failures become warnings so the caller never rolls back the main workflow.
|
|
263
|
+
"""
|
|
264
|
+
project_root = project_root.resolve()
|
|
265
|
+
change_dir = change_dir.resolve()
|
|
266
|
+
if load_endpoint(project_root) is None:
|
|
267
|
+
return {"skipped": True, "reason": "no remote credentials"}
|
|
268
|
+
try:
|
|
269
|
+
result = sync_change(
|
|
270
|
+
project_root,
|
|
271
|
+
change_dir,
|
|
272
|
+
heartbeat_only=heartbeat_only,
|
|
273
|
+
run_id=run_id,
|
|
274
|
+
change_key=change_key,
|
|
275
|
+
)
|
|
276
|
+
except Exception as exc: # noqa: BLE001 — best-effort never blocks caller
|
|
277
|
+
return {
|
|
278
|
+
"skipped": False,
|
|
279
|
+
"ok": False,
|
|
280
|
+
"warning": f"events-sync deferred: {exc}",
|
|
281
|
+
}
|
|
282
|
+
if result.get("skipped"):
|
|
283
|
+
return {"skipped": True, "reason": result.get("reason") or "skipped"}
|
|
284
|
+
if result.get("ok"):
|
|
285
|
+
return {"skipped": False, "ok": True, **{
|
|
286
|
+
key: result[key]
|
|
287
|
+
for key in ("run_id", "change_key", "uploaded", "acked_lines", "heartbeat")
|
|
288
|
+
if key in result
|
|
289
|
+
}}
|
|
290
|
+
return {
|
|
291
|
+
"skipped": False,
|
|
292
|
+
"ok": False,
|
|
293
|
+
"warning": str(result.get("error") or "events-sync failed"),
|
|
294
|
+
**{
|
|
295
|
+
key: result[key]
|
|
296
|
+
for key in ("run_id", "change_key")
|
|
297
|
+
if key in result
|
|
298
|
+
},
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
|
|
232
302
|
def main(argv: list[str] | None = None) -> int:
|
|
233
303
|
parser = argparse.ArgumentParser(description="Sync events.ndjson to platform Run monitoring")
|
|
234
304
|
parser.add_argument("--project", default=".", help="Project root")
|
|
235
305
|
parser.add_argument("--change-dir", help="Specific change directory")
|
|
306
|
+
parser.add_argument("--run-id", help="Override stable run_id (archive finalize continuity)")
|
|
307
|
+
parser.add_argument("--change-key", help="Override change_key sent to the platform")
|
|
236
308
|
parser.add_argument("--heartbeat-only", action="store_true")
|
|
237
309
|
parser.add_argument("--json", action="store_true")
|
|
238
310
|
args = parser.parse_args(argv)
|
|
@@ -243,7 +315,13 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
243
315
|
root = project / ".harness" / "changes"
|
|
244
316
|
changes = sorted(path for path in root.glob("*") if path.is_dir()) if root.is_dir() else []
|
|
245
317
|
results = [
|
|
246
|
-
sync_change(
|
|
318
|
+
sync_change(
|
|
319
|
+
project,
|
|
320
|
+
change_dir,
|
|
321
|
+
heartbeat_only=args.heartbeat_only,
|
|
322
|
+
run_id=args.run_id,
|
|
323
|
+
change_key=args.change_key,
|
|
324
|
+
)
|
|
247
325
|
for change_dir in changes
|
|
248
326
|
]
|
|
249
327
|
ok = all(item.get("ok") for item in results) if results else True
|
|
@@ -31,6 +31,7 @@ if str(SCRIPTS_DIR) not in sys.path:
|
|
|
31
31
|
|
|
32
32
|
import harness_change as hc # noqa: E402
|
|
33
33
|
import harness_events as he # noqa: E402
|
|
34
|
+
import harness_events_sync as hes # noqa: E402
|
|
34
35
|
import harness_ledger as hl # noqa: E402
|
|
35
36
|
import harness_paths as hp # noqa: E402
|
|
36
37
|
import harness_plan_finalize as hpf # noqa: E402
|
|
@@ -2213,6 +2214,22 @@ def cmd_begin(args: argparse.Namespace) -> int:
|
|
|
2213
2214
|
"gateSeverityMode": severity_mode,
|
|
2214
2215
|
"gateWarnings": gate_warnings,
|
|
2215
2216
|
}
|
|
2217
|
+
# C3: best-effort start platform run monitoring (register + running via heartbeat/events).
|
|
2218
|
+
try:
|
|
2219
|
+
monitor = hes.auto_events_sync(project, change_dir)
|
|
2220
|
+
payload["platformMonitor"] = monitor
|
|
2221
|
+
if monitor.get("warning"):
|
|
2222
|
+
warnings_msg = str(monitor["warning"])
|
|
2223
|
+
gate_warnings.append({
|
|
2224
|
+
"code": "PLATFORM_EVENTS_SYNC_WARN",
|
|
2225
|
+
"message": warnings_msg,
|
|
2226
|
+
})
|
|
2227
|
+
payload["gateWarnings"] = gate_warnings
|
|
2228
|
+
except Exception as exc: # noqa: BLE001 — never block phase begin
|
|
2229
|
+
payload["platformMonitor"] = {
|
|
2230
|
+
"ok": False,
|
|
2231
|
+
"warning": f"events-sync hook failed: {exc}",
|
|
2232
|
+
}
|
|
2216
2233
|
emit(payload, as_json=as_json)
|
|
2217
2234
|
return 0
|
|
2218
2235
|
|
|
@@ -852,7 +852,6 @@ def _node_commands(project: Path) -> dict[str, Any]:
|
|
|
852
852
|
inputs.extend(
|
|
853
853
|
[
|
|
854
854
|
"harness/scripts/*.py",
|
|
855
|
-
"harness/harness-knowledge-ingest/scripts/*.py",
|
|
856
855
|
"harness/harness-test/scripts/*.mjs",
|
|
857
856
|
"harness/harness-test/scripts/tests/*.mjs",
|
|
858
857
|
"scripts/*.mjs",
|
|
@@ -218,11 +218,9 @@ def discover_segment_files(
|
|
|
218
218
|
project / "harness.json",
|
|
219
219
|
]
|
|
220
220
|
codebase_map = list((project / ".harness/codebase/map").glob("**/*"))
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
project / ".harness/knowledge/config.json",
|
|
225
|
-
]
|
|
221
|
+
# Knowledge is remote-only. Keep the segment for schema compatibility, but
|
|
222
|
+
# do not discover or fingerprint local indexes/fallback state.
|
|
223
|
+
knowledge: list[Path] = []
|
|
226
224
|
change_inputs: list[Path] = []
|
|
227
225
|
for folder in ("spec", "plans", "meta"):
|
|
228
226
|
change_inputs.extend((change_dir / folder).glob("**/*"))
|
|
@@ -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.39",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.53",
|
|
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": "f53fc1874dd7d02adbcea358256c9ef1c8dd9d17a1abb88c487cf492bfb229be"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "agents/harness-evaluator.md",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"path": "harness-archive/SKILL.md",
|
|
98
|
-
"sha256": "
|
|
98
|
+
"sha256": "080013e619368952f329b76e6aed44b7473aabf7dbe33a2838ad8373abd3a1e4"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-codebase-map/SKILL.md",
|
|
118
|
-
"sha256": "
|
|
118
|
+
"sha256": "965ba75b28b7bd19994b0abad4ee831e396716211e10ee0255eb45623e97227c"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,41 +153,17 @@
|
|
|
153
153
|
"path": "harness-codebase-map/templates/TESTING.md",
|
|
154
154
|
"sha256": "3e19408d0d711a8a9432a17b6f85e025d20e19c31fa385bacb622012e300c015"
|
|
155
155
|
},
|
|
156
|
-
{
|
|
157
|
-
"path": "harness-knowledge-ingest/design.md",
|
|
158
|
-
"sha256": "9d641634a8870eae0f637e2f380722176b48176d414c9493fa2872c791fda46a"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"path": "harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml",
|
|
162
|
-
"sha256": "943f93bf0d0b41f8a6b7e398b0e41367e54133a683a337637f081713b36d8ed3"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"path": "harness-knowledge-ingest/mcp-config.example.json",
|
|
166
|
-
"sha256": "538f815812f7e6e327ec295511bd15f41212be53df142e2fe1bc18c1f47c4124"
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"path": "harness-knowledge-ingest/reference.md",
|
|
170
|
-
"sha256": "aaff0f08ff72f17ad610d6db51e9482b4eaeda87962765f679b2893dff9762e7"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
174
|
-
"sha256": "a421ca43e8d1ef1718d51a398e20abae411ea0007b3d45aa333791c511a2aa33"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
178
|
-
"sha256": "e12d01a9695ccc6624a4a7690f831622d18866fc0a6c383c640dc7345394d047"
|
|
179
|
-
},
|
|
180
156
|
{
|
|
181
157
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
182
|
-
"sha256": "
|
|
158
|
+
"sha256": "3e31c801b653630af8a35358b37f40ff5e6f4f7363665b432259ffb697d8dae6"
|
|
183
159
|
},
|
|
184
160
|
{
|
|
185
161
|
"path": "harness-knowledge-query/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
162
|
+
"sha256": "9c6a80f0c2212f9a4d5fa70bda25e5a1e77b06396b5cd37bc0456399c39f006f"
|
|
187
163
|
},
|
|
188
164
|
{
|
|
189
165
|
"path": "harness-plan/checklist.md",
|
|
190
|
-
"sha256": "
|
|
166
|
+
"sha256": "501e5e73c973e845134a94bd00834274f702d7c45be4e4f1b0fc63d8f9bd0945"
|
|
191
167
|
},
|
|
192
168
|
{
|
|
193
169
|
"path": "harness-plan/protocols.md",
|
|
@@ -199,7 +175,7 @@
|
|
|
199
175
|
},
|
|
200
176
|
{
|
|
201
177
|
"path": "harness-plan/SKILL.md",
|
|
202
|
-
"sha256": "
|
|
178
|
+
"sha256": "3ce0040e074f5378fa33bcab1be66c9590bafb19ff28856475d06fa338606874"
|
|
203
179
|
},
|
|
204
180
|
{
|
|
205
181
|
"path": "harness-review/checklist.md",
|
|
@@ -215,7 +191,7 @@
|
|
|
215
191
|
},
|
|
216
192
|
{
|
|
217
193
|
"path": "harness-review/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
194
|
+
"sha256": "223bb89ea0494d6731293878b38648f6f63ab6e9676b5667b19b5075e35719e2"
|
|
219
195
|
},
|
|
220
196
|
{
|
|
221
197
|
"path": "harness-run/checklist.md",
|
|
@@ -231,7 +207,7 @@
|
|
|
231
207
|
},
|
|
232
208
|
{
|
|
233
209
|
"path": "harness-run/SKILL.md",
|
|
234
|
-
"sha256": "
|
|
210
|
+
"sha256": "102cbd1e0310ffe786c6ad102c2b753ca60d57f48c676f98fc2f4425c22919f2"
|
|
235
211
|
},
|
|
236
212
|
{
|
|
237
213
|
"path": "harness-submit/checklist.md",
|
|
@@ -243,15 +219,15 @@
|
|
|
243
219
|
},
|
|
244
220
|
{
|
|
245
221
|
"path": "harness-submit/SKILL.md",
|
|
246
|
-
"sha256": "
|
|
222
|
+
"sha256": "1f1a33492bba74851a44ca937801a632b92a64351abb89356292d44cca13c901"
|
|
247
223
|
},
|
|
248
224
|
{
|
|
249
225
|
"path": "harness-sync/reference.md",
|
|
250
|
-
"sha256": "
|
|
226
|
+
"sha256": "7f2aea7240db514c42530cffc00d78910ade30aaf54787042e017885a1ad9a41"
|
|
251
227
|
},
|
|
252
228
|
{
|
|
253
229
|
"path": "harness-sync/SKILL.md",
|
|
254
|
-
"sha256": "
|
|
230
|
+
"sha256": "867c7ab7061aa7c89e349139c81fb1cb2b799205107b3c9436809b351c15a1da"
|
|
255
231
|
},
|
|
256
232
|
{
|
|
257
233
|
"path": "harness-test/checklist.md",
|
|
@@ -275,11 +251,11 @@
|
|
|
275
251
|
},
|
|
276
252
|
{
|
|
277
253
|
"path": "harness-test/SKILL.md",
|
|
278
|
-
"sha256": "
|
|
254
|
+
"sha256": "11be06d58e0ea5829f08341036bc7cc5bd1065b44f97aee0d819afa3ce0c529d"
|
|
279
255
|
},
|
|
280
256
|
{
|
|
281
257
|
"path": "protocols/archive-report-protocol.md",
|
|
282
|
-
"sha256": "
|
|
258
|
+
"sha256": "50bdb1769a57b6e8f29e769a3ae9090c9eddf63a1e22c34bf3671e456cace2d9"
|
|
283
259
|
},
|
|
284
260
|
{
|
|
285
261
|
"path": "protocols/ci-layering-protocol.md",
|
|
@@ -327,7 +303,7 @@
|
|
|
327
303
|
},
|
|
328
304
|
{
|
|
329
305
|
"path": "protocols/state-layout-protocol.md",
|
|
330
|
-
"sha256": "
|
|
306
|
+
"sha256": "6cfbaf850cc2455ff89909a27bcfd9f7caa3f210cf552fa0b93b44367b43f860"
|
|
331
307
|
},
|
|
332
308
|
{
|
|
333
309
|
"path": "protocols/submit-protocol.md",
|
|
@@ -339,7 +315,7 @@
|
|
|
339
315
|
},
|
|
340
316
|
{
|
|
341
317
|
"path": "README.md",
|
|
342
|
-
"sha256": "
|
|
318
|
+
"sha256": "9b97846381d413dc7d50f5d7841f4cabf6ea3e2c4b0163c43586317b481cec4c"
|
|
343
319
|
},
|
|
344
320
|
{
|
|
345
321
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -347,7 +323,7 @@
|
|
|
347
323
|
},
|
|
348
324
|
{
|
|
349
325
|
"path": "scripts/harness_archive.py",
|
|
350
|
-
"sha256": "
|
|
326
|
+
"sha256": "e40181eec861bb1795bad27e8b5d1278a883ffadf8672e2f3888e25e34910869"
|
|
351
327
|
},
|
|
352
328
|
{
|
|
353
329
|
"path": "scripts/harness_change.py",
|
|
@@ -375,7 +351,7 @@
|
|
|
375
351
|
},
|
|
376
352
|
{
|
|
377
353
|
"path": "scripts/harness_events_sync.py",
|
|
378
|
-
"sha256": "
|
|
354
|
+
"sha256": "1dfd9b595e9b533ccbcba6521c05a9c59c9f6343acea371e2b68fd2eab9a6d97"
|
|
379
355
|
},
|
|
380
356
|
{
|
|
381
357
|
"path": "scripts/harness_events.py",
|
|
@@ -391,7 +367,7 @@
|
|
|
391
367
|
},
|
|
392
368
|
{
|
|
393
369
|
"path": "scripts/harness_gate.py",
|
|
394
|
-
"sha256": "
|
|
370
|
+
"sha256": "4ef8d33f1e3d3d44af6d7c32684665bab2e9b1cbd75b946cc926130624ff5a8f"
|
|
395
371
|
},
|
|
396
372
|
{
|
|
397
373
|
"path": "scripts/harness_headless.py",
|
|
@@ -439,7 +415,7 @@
|
|
|
439
415
|
},
|
|
440
416
|
{
|
|
441
417
|
"path": "scripts/harness_profile.py",
|
|
442
|
-
"sha256": "
|
|
418
|
+
"sha256": "16b1aac01efc469a57a468fbcb20d72b4cd22a447ae76d0104a013bd3bd4aa0e"
|
|
443
419
|
},
|
|
444
420
|
{
|
|
445
421
|
"path": "scripts/harness_report_model.py",
|
|
@@ -463,7 +439,7 @@
|
|
|
463
439
|
},
|
|
464
440
|
{
|
|
465
441
|
"path": "scripts/harness_state.py",
|
|
466
|
-
"sha256": "
|
|
442
|
+
"sha256": "2a74c29c8c230d0780f23d079cb294597729141e9b988679a0dcc16caf209400"
|
|
467
443
|
},
|
|
468
444
|
{
|
|
469
445
|
"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.39",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.53",
|
|
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": "088e321c0734314df74f03d085259c10a644b2cfea9296d74a52ac814c58d6a3"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "agents/harness-evaluator.md",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"path": "harness-archive/SKILL.md",
|
|
98
|
-
"sha256": "
|
|
98
|
+
"sha256": "a6e89f60ac18ae3e51bb23fb1ac2c35966b7dc8cb8dc1236992e72a41e203dbb"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
"path": "harness-archive/templates/render-summary.mjs",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
"path": "harness-codebase-map/SKILL.md",
|
|
118
|
-
"sha256": "
|
|
118
|
+
"sha256": "9eebed61df63b65f89cfebced1303ffa4028d7178e68d447d1aa36a4723dc4fe"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,41 +153,17 @@
|
|
|
153
153
|
"path": "harness-codebase-map/templates/TESTING.md",
|
|
154
154
|
"sha256": "3e19408d0d711a8a9432a17b6f85e025d20e19c31fa385bacb622012e300c015"
|
|
155
155
|
},
|
|
156
|
-
{
|
|
157
|
-
"path": "harness-knowledge-ingest/design.md",
|
|
158
|
-
"sha256": "9d641634a8870eae0f637e2f380722176b48176d414c9493fa2872c791fda46a"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"path": "harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml",
|
|
162
|
-
"sha256": "943f93bf0d0b41f8a6b7e398b0e41367e54133a683a337637f081713b36d8ed3"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"path": "harness-knowledge-ingest/mcp-config.example.json",
|
|
166
|
-
"sha256": "538f815812f7e6e327ec295511bd15f41212be53df142e2fe1bc18c1f47c4124"
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"path": "harness-knowledge-ingest/reference.md",
|
|
170
|
-
"sha256": "aaff0f08ff72f17ad610d6db51e9482b4eaeda87962765f679b2893dff9762e7"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"path": "harness-knowledge-ingest/scripts/harness_knowledge_mcp.py",
|
|
174
|
-
"sha256": "a421ca43e8d1ef1718d51a398e20abae411ea0007b3d45aa333791c511a2aa33"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"path": "harness-knowledge-ingest/scripts/harness_knowledge.py",
|
|
178
|
-
"sha256": "e12d01a9695ccc6624a4a7690f831622d18866fc0a6c383c640dc7345394d047"
|
|
179
|
-
},
|
|
180
156
|
{
|
|
181
157
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
182
|
-
"sha256": "
|
|
158
|
+
"sha256": "797d61862cf9ac0b4fdb259bbf01b991c1a17b937483936bbbfb09bc71cf69fa"
|
|
183
159
|
},
|
|
184
160
|
{
|
|
185
161
|
"path": "harness-knowledge-query/SKILL.md",
|
|
186
|
-
"sha256": "
|
|
162
|
+
"sha256": "4df482024002f30fe34799f2c9b0762ac28c77322891ed1aa9e2a06a5091865b"
|
|
187
163
|
},
|
|
188
164
|
{
|
|
189
165
|
"path": "harness-plan/checklist.md",
|
|
190
|
-
"sha256": "
|
|
166
|
+
"sha256": "501e5e73c973e845134a94bd00834274f702d7c45be4e4f1b0fc63d8f9bd0945"
|
|
191
167
|
},
|
|
192
168
|
{
|
|
193
169
|
"path": "harness-plan/protocols.md",
|
|
@@ -199,7 +175,7 @@
|
|
|
199
175
|
},
|
|
200
176
|
{
|
|
201
177
|
"path": "harness-plan/SKILL.md",
|
|
202
|
-
"sha256": "
|
|
178
|
+
"sha256": "aac1509ea13deb3b30a7be2691f68e2b34e14b7af0e17c9f970fd54f4ec8521e"
|
|
203
179
|
},
|
|
204
180
|
{
|
|
205
181
|
"path": "harness-review/checklist.md",
|
|
@@ -215,7 +191,7 @@
|
|
|
215
191
|
},
|
|
216
192
|
{
|
|
217
193
|
"path": "harness-review/SKILL.md",
|
|
218
|
-
"sha256": "
|
|
194
|
+
"sha256": "ce7f1ecf8f8eb52831a72091e5fe0e215e73ef9511de9ce4f1921b7731827382"
|
|
219
195
|
},
|
|
220
196
|
{
|
|
221
197
|
"path": "harness-run/checklist.md",
|
|
@@ -231,7 +207,7 @@
|
|
|
231
207
|
},
|
|
232
208
|
{
|
|
233
209
|
"path": "harness-run/SKILL.md",
|
|
234
|
-
"sha256": "
|
|
210
|
+
"sha256": "0f3819e5026bd0b4a17f013d55a2832ea8c84ef56cabda1ea329c53a1a95a60d"
|
|
235
211
|
},
|
|
236
212
|
{
|
|
237
213
|
"path": "harness-submit/checklist.md",
|
|
@@ -243,15 +219,15 @@
|
|
|
243
219
|
},
|
|
244
220
|
{
|
|
245
221
|
"path": "harness-submit/SKILL.md",
|
|
246
|
-
"sha256": "
|
|
222
|
+
"sha256": "4e15984f55107f031af0e9ccf576756ed48f7df4479ef7bfef8bab1c7ab1f3fb"
|
|
247
223
|
},
|
|
248
224
|
{
|
|
249
225
|
"path": "harness-sync/reference.md",
|
|
250
|
-
"sha256": "
|
|
226
|
+
"sha256": "7f2aea7240db514c42530cffc00d78910ade30aaf54787042e017885a1ad9a41"
|
|
251
227
|
},
|
|
252
228
|
{
|
|
253
229
|
"path": "harness-sync/SKILL.md",
|
|
254
|
-
"sha256": "
|
|
230
|
+
"sha256": "042f20f95a288ce9574ad70efd41f8a62a43b9afcb19812a71669b6f610e7c24"
|
|
255
231
|
},
|
|
256
232
|
{
|
|
257
233
|
"path": "harness-test/checklist.md",
|
|
@@ -275,11 +251,11 @@
|
|
|
275
251
|
},
|
|
276
252
|
{
|
|
277
253
|
"path": "harness-test/SKILL.md",
|
|
278
|
-
"sha256": "
|
|
254
|
+
"sha256": "538d81040e40bb2f9a4e8ed2544651e2e17038e33993a885cbdd4334e765a0ef"
|
|
279
255
|
},
|
|
280
256
|
{
|
|
281
257
|
"path": "protocols/archive-report-protocol.md",
|
|
282
|
-
"sha256": "
|
|
258
|
+
"sha256": "50bdb1769a57b6e8f29e769a3ae9090c9eddf63a1e22c34bf3671e456cace2d9"
|
|
283
259
|
},
|
|
284
260
|
{
|
|
285
261
|
"path": "protocols/ci-layering-protocol.md",
|
|
@@ -327,7 +303,7 @@
|
|
|
327
303
|
},
|
|
328
304
|
{
|
|
329
305
|
"path": "protocols/state-layout-protocol.md",
|
|
330
|
-
"sha256": "
|
|
306
|
+
"sha256": "6cfbaf850cc2455ff89909a27bcfd9f7caa3f210cf552fa0b93b44367b43f860"
|
|
331
307
|
},
|
|
332
308
|
{
|
|
333
309
|
"path": "protocols/submit-protocol.md",
|
|
@@ -339,7 +315,7 @@
|
|
|
339
315
|
},
|
|
340
316
|
{
|
|
341
317
|
"path": "README.md",
|
|
342
|
-
"sha256": "
|
|
318
|
+
"sha256": "9b97846381d413dc7d50f5d7841f4cabf6ea3e2c4b0163c43586317b481cec4c"
|
|
343
319
|
},
|
|
344
320
|
{
|
|
345
321
|
"path": "scripts/harness_apidoc.py",
|
|
@@ -347,7 +323,7 @@
|
|
|
347
323
|
},
|
|
348
324
|
{
|
|
349
325
|
"path": "scripts/harness_archive.py",
|
|
350
|
-
"sha256": "
|
|
326
|
+
"sha256": "e40181eec861bb1795bad27e8b5d1278a883ffadf8672e2f3888e25e34910869"
|
|
351
327
|
},
|
|
352
328
|
{
|
|
353
329
|
"path": "scripts/harness_change.py",
|
|
@@ -375,7 +351,7 @@
|
|
|
375
351
|
},
|
|
376
352
|
{
|
|
377
353
|
"path": "scripts/harness_events_sync.py",
|
|
378
|
-
"sha256": "
|
|
354
|
+
"sha256": "1dfd9b595e9b533ccbcba6521c05a9c59c9f6343acea371e2b68fd2eab9a6d97"
|
|
379
355
|
},
|
|
380
356
|
{
|
|
381
357
|
"path": "scripts/harness_events.py",
|
|
@@ -391,7 +367,7 @@
|
|
|
391
367
|
},
|
|
392
368
|
{
|
|
393
369
|
"path": "scripts/harness_gate.py",
|
|
394
|
-
"sha256": "
|
|
370
|
+
"sha256": "4ef8d33f1e3d3d44af6d7c32684665bab2e9b1cbd75b946cc926130624ff5a8f"
|
|
395
371
|
},
|
|
396
372
|
{
|
|
397
373
|
"path": "scripts/harness_headless.py",
|
|
@@ -439,7 +415,7 @@
|
|
|
439
415
|
},
|
|
440
416
|
{
|
|
441
417
|
"path": "scripts/harness_profile.py",
|
|
442
|
-
"sha256": "
|
|
418
|
+
"sha256": "16b1aac01efc469a57a468fbcb20d72b4cd22a447ae76d0104a013bd3bd4aa0e"
|
|
443
419
|
},
|
|
444
420
|
{
|
|
445
421
|
"path": "scripts/harness_report_model.py",
|
|
@@ -463,7 +439,7 @@
|
|
|
463
439
|
},
|
|
464
440
|
{
|
|
465
441
|
"path": "scripts/harness_state.py",
|
|
466
|
-
"sha256": "
|
|
442
|
+
"sha256": "2a74c29c8c230d0780f23d079cb294597729141e9b988679a0dcc16caf209400"
|
|
467
443
|
},
|
|
468
444
|
{
|
|
469
445
|
"path": "scripts/harness_sync.py",
|