okstra 0.99.0 → 0.99.1

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": "okstra",
3
- "version": "0.99.0",
3
+ "version": "0.99.1",
4
4
  "description": "Multi-agent cross-verification orchestrator runtime + Claude Code skills.",
5
5
  "license": "MIT",
6
6
  "author": "devonshin",
@@ -1,5 +1,5 @@
1
1
  {
2
- "package": "0.99.0",
3
- "builtAt": "2026-06-22T18:58:09.887Z",
2
+ "package": "0.99.1",
3
+ "builtAt": "2026-06-22T19:24:09.094Z",
4
4
  "repoRoot": "/home/runner/work/okstra/okstra"
5
5
  }
@@ -508,13 +508,26 @@ def _check_heartbeat_sidecar(path: Path, errors: list[str]) -> None:
508
508
  prev = ts
509
509
 
510
510
 
511
- def _check_heartbeat_sidecars(run_dir: Path, task_type: str, errors: list[str]) -> None:
511
+ def _check_heartbeat_sidecars(
512
+ run_dir: Path, task_type: str, suffix: str | None, errors: list[str]
513
+ ) -> None:
512
514
  """검사 2 — 사이드카 **존재** 는 validate-run.py validate_worker_results_audit 가
513
- 이미 강제하므로, 여기서는 존재하는 사이드카의 heartbeat 내용만 본다."""
515
+ 이미 강제하므로, 여기서는 존재하는 사이드카의 heartbeat 내용만 본다.
516
+
517
+ 비-stage 격리 task-type(requirements-discovery / error-analysis /
518
+ implementation-planning)은 `runs/<task-type>/worker-results/` 를 run 끼리
519
+ 공유한다 — seq 는 파일명에만 있다. seq 를 무시하고 glob 하면 이미 폐기된
520
+ 직전 run 의 audit(heartbeat 위반)까지 검사해 현재 run 을 오탐 실패시킨다.
521
+ 다른 검사(progress / sidecar-read)와 동일하게 현재 run seq(suffix)로 스코핑한다."""
514
522
  worker_results_dir = run_dir / "worker-results"
515
523
  if not worker_results_dir.is_dir():
516
524
  return
517
- for path in sorted(worker_results_dir.glob(f"claude-worker-audit-{task_type}-*.md")):
525
+ pattern = (
526
+ f"claude-worker-audit-{suffix}.md"
527
+ if suffix
528
+ else f"claude-worker-audit-{task_type}-*.md"
529
+ )
530
+ for path in sorted(worker_results_dir.glob(pattern)):
518
531
  _check_heartbeat_sidecar(path, errors)
519
532
 
520
533
 
@@ -573,8 +586,8 @@ def validate_session_conformance(
573
586
  return result
574
587
 
575
588
  run_dir = report_path.parent.parent
576
- _check_heartbeat_sidecars(run_dir, task_type, result.errors)
577
589
  suffix = run_artifact_suffix(team_state_path)
590
+ _check_heartbeat_sidecars(run_dir, task_type, suffix, result.errors)
578
591
 
579
592
  lead_runtime = team_state.get("leadRuntime", "") or "claude-code"
580
593
  dispatch_mode = str(team_state.get("dispatchMode", "")).strip()