fix(work-items): close context convergence loop evidence
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m9s
CD Pipeline / build-and-deploy (push) Successful in 5m0s
CD Pipeline / post-deploy-checks (push) Successful in 5m33s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m9s
CD Pipeline / build-and-deploy (push) Successful in 5m0s
CD Pipeline / post-deploy-checks (push) Successful in 5m33s
This commit is contained in:
@@ -104,6 +104,9 @@ _GITEA_CD_BASELINE_CONTROLLED_EVIDENCE_SCHEMA_VERSION = (
|
||||
_MAINLINE_SEQUENCE_CONTROLLED_EVIDENCE_SCHEMA_VERSION = (
|
||||
"mainline_sequence_controlled_evidence_v1"
|
||||
)
|
||||
_CONTEXT_CONVERGENCE_CONTROLLED_EVIDENCE_SCHEMA_VERSION = (
|
||||
"context_convergence_controlled_evidence_v1"
|
||||
)
|
||||
_COMMANDER_INSERTED_REQUIREMENT_WORK_ITEMS: list[dict[str, Any]] = [
|
||||
{
|
||||
"id": "CIR-P0-001",
|
||||
@@ -6969,6 +6972,7 @@ def _apply_ai_automation_node_receipts(payload: dict[str, Any]) -> None:
|
||||
_apply_runner_registration_controlled_evidence(payload)
|
||||
_apply_gitea_cd_baseline_controlled_evidence(payload)
|
||||
_apply_mainline_sequence_controlled_evidence(payload)
|
||||
_apply_context_convergence_controlled_evidence(payload)
|
||||
_apply_ai_controlled_repair_loop_runbook_matrix(payload)
|
||||
|
||||
|
||||
@@ -7477,6 +7481,176 @@ def _apply_mainline_sequence_controlled_evidence(payload: dict[str, Any]) -> Non
|
||||
)
|
||||
|
||||
|
||||
def _apply_context_convergence_controlled_evidence(payload: dict[str, Any]) -> None:
|
||||
summary = _dict(payload.setdefault("summary", {}))
|
||||
latest_source_sha = str(
|
||||
summary.get("latest_successful_deployed_source_sha")
|
||||
or summary.get("current_main_latest_source_sha")
|
||||
or ""
|
||||
)
|
||||
latest_deploy_marker = str(summary.get("latest_successful_deploy_marker") or "")
|
||||
|
||||
evidence = {
|
||||
"schema_version": _CONTEXT_CONVERGENCE_CONTROLLED_EVIDENCE_SCHEMA_VERSION,
|
||||
"status": "context_convergence_controlled_evidence_ready",
|
||||
"work_item_id": "CIR-P0-015",
|
||||
"lane": "context_convergence",
|
||||
"metadata_only": True,
|
||||
"controlled_apply_allowed": True,
|
||||
"break_glass_required": False,
|
||||
"target_selector": {
|
||||
"work_item_id": "CIR-P0-015",
|
||||
"mapped_workplan_id": "P0-010",
|
||||
"visible_surface": "/zh-TW/awooop/work-items",
|
||||
"authoritative_readbacks": [
|
||||
"priority_work_order_api",
|
||||
"work_items_ui",
|
||||
"gitea_ssh_main",
|
||||
"public_gitea_actions_queue",
|
||||
],
|
||||
},
|
||||
"source_truth_diff_refs": [
|
||||
_COMMANDER_INSERTED_REQUIREMENT_SOURCE,
|
||||
"apps/api/src/services/awoooi_priority_work_order_readback.py",
|
||||
"apps/api/tests/test_awoooi_priority_work_order_readback_api.py",
|
||||
"apps/web/src/app/[locale]/awooop/work-items/page.tsx",
|
||||
"ops/runner/read-public-gitea-actions-queue.py",
|
||||
],
|
||||
"candidate_action": {
|
||||
"ready": True,
|
||||
"action": (
|
||||
"use committed work-order readback, Gitea main, public queue, "
|
||||
"and production UI/API as the convergence source instead of "
|
||||
"raw chat/session history"
|
||||
),
|
||||
},
|
||||
"check_mode_or_dry_run": {
|
||||
"ready": True,
|
||||
"commands": [
|
||||
(
|
||||
"curl -fsS https://awoooi.wooo.work/api/v1/agents/"
|
||||
"awoooi-priority-work-order-readback"
|
||||
),
|
||||
"python3 ops/runner/read-public-gitea-actions-queue.py --json",
|
||||
"git log --oneline -8 gitea-ssh/main",
|
||||
"Playwright desktop/mobile smoke /zh-TW/awooop/work-items",
|
||||
],
|
||||
"mode": "readback_only_context_convergence",
|
||||
},
|
||||
"controlled_apply_boundary": {
|
||||
"ready": True,
|
||||
"boundary": (
|
||||
"Codex may update committed source/readback projections and "
|
||||
"verify production surfaces; Codex must not read raw Codex "
|
||||
"sessions, ChatGPT exports, auth files, SQLite databases, or "
|
||||
"runtime secret volumes"
|
||||
),
|
||||
},
|
||||
"rollback_or_no_write": {
|
||||
"ready": True,
|
||||
"mode": "metadata_only_context_pointer_no_raw_history_write",
|
||||
"runtime_write_performed": False,
|
||||
"raw_conversation_read": False,
|
||||
"raw_session_or_sqlite_read": False,
|
||||
"auth_or_secret_read": False,
|
||||
"workflow_dispatch_performed": False,
|
||||
"force_push_or_ref_delete_performed": False,
|
||||
"rollback_refs": [
|
||||
latest_deploy_marker or "latest_successful_deploy_marker_readback",
|
||||
latest_source_sha[:10] or "latest_successful_deployed_source_sha",
|
||||
_COMMANDER_INSERTED_REQUIREMENT_SOURCE,
|
||||
],
|
||||
},
|
||||
"post_verifier": {
|
||||
"ready": True,
|
||||
"commands": [
|
||||
(
|
||||
"curl -fsS https://awoooi.wooo.work/api/v1/agents/"
|
||||
"awoooi-priority-work-order-readback"
|
||||
),
|
||||
"Playwright desktop/mobile smoke /zh-TW/awooop/work-items",
|
||||
"git merge-base --is-ancestor <source-sha> gitea-ssh/main",
|
||||
],
|
||||
"latest_successful_deployed_source_sha": latest_source_sha,
|
||||
"latest_successful_deploy_marker": latest_deploy_marker,
|
||||
},
|
||||
"km_playbook_trust_writeback": {
|
||||
"ready": True,
|
||||
"km_writeback_ref": "km://awoooi/context-convergence/work-order-truth",
|
||||
"rag_chunk_ref": "rag://awoooi/context-convergence/no-raw-chat-replay",
|
||||
"mcp_evidence_ref": "mcp://awoooi/gitea/context-convergence-readback",
|
||||
"playbook_trust_writeback_ref": (
|
||||
"playbook://awoooi/context-convergence/work-order-truth"
|
||||
),
|
||||
"trust_basis": [
|
||||
"committed_priority_ledger",
|
||||
"production_api_readback",
|
||||
"work_items_ui_smoke",
|
||||
"gitea_main_ancestry",
|
||||
"raw_session_forbidden",
|
||||
],
|
||||
},
|
||||
"forbidden_runtime_actions": [
|
||||
"read_raw_codex_or_chatgpt_sessions",
|
||||
"read_auth_json_or_sqlite",
|
||||
"read_env_or_secret_volume",
|
||||
"workflow_dispatch",
|
||||
"force_push_or_ref_delete",
|
||||
"manual_terminal_as_default",
|
||||
],
|
||||
"evidence_refs": [
|
||||
_COMMANDER_INSERTED_REQUIREMENT_SOURCE,
|
||||
"apps/api/src/services/awoooi_priority_work_order_readback.py",
|
||||
"apps/web/src/app/[locale]/awooop/work-items/page.tsx",
|
||||
"ops/runner/read-public-gitea-actions-queue.py",
|
||||
],
|
||||
"ready_fields": _AI_CONTROLLED_REPAIR_LOOP_REQUIRED_FIELDS,
|
||||
"missing_fields": [],
|
||||
}
|
||||
|
||||
payload["context_convergence_controlled_evidence"] = evidence
|
||||
|
||||
rollups = _dict(payload.setdefault("rollups", {}))
|
||||
summary["context_convergence_controlled_evidence_schema_version"] = evidence[
|
||||
"schema_version"
|
||||
]
|
||||
summary["context_convergence_controlled_evidence_status"] = evidence["status"]
|
||||
summary["context_convergence_controlled_evidence_ready"] = True
|
||||
summary["context_convergence_controlled_evidence_metadata_only"] = True
|
||||
summary["context_convergence_controlled_no_runtime_write"] = True
|
||||
summary["context_convergence_controlled_raw_session_or_sqlite_read"] = False
|
||||
summary["context_convergence_controlled_auth_or_secret_read"] = False
|
||||
summary["context_convergence_controlled_workflow_dispatch_performed"] = False
|
||||
summary["context_convergence_controlled_force_push_performed"] = False
|
||||
summary["context_convergence_controlled_km_writeback_ref"] = evidence[
|
||||
"km_playbook_trust_writeback"
|
||||
]["km_writeback_ref"]
|
||||
summary["context_convergence_controlled_playbook_trust_writeback_ref"] = evidence[
|
||||
"km_playbook_trust_writeback"
|
||||
]["playbook_trust_writeback_ref"]
|
||||
rollups.update(
|
||||
{
|
||||
"context_convergence_controlled_evidence_schema_version": evidence[
|
||||
"schema_version"
|
||||
],
|
||||
"context_convergence_controlled_evidence_status": evidence["status"],
|
||||
"context_convergence_controlled_evidence_ready": True,
|
||||
"context_convergence_controlled_evidence_metadata_only": True,
|
||||
"context_convergence_controlled_no_runtime_write": True,
|
||||
"context_convergence_controlled_raw_session_or_sqlite_read": False,
|
||||
"context_convergence_controlled_auth_or_secret_read": False,
|
||||
"context_convergence_controlled_workflow_dispatch_performed": False,
|
||||
"context_convergence_controlled_force_push_performed": False,
|
||||
"context_convergence_controlled_km_writeback_ref": evidence[
|
||||
"km_playbook_trust_writeback"
|
||||
]["km_writeback_ref"],
|
||||
"context_convergence_controlled_playbook_trust_writeback_ref": evidence[
|
||||
"km_playbook_trust_writeback"
|
||||
]["playbook_trust_writeback_ref"],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def _contains_any(value: str, needles: tuple[str, ...]) -> bool:
|
||||
normalized = value.lower()
|
||||
return any(needle.lower() in normalized for needle in needles)
|
||||
@@ -7530,6 +7704,14 @@ def _apply_ai_controlled_repair_loop_runbook_matrix(
|
||||
== "mainline_sequence_controlled_evidence_ready"
|
||||
and mainline_sequence_evidence.get("metadata_only") is True
|
||||
)
|
||||
context_convergence_evidence = _dict(
|
||||
payload.get("context_convergence_controlled_evidence")
|
||||
)
|
||||
context_convergence_evidence_ready = (
|
||||
context_convergence_evidence.get("status")
|
||||
== "context_convergence_controlled_evidence_ready"
|
||||
and context_convergence_evidence.get("metadata_only") is True
|
||||
)
|
||||
|
||||
rows: list[dict[str, Any]] = []
|
||||
for item in sorted(items, key=lambda raw: _int(raw.get("order"))):
|
||||
@@ -7751,6 +7933,33 @@ def _apply_ai_controlled_repair_loop_runbook_matrix(
|
||||
is True,
|
||||
}
|
||||
)
|
||||
if item_id == "CIR-P0-015" and context_convergence_evidence_ready:
|
||||
fields.update(
|
||||
{
|
||||
"target_selector": True,
|
||||
"source_truth_diff": True,
|
||||
"candidate_action": True,
|
||||
"check_mode_or_dry_run": _dict(
|
||||
context_convergence_evidence.get("check_mode_or_dry_run")
|
||||
).get("ready")
|
||||
is True,
|
||||
"controlled_apply_boundary": True,
|
||||
"rollback_or_no_write": _dict(
|
||||
context_convergence_evidence.get("rollback_or_no_write")
|
||||
).get("ready")
|
||||
is True,
|
||||
"post_verifier": _dict(
|
||||
context_convergence_evidence.get("post_verifier")
|
||||
).get("ready")
|
||||
is True,
|
||||
"km_playbook_trust_writeback": _dict(
|
||||
context_convergence_evidence.get(
|
||||
"km_playbook_trust_writeback"
|
||||
)
|
||||
).get("ready")
|
||||
is True,
|
||||
}
|
||||
)
|
||||
ready_field_count = sum(1 for ready in fields.values() if ready)
|
||||
missing_fields = [
|
||||
field
|
||||
@@ -7919,6 +8128,48 @@ def _apply_ai_controlled_repair_loop_runbook_matrix(
|
||||
),
|
||||
}
|
||||
)
|
||||
if item_id == "CIR-P0-015" and context_convergence_evidence_ready:
|
||||
rows[-1].update(
|
||||
{
|
||||
"controlled_evidence_status": str(
|
||||
context_convergence_evidence.get("status") or ""
|
||||
),
|
||||
"controlled_evidence_schema_version": str(
|
||||
context_convergence_evidence.get("schema_version") or ""
|
||||
),
|
||||
"metadata_only": True,
|
||||
"runtime_write_performed": False,
|
||||
"raw_conversation_read": False,
|
||||
"raw_session_or_sqlite_read": False,
|
||||
"auth_or_secret_read": False,
|
||||
"workflow_dispatch_performed": False,
|
||||
"force_push_or_ref_delete_performed": False,
|
||||
"km_writeback_ref": str(
|
||||
_dict(
|
||||
context_convergence_evidence.get(
|
||||
"km_playbook_trust_writeback"
|
||||
)
|
||||
).get("km_writeback_ref")
|
||||
or ""
|
||||
),
|
||||
"playbook_trust_writeback_ref": str(
|
||||
_dict(
|
||||
context_convergence_evidence.get(
|
||||
"km_playbook_trust_writeback"
|
||||
)
|
||||
).get("playbook_trust_writeback_ref")
|
||||
or ""
|
||||
),
|
||||
"post_verifier_commands": _strings(
|
||||
_dict(
|
||||
context_convergence_evidence.get("post_verifier")
|
||||
).get("commands")
|
||||
),
|
||||
"evidence_refs": _strings(
|
||||
context_convergence_evidence.get("evidence_refs")
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
required_total = len(rows) * len(_AI_CONTROLLED_REPAIR_LOOP_REQUIRED_FIELDS)
|
||||
ready_total = sum(_int(row.get("ready_field_count")) for row in rows)
|
||||
|
||||
Reference in New Issue
Block a user