@hallucination-studio/harness-engine 1.0.0-beta.17.412ec6e → 1.0.0-beta.18.ab4b55a
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hallucination-studio/harness-engine",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.18.ab4b55a",
|
|
4
4
|
"description": "Install the harness-engine Codex skill for initializing and reconciling advanced repository harness docs.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -1516,6 +1516,12 @@ def test_plan_close_moves_sidecar_and_rejects_stale_score(tmp_root):
|
|
|
1516
1516
|
completed_check = run_manager("check", "--repo", str(repo))
|
|
1517
1517
|
if completed_check["status"] != "pass":
|
|
1518
1518
|
raise AssertionError("completed structured plan should satisfy check")
|
|
1519
|
+
sidecar_before_check = completed_sidecar.read_text()
|
|
1520
|
+
second_completed_check = run_manager("check", "--repo", str(repo))
|
|
1521
|
+
if second_completed_check["status"] != "pass":
|
|
1522
|
+
raise AssertionError("repeated completed-plan check should still pass")
|
|
1523
|
+
if completed_sidecar.read_text() != sidecar_before_check:
|
|
1524
|
+
raise AssertionError("check should not rewrite unchanged completed plan sidecars or bump updated_at")
|
|
1519
1525
|
|
|
1520
1526
|
|
|
1521
1527
|
def test_evidence_prune_generated_artifacts(tmp_root):
|
|
@@ -172,19 +172,22 @@ def sync_plan_markdown_from_state(plan_path, state):
|
|
|
172
172
|
def sync_state_from_markdown(plan_path, state):
|
|
173
173
|
from .knowledge import extract_defect_items, extract_knowledge_items, parse_defect_item, parse_knowledge_item
|
|
174
174
|
text = plan_path.read_text()
|
|
175
|
-
|
|
175
|
+
defects = []
|
|
176
176
|
for item in extract_defect_items(text):
|
|
177
177
|
parsed = parse_defect_item(item)
|
|
178
178
|
if parsed:
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
defects.append(parsed)
|
|
180
|
+
knowledge_items = []
|
|
181
181
|
for item in extract_knowledge_items(text):
|
|
182
182
|
if item == DEFAULT_KNOWLEDGE_PLACEHOLDER:
|
|
183
183
|
continue
|
|
184
184
|
parsed = parse_knowledge_item(item)
|
|
185
185
|
if parsed:
|
|
186
|
-
|
|
187
|
-
|
|
186
|
+
knowledge_items.append(parsed)
|
|
187
|
+
if state.get("defects") != defects or state.get("knowledge_items") != knowledge_items:
|
|
188
|
+
state["defects"] = defects
|
|
189
|
+
state["knowledge_items"] = knowledge_items
|
|
190
|
+
save_plan_state(plan_path, state)
|
|
188
191
|
return state
|
|
189
192
|
|
|
190
193
|
|
|
@@ -625,4 +628,3 @@ def close_plan(repo, plan_relative_path, summary, force):
|
|
|
625
628
|
update_workstreams_after_plan_close(repo, active_relative_path, completed_relative_path)
|
|
626
629
|
return destination, open_items
|
|
627
630
|
|
|
628
|
-
|