@hunter-harness/workflow-harness 0.2.79 → 0.2.80
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/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/general/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-push/SKILL.md +15 -1
- package/harness/bundles/general/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/claude-code/scripts/harness_archive.py +158 -44
- package/harness/bundles/general/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/general/codebuddy/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/general/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-push/SKILL.md +15 -1
- package/harness/bundles/general/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codebuddy/scripts/harness_archive.py +158 -44
- package/harness/bundles/general/codex/.harness-build.json +1 -1
- package/harness/bundles/general/codex/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/general/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-push/SKILL.md +15 -1
- package/harness/bundles/general/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/codex/scripts/harness_archive.py +158 -44
- package/harness/bundles/general/cursor/.harness-build.json +1 -1
- package/harness/bundles/general/cursor/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/general/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-push/SKILL.md +15 -1
- package/harness/bundles/general/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/general/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/general/cursor/scripts/harness_archive.py +158 -44
- package/harness/bundles/java/claude-code/.harness-build.json +1 -1
- package/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/java/claude-code/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-push/SKILL.md +15 -1
- package/harness/bundles/java/claude-code/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/claude-code/scripts/harness_archive.py +158 -44
- package/harness/bundles/java/codebuddy/.harness-build.json +1 -1
- package/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/java/codebuddy/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-push/SKILL.md +15 -1
- package/harness/bundles/java/codebuddy/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codebuddy/scripts/harness_archive.py +158 -44
- package/harness/bundles/java/codex/.harness-build.json +1 -1
- package/harness/bundles/java/codex/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/java/codex/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-push/SKILL.md +15 -1
- package/harness/bundles/java/codex/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/codex/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/codex/scripts/harness_archive.py +158 -44
- package/harness/bundles/java/cursor/.harness-build.json +1 -1
- package/harness/bundles/java/cursor/harness-apidoc/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-archive/SKILL.md +12 -1
- 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 +1 -1
- package/harness/bundles/java/cursor/harness-plan/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-pull/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-push/SKILL.md +15 -1
- package/harness/bundles/java/cursor/harness-review/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-run/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-submit/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-sync/SKILL.md +1 -1
- package/harness/bundles/java/cursor/harness-test/SKILL.md +1 -1
- package/harness/bundles/java/cursor/scripts/harness_archive.py +158 -44
- package/harness/manifests/general/claude-code.json +16 -16
- package/harness/manifests/general/codebuddy.json +16 -16
- package/harness/manifests/general/codex.json +16 -16
- package/harness/manifests/general/cursor.json +16 -16
- package/harness/manifests/java/claude-code.json +18 -18
- package/harness/manifests/java/codebuddy.json +18 -18
- package/harness/manifests/java/codex.json +18 -18
- package/harness/manifests/java/cursor.json +18 -18
- package/hunter-workflow-family.json +5 -5
- package/package.json +1 -1
|
@@ -10232,6 +10232,42 @@ def cmd_repair_cli(args: argparse.Namespace) -> int:
|
|
|
10232
10232
|
return code
|
|
10233
10233
|
|
|
10234
10234
|
|
|
10235
|
+
def resolve_republish_project_root(explicit: Path | None, archive_dir: Path | None) -> Path:
|
|
10236
|
+
"""Locate the project root for a republish without requiring --project.
|
|
10237
|
+
|
|
10238
|
+
``find_project_root`` walks ``p.parents``, which excludes ``p`` itself; it is
|
|
10239
|
+
built for a change/archive subdirectory. Handing it the cwd therefore skips
|
|
10240
|
+
the very directory the operator is standing in and keeps climbing — in a real
|
|
10241
|
+
run that resolved ``E:/WorkProject/kb-sdd`` to its parent and made the command
|
|
10242
|
+
look for archives that were never there.
|
|
10243
|
+
|
|
10244
|
+
Order: explicit flag, then the archive's own location, then cwd and its
|
|
10245
|
+
parents (cwd included), then the deployed script's location — the script
|
|
10246
|
+
lives at ``<project>/.claude|.codebuddy/skills/scripts/`` after install.
|
|
10247
|
+
"""
|
|
10248
|
+
if explicit is not None:
|
|
10249
|
+
return explicit.resolve()
|
|
10250
|
+
if archive_dir is not None:
|
|
10251
|
+
return find_project_root(archive_dir)
|
|
10252
|
+
|
|
10253
|
+
def first_with_archive(start: Path) -> Path | None:
|
|
10254
|
+
start = start.resolve()
|
|
10255
|
+
for candidate in (start, *start.parents):
|
|
10256
|
+
if (candidate / ".harness" / "archive").is_dir():
|
|
10257
|
+
return candidate
|
|
10258
|
+
return None
|
|
10259
|
+
|
|
10260
|
+
found = first_with_archive(Path.cwd())
|
|
10261
|
+
if found is not None:
|
|
10262
|
+
return found
|
|
10263
|
+
found = first_with_archive(Path(__file__).resolve().parent)
|
|
10264
|
+
if found is not None:
|
|
10265
|
+
return found
|
|
10266
|
+
# Nothing carries an archive directory; report against cwd so the error names
|
|
10267
|
+
# a path the operator recognises instead of some ancestor.
|
|
10268
|
+
return Path.cwd().resolve()
|
|
10269
|
+
|
|
10270
|
+
|
|
10235
10271
|
def resolve_archive_dir_for_change(
|
|
10236
10272
|
project_root: Path,
|
|
10237
10273
|
change_key: str,
|
|
@@ -10272,7 +10308,10 @@ def _republish_knowledge_entry(archive_dir: Path) -> dict[str, tuple[str, str, b
|
|
|
10272
10308
|
change_key=str(summary.get("changeName") or archive_dir.name),
|
|
10273
10309
|
archive_id=archive_dir.name,
|
|
10274
10310
|
producer_version=SCHEMA_VERSION,
|
|
10275
|
-
|
|
10311
|
+
# Derived from the archive, never wall-clock: `now_iso()` here made every
|
|
10312
|
+
# rebuild produce different bytes, so a package could never be compared
|
|
10313
|
+
# against a stored one and the "deterministic package" claim was false.
|
|
10314
|
+
created_at=_archive_created_at(summary_path),
|
|
10276
10315
|
)
|
|
10277
10316
|
if not candidates:
|
|
10278
10317
|
return {}
|
|
@@ -10285,12 +10324,28 @@ def _republish_knowledge_entry(archive_dir: Path) -> dict[str, tuple[str, str, b
|
|
|
10285
10324
|
}
|
|
10286
10325
|
|
|
10287
10326
|
|
|
10327
|
+
def read_durable_archive_receipt(project_root: Path, change_key: str) -> dict[str, Any] | None:
|
|
10328
|
+
"""The `<key>.remote.json` written after a confirmed durable upload, if any."""
|
|
10329
|
+
receipt_path = (
|
|
10330
|
+
project_root / ".harness" / "state" / "local" / "archive-packages"
|
|
10331
|
+
/ f"{change_key}.remote.json"
|
|
10332
|
+
)
|
|
10333
|
+
if not receipt_path.is_file():
|
|
10334
|
+
return None
|
|
10335
|
+
try:
|
|
10336
|
+
receipt = read_json(receipt_path)
|
|
10337
|
+
except (OSError, json.JSONDecodeError, TypeError, ValueError):
|
|
10338
|
+
return None
|
|
10339
|
+
return receipt if isinstance(receipt, dict) else None
|
|
10340
|
+
|
|
10341
|
+
|
|
10288
10342
|
def cmd_republish(
|
|
10289
10343
|
*,
|
|
10290
10344
|
change_key: str,
|
|
10291
10345
|
archive_dir: Path | None,
|
|
10292
10346
|
project_root: Path | None,
|
|
10293
10347
|
dry_run: bool,
|
|
10348
|
+
inject_knowledge: bool = True,
|
|
10294
10349
|
) -> tuple[int, dict[str, Any]]:
|
|
10295
10350
|
"""Rebuild and re-upload the core ZIP for an already sealed archive.
|
|
10296
10351
|
|
|
@@ -10311,7 +10366,7 @@ def cmd_republish(
|
|
|
10311
10366
|
payload["reasonCode"] = "ARCHIVE_CHANGE_KEY_INVALID"
|
|
10312
10367
|
return 2, payload
|
|
10313
10368
|
|
|
10314
|
-
root = (project_root
|
|
10369
|
+
root = resolve_republish_project_root(project_root, archive_dir)
|
|
10315
10370
|
payload["projectRoot"] = str(root)
|
|
10316
10371
|
matches: list[str] = []
|
|
10317
10372
|
if archive_dir is None:
|
|
@@ -10338,53 +10393,103 @@ def cmd_republish(
|
|
|
10338
10393
|
payload["reasonCode"] = "ARCHIVE_SUMMARY_MISSING"
|
|
10339
10394
|
return 1, payload
|
|
10340
10395
|
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10396
|
+
extra_entries: dict[str, tuple[str, str, bytes]] = {}
|
|
10397
|
+
if inject_knowledge:
|
|
10398
|
+
try:
|
|
10399
|
+
extra_entries = _republish_knowledge_entry(archive_dir)
|
|
10400
|
+
except (OSError, ValueError, json.JSONDecodeError) as exc:
|
|
10401
|
+
# Knowledge is additive: never fail a re-delivery over it.
|
|
10402
|
+
payload.setdefault("warnings", []).append(
|
|
10403
|
+
f"knowledge candidate regeneration skipped: {exc}"
|
|
10404
|
+
)
|
|
10405
|
+
extra_entries = {}
|
|
10349
10406
|
payload["knowledgeCandidatesInjected"] = "candidates/knowledge.json" in extra_entries
|
|
10350
10407
|
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10408
|
+
# Build once, into a preview path, so the bytes can be compared against any
|
|
10409
|
+
# durable receipt before an upload is attempted. The builder refuses to write
|
|
10410
|
+
# outside the project, so the preview lands beside the real packages under a
|
|
10411
|
+
# distinct name; it must never be mistaken for a pending upload.
|
|
10412
|
+
preview_path = (
|
|
10413
|
+
root / ".harness" / "state" / "local" / "archive-packages"
|
|
10414
|
+
/ f"{change_key}.preview.zip"
|
|
10415
|
+
)
|
|
10416
|
+
try:
|
|
10417
|
+
package = build_archive_package(
|
|
10418
|
+
root,
|
|
10419
|
+
archive_dir,
|
|
10420
|
+
change_key,
|
|
10421
|
+
output_path=preview_path,
|
|
10422
|
+
extra_entries=extra_entries,
|
|
10358
10423
|
)
|
|
10424
|
+
except (OSError, ValueError, UnicodeDecodeError, json.JSONDecodeError) as exc:
|
|
10425
|
+
payload["error"] = f"archive package build failed: {exc}"
|
|
10426
|
+
payload["reasonCode"] = "ARCHIVE_PACKAGE_BUILD_FAILED"
|
|
10427
|
+
return 1, payload
|
|
10428
|
+
finally:
|
|
10359
10429
|
try:
|
|
10360
|
-
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
|
|
10367
|
-
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
|
|
10377
|
-
|
|
10430
|
+
preview_path.unlink(missing_ok=True)
|
|
10431
|
+
except OSError:
|
|
10432
|
+
pass
|
|
10433
|
+
|
|
10434
|
+
payload.update(
|
|
10435
|
+
{
|
|
10436
|
+
"fileCount": package["fileCount"],
|
|
10437
|
+
"sizeBytes": package["sizeBytes"],
|
|
10438
|
+
"knowledgeCandidateCount": package["knowledgeCandidateCount"],
|
|
10439
|
+
"packageSha256": package["packageSha256"],
|
|
10440
|
+
"manifestSha256": package["manifestSha256"],
|
|
10441
|
+
"files": package["paths"],
|
|
10442
|
+
}
|
|
10443
|
+
)
|
|
10444
|
+
|
|
10445
|
+
# The platform stores exactly one immutable package per change key. A rebuild
|
|
10446
|
+
# that differs by even one byte is refused server-side, so decide here rather
|
|
10447
|
+
# than spending an upload to learn it.
|
|
10448
|
+
durable = read_durable_archive_receipt(root, change_key)
|
|
10449
|
+
stored_sha = str((durable or {}).get("packageSha256") or "")
|
|
10450
|
+
if durable is not None and str(durable.get("archiveStatus") or "") == "durable":
|
|
10451
|
+
payload["remoteReceipt"] = {
|
|
10452
|
+
"archiveId": durable.get("archiveId"),
|
|
10453
|
+
"archiveStatus": durable.get("archiveStatus"),
|
|
10454
|
+
"knowledgeStatus": durable.get("knowledgeStatus"),
|
|
10455
|
+
"packageSha256": stored_sha,
|
|
10456
|
+
"recordedAt": durable.get("recordedAt"),
|
|
10457
|
+
}
|
|
10458
|
+
if stored_sha and stored_sha == package["packageSha256"]:
|
|
10459
|
+
payload.update({
|
|
10378
10460
|
"ok": True,
|
|
10379
|
-
"reasonCode": "
|
|
10380
|
-
"
|
|
10381
|
-
|
|
10382
|
-
|
|
10383
|
-
|
|
10384
|
-
|
|
10385
|
-
|
|
10386
|
-
|
|
10387
|
-
|
|
10461
|
+
"reasonCode": "ARCHIVE_ALREADY_PUBLISHED",
|
|
10462
|
+
"message": (
|
|
10463
|
+
"远端已存有字节一致的同一个包,无需重传"
|
|
10464
|
+
f"(archiveId={durable.get('archiveId')})。"
|
|
10465
|
+
),
|
|
10466
|
+
})
|
|
10467
|
+
return 0, payload
|
|
10468
|
+
payload.update({
|
|
10469
|
+
"ok": False,
|
|
10470
|
+
"reasonCode": "ARCHIVE_REMOTE_IMMUTABLE_CONFLICT",
|
|
10471
|
+
"error": (
|
|
10472
|
+
"该 change 在远端已是 durable 归档,服务端对同一 change key 只保存一个"
|
|
10473
|
+
"不可变包,不接受不同字节的替换。"
|
|
10474
|
+
),
|
|
10475
|
+
"nextAction": (
|
|
10476
|
+
"补传只适用于『从未成功上传』或『字节完全一致的重试』。"
|
|
10477
|
+
+ (
|
|
10478
|
+
"本次重建注入了 "
|
|
10479
|
+
f"{package['knowledgeCandidateCount']} 条知识候选"
|
|
10480
|
+
"(原包上传时还没有 candidates/knowledge.json),因此字节必然不同——"
|
|
10481
|
+
"已发布归档无法从客户端追加知识条目,需要平台侧提供重新索引或归档版本化能力。"
|
|
10482
|
+
"若只是想重试同一个包(例如知识索引失败),加 --no-knowledge-injection "
|
|
10483
|
+
"可重建与封存目录完全一致的字节。"
|
|
10484
|
+
if payload.get("knowledgeCandidatesInjected")
|
|
10485
|
+
else "本地归档内容与已上传的包不一致,请先确认哪一份才是应保留的事实。"
|
|
10486
|
+
)
|
|
10487
|
+
),
|
|
10488
|
+
})
|
|
10489
|
+
return 1, payload
|
|
10490
|
+
|
|
10491
|
+
if dry_run:
|
|
10492
|
+
payload.update({"ok": True, "reasonCode": "ARCHIVE_REPUBLISH_PREVIEW"})
|
|
10388
10493
|
return 0, payload
|
|
10389
10494
|
|
|
10390
10495
|
result = auto_push_archive_core(
|
|
@@ -10407,6 +10512,7 @@ def cmd_republish_cli(args: argparse.Namespace) -> int:
|
|
|
10407
10512
|
archive_dir=resolve_path(args.archive_dir) if args.archive_dir else None,
|
|
10408
10513
|
project_root=resolve_path(args.project) if args.project else None,
|
|
10409
10514
|
dry_run=bool(args.dry_run),
|
|
10515
|
+
inject_knowledge=not bool(args.no_knowledge_injection),
|
|
10410
10516
|
)
|
|
10411
10517
|
emit_json(payload)
|
|
10412
10518
|
return code
|
|
@@ -10590,6 +10696,14 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
10590
10696
|
action="store_true",
|
|
10591
10697
|
help="build the package and report its contents without uploading",
|
|
10592
10698
|
)
|
|
10699
|
+
p_republish.add_argument(
|
|
10700
|
+
"--no-knowledge-injection",
|
|
10701
|
+
action="store_true",
|
|
10702
|
+
help=(
|
|
10703
|
+
"rebuild exactly what the sealed archive holds; needed to retry the "
|
|
10704
|
+
"same bytes the server already stored"
|
|
10705
|
+
),
|
|
10706
|
+
)
|
|
10593
10707
|
p_republish.add_argument("--json", action="store_true", default=True)
|
|
10594
10708
|
p_republish.set_defaults(func=cmd_republish_cli)
|
|
10595
10709
|
|
|
@@ -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.69",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.88",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
27
|
"path": ".harness-build.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "0709912d6a1fe652fc76827d48d7305fd6ed392025da438c79f0c3d588317731"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "agents/harness-evaluator.md",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "harness-archive/SKILL.md",
|
|
100
|
-
"sha256": "
|
|
100
|
+
"sha256": "787cdc6fb1fe8a56f06ed9f18572aa297d7da05810286bf2447491e48170973e"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "harness-codebase-map/SKILL.md",
|
|
116
|
-
"sha256": "
|
|
116
|
+
"sha256": "a7e7d508d85578027d172b4fd1e1e27141d29b172f9267d362af66d70c20745c"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,11 +153,11 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "9c6c176b2e2246335a41d04bd85473db88c99ded2ce4d456caddbd5f49448c65"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "harness-knowledge-query/SKILL.md",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "188ecf125fbd46e1011c4745832c531fd0a3e8d5ff2581eac781fa3091f18808"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "harness-plan/checklist.md",
|
|
@@ -173,15 +173,15 @@
|
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"path": "harness-plan/SKILL.md",
|
|
176
|
-
"sha256": "
|
|
176
|
+
"sha256": "3d271beff56b142cee880ff50cee2ee2dde87ff1f41cf39ab9d541c525122a79"
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
"path": "harness-pull/SKILL.md",
|
|
180
|
-
"sha256": "
|
|
180
|
+
"sha256": "d64b8094e40121053f869d4681dbca28f98ff2b4f49211bf4bae277be8363ff0"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"path": "harness-push/SKILL.md",
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "5d6a668e73275c57bb2bb619e064971f1f1e234534b7deb39017503eca4e9aa8"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "harness-review/checklist.md",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"path": "harness-review/SKILL.md",
|
|
200
|
-
"sha256": "
|
|
200
|
+
"sha256": "3fb87a1db89642a72962cc5cb34a85fc040933ae40b6466e0d17d9d3b9d4b2b3"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "harness-run/checklist.md",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "harness-run/SKILL.md",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "fe8c64a333cf99ab1ba611f82538efd72d631b8586ff56736e38fd71580eeddd"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"path": "harness-submit/checklist.md",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"path": "harness-submit/SKILL.md",
|
|
228
|
-
"sha256": "
|
|
228
|
+
"sha256": "bf4d050815fb6f12ae97edf65839b77af71a2f2aed56436ca20ff528d24588f6"
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
231
|
"path": "harness-sync/reference.md",
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"path": "harness-sync/SKILL.md",
|
|
236
|
-
"sha256": "
|
|
236
|
+
"sha256": "791904da89523f03a92c62bfb3f75949999eaf482ca6113b97f614d17b2ce532"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"path": "harness-test/checklist.md",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"path": "harness-test/SKILL.md",
|
|
260
|
-
"sha256": "
|
|
260
|
+
"sha256": "664585ffac4ed6bfa1912e0c1b40cb73261d43e6f46546d27c9f40947a2db099"
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
},
|
|
330
330
|
{
|
|
331
331
|
"path": "scripts/harness_archive.py",
|
|
332
|
-
"sha256": "
|
|
332
|
+
"sha256": "da88a0a922d24d402e3258041e3eb3a2c3d47dc42d930f10550161acf6864179"
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
335
|
"path": "scripts/harness_change.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.69",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.88",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
27
|
"path": ".harness-build.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "9daf75dd4df259b9bff02aa0f088372ea9c8c96f39fba13cce05140696186f0d"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "agents/harness-evaluator.md",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "harness-archive/SKILL.md",
|
|
100
|
-
"sha256": "
|
|
100
|
+
"sha256": "085514f0e48afb17fc6cec4cb1bd057b5d32af7580bc63b702d02eceed26adb5"
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"path": "harness-codebase-map/SKILL.md",
|
|
116
|
-
"sha256": "
|
|
116
|
+
"sha256": "e50091b3c44f31c0d2559c46760a1b07c2159dff8c918adee0e3c92f46616f95"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -153,11 +153,11 @@
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "1efecf8ac5eacb0dbae7670de68fed3b632369b2b9bcc8697e585cca0673c6a5"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "harness-knowledge-query/SKILL.md",
|
|
160
|
-
"sha256": "
|
|
160
|
+
"sha256": "cbb4802bba062e59fce6d11ef0c15649c9f3242bf8f6d8fd6dc492a35964a73b"
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "harness-plan/checklist.md",
|
|
@@ -173,15 +173,15 @@
|
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"path": "harness-plan/SKILL.md",
|
|
176
|
-
"sha256": "
|
|
176
|
+
"sha256": "60136f87601ccaf68dfd98c5cd05f299ad6b57d2c26beeeb3f1344453347ccb2"
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
"path": "harness-pull/SKILL.md",
|
|
180
|
-
"sha256": "
|
|
180
|
+
"sha256": "c03ff4e1d9e6c9db7f75334c997bcd3501364bffaf52d332acc66cd7c65c9d62"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"path": "harness-push/SKILL.md",
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "db1b46a4d506ef8c4d89c54074b476792db2027fb55ce07e43a5cc72e8da8202"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "harness-review/checklist.md",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"path": "harness-review/SKILL.md",
|
|
200
|
-
"sha256": "
|
|
200
|
+
"sha256": "64ccbc18fb31ddefbc60638507fdf86c9fa0ee5379abb3a1763283fda7388158"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "harness-run/checklist.md",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "harness-run/SKILL.md",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "727922a067fba9016d65171a06a6a554072a9e86652936e4929fae498f06fbd6"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"path": "harness-submit/checklist.md",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"path": "harness-submit/SKILL.md",
|
|
228
|
-
"sha256": "
|
|
228
|
+
"sha256": "f56a332bf5a481f90bc293f351f07ef5ea0203391f0ed873a58d7dbe4503bfcc"
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
231
|
"path": "harness-sync/reference.md",
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"path": "harness-sync/SKILL.md",
|
|
236
|
-
"sha256": "
|
|
236
|
+
"sha256": "8407bf7fc3bf16044f4ea2f46e816249ec857a31eb7664f650c386064eefe554"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"path": "harness-test/checklist.md",
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"path": "harness-test/SKILL.md",
|
|
260
|
-
"sha256": "
|
|
260
|
+
"sha256": "4c262838b7619a78bd338d4eab453758b7b5aca237743cb205c407fad49c11a3"
|
|
261
261
|
},
|
|
262
262
|
{
|
|
263
263
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
},
|
|
330
330
|
{
|
|
331
331
|
"path": "scripts/harness_archive.py",
|
|
332
|
-
"sha256": "
|
|
332
|
+
"sha256": "da88a0a922d24d402e3258041e3eb3a2c3d47dc42d930f10550161acf6864179"
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
335
|
"path": "scripts/harness_change.py",
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schema_version": 2,
|
|
3
3
|
"profile": "general",
|
|
4
4
|
"adapter": "codex",
|
|
5
|
-
"bundle_version": "0.2.
|
|
5
|
+
"bundle_version": "0.2.69",
|
|
6
6
|
"requires": {
|
|
7
|
-
"minimumCliVersion": "0.2.
|
|
7
|
+
"minimumCliVersion": "0.2.88",
|
|
8
8
|
"capabilities": [
|
|
9
9
|
"sync@2",
|
|
10
10
|
"rules-sync@1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
27
|
"path": ".harness-build.json",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "ac5b827c5ba06544899941b26f5fe2fa8a2e5cf1a2b4837209466ceb711feeaf"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "CONTEXT.md",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"path": "harness-archive/SKILL.md",
|
|
88
|
-
"sha256": "
|
|
88
|
+
"sha256": "bcaab0e2ef949fed58b7f8ea4592d526a8137621ace43e40422cfd50682b4511"
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
91
|
"path": "harness-archive/templates/summary-data-template.json",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "harness-codebase-map/SKILL.md",
|
|
104
|
-
"sha256": "
|
|
104
|
+
"sha256": "45cdc683c3a6a11ccc0388b9cff6fd46bb9fc6cd28d29f64d4f0bf9439dfacd9"
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
"path": "harness-codebase-map/templates/ARCHITECTURE.md",
|
|
@@ -141,11 +141,11 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"path": "harness-knowledge-ingest/SKILL.md",
|
|
144
|
-
"sha256": "
|
|
144
|
+
"sha256": "465a2efad2c57e641034eed9f0e48c971fbef9b2faca3bd205a33e96da20fa07"
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
"path": "harness-knowledge-query/SKILL.md",
|
|
148
|
-
"sha256": "
|
|
148
|
+
"sha256": "35f1b34d04488f00e0fe151f2b823bef981af1750823cef44a77fb2d988ab4b7"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"path": "harness-plan/checklist.md",
|
|
@@ -161,15 +161,15 @@
|
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"path": "harness-plan/SKILL.md",
|
|
164
|
-
"sha256": "
|
|
164
|
+
"sha256": "f300e9ed66df20bc1ca318471e581732ffe62f9cc09227dd54b5d9a8460aa8aa"
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"path": "harness-pull/SKILL.md",
|
|
168
|
-
"sha256": "
|
|
168
|
+
"sha256": "4a592050d2368f1db851973881ec053a5393db7f3a67715565bb058a19728566"
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"path": "harness-push/SKILL.md",
|
|
172
|
-
"sha256": "
|
|
172
|
+
"sha256": "0eb232cad98e0428e5001054edfe1e00447b5002dbae62020c515f5d49aaf2fa"
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"path": "harness-review/checklist.md",
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "harness-review/SKILL.md",
|
|
188
|
-
"sha256": "
|
|
188
|
+
"sha256": "e4e6cb44f72b3f42a50ebc10b9648e57cb0bbb757d58eacb9dcac17ae1d90bd2"
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
191
|
"path": "harness-run/checklist.md",
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"path": "harness-run/SKILL.md",
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "ae659deeffe9fb446df91322228a719c77a2a2d834fee243559ddda723460083"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "harness-submit/checklist.md",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"path": "harness-submit/SKILL.md",
|
|
216
|
-
"sha256": "
|
|
216
|
+
"sha256": "3728d4adf32707410ba074a5bac11f80cafb9e8f5cb4033079ab2ab07adf23c7"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"path": "harness-sync/reference.md",
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
"path": "harness-sync/SKILL.md",
|
|
224
|
-
"sha256": "
|
|
224
|
+
"sha256": "1a2c239fd4eefc0a483b8d797e513d57098a379b6be02c3f303c0923ddb7be34"
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"path": "harness-test/checklist.md",
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
"path": "harness-test/SKILL.md",
|
|
248
|
-
"sha256": "
|
|
248
|
+
"sha256": "e4e8874ba7071b958a33776c7c9a74e31868ba3958a39a6c582885f0c56ed252"
|
|
249
249
|
},
|
|
250
250
|
{
|
|
251
251
|
"path": "protocols/archive-report-protocol.md",
|
|
@@ -317,7 +317,7 @@
|
|
|
317
317
|
},
|
|
318
318
|
{
|
|
319
319
|
"path": "scripts/harness_archive.py",
|
|
320
|
-
"sha256": "
|
|
320
|
+
"sha256": "da88a0a922d24d402e3258041e3eb3a2c3d47dc42d930f10550161acf6864179"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"path": "scripts/harness_change.py",
|