Complete internal submodule smoke closure
This commit is contained in:
@@ -150,6 +150,7 @@ def project_progress() -> dict:
|
||||
product_backlog = _read_json(CONTROL_ROOT / "web-product-backlog.json")
|
||||
product_status = _read_json(CONTROL_ROOT / "web-product-migration-status.json")
|
||||
completeness_audit = _read_json(ROOT / "tests/golden/WBV2/feature-completeness-audit.json")
|
||||
internal_submodule_smoke = _read_json(ROOT / "tests/golden/WBV2/internal-submodule-smoke-manifest.json")
|
||||
total = int(inventory.get("summary", {}).get("unitCount", 0) or 0)
|
||||
verified = int(inventory.get("coverage", {}).get("verifiedUnits", 0) or 0)
|
||||
unverified = int(inventory.get("coverage", {}).get("unverifiedUnits", max(0, total - verified)) or 0)
|
||||
@@ -295,6 +296,7 @@ def project_progress() -> dict:
|
||||
"smoke": completeness_audit.get("smoke", {}),
|
||||
"actualMissingOrBlocked": completeness_audit.get("actualMissingOrBlocked", []),
|
||||
},
|
||||
"internalSubmoduleSmoke": internal_submodule_smoke.get("summary", {}),
|
||||
"productMigration": {
|
||||
**product_status,
|
||||
"strategy": product_backlog.get("strategy"),
|
||||
@@ -431,6 +433,7 @@ def format_progress(progress: dict, fast_path: dict | None = None) -> list[str]:
|
||||
planner = fast_path.get("autoPlanner", {})
|
||||
product = progress.get("productMigration", {})
|
||||
smoke = progress.get("completenessAudit", {}).get("smoke", {})
|
||||
internal_smoke = progress.get("internalSubmoduleSmoke", {})
|
||||
product_estimate = product.get("estimatedRemainingMinutes")
|
||||
return [
|
||||
"",
|
||||
@@ -441,6 +444,7 @@ def format_progress(progress: dict, fast_path: dict | None = None) -> list[str]:
|
||||
f" source traceability reference: {progress.get('verifiedUnits', 0)}/{progress.get('totalUnits', 0)} bound; excluded from product completion denominator",
|
||||
f" completeness audit: {progress.get('completenessAudit', {}).get('status', 'MISSING')} blocked={sum(item.get('status') == 'BLOCKED' for item in progress.get('completenessAudit', {}).get('actualMissingOrBlocked', []))} behavioral-unverified={progress.get('completenessAudit', {}).get('behavioralEvidence', {}).get('unverifiedUnits', 0)}",
|
||||
f" one-pass feature smoke: resolved={smoke.get('resolved', 0)}/{smoke.get('totalFeatures', 0)} attempts={smoke.get('attempts', 0)} retries={smoke.get('retries', 0)} unresolved={len(smoke.get('unresolved', []))}",
|
||||
f" one-pass internal submodule smoke: resolved={internal_smoke.get('resolved', 0)}/{internal_smoke.get('totalSubmodules', 0)} attempts={internal_smoke.get('smokeAttempts', 0)} retries={internal_smoke.get('retries', 0)} unresolved={internal_smoke.get('blocked', 0)}",
|
||||
f" task plan: {plan.get('done', 0)}/{plan.get('tasks', 0)} done, active={','.join(plan.get('active', [])) or 'none'}, blocked={plan.get('blocked', 0)}",
|
||||
f" old verification estimate: remaining={estimate_text}, total={total_text} (reference only; strategy retired)",
|
||||
f" observed bottleneck: stage={progress.get('bottleneck', {}).get('stage') or 'n/a'} median={progress.get('bottleneck', {}).get('medianDurationMs') or 0}ms command={progress.get('bottleneck', {}).get('label') or 'n/a'}",
|
||||
|
||||
Reference in New Issue
Block a user