283 lines
17 KiB
JSON
283 lines
17 KiB
JSON
{
|
|
"wave": "wave-1",
|
|
"target_canary": {
|
|
"working_target": "Run one isolated challenger-agent versus Leo reasoning exchange that yields distinct session identities, a transcript-visible substantive objection, a revised review-only proposal, and a no-write receipt.",
|
|
"surface": "lane-owned repository worktree",
|
|
"current_tier": "T1_model_for_separate_session_claim",
|
|
"required_tier": "T2_runtime",
|
|
"first_action": "Map and reuse the existing Leo handler and trace contracts, then execute two isolated model sessions through one bounded protocol runner.",
|
|
"proof": "Retained transcript, per-session traces, negative-control failure, proposal review state, database fingerprints, and focused/full test readbacks."
|
|
},
|
|
"ship_owner": "integration_owner",
|
|
"shared_definition_of_working": {
|
|
"operator_path": "from the repository root, run the lane-owned isolated challenger protocol command",
|
|
"done_means": "T2 isolated multi-agent runtime proof, focused and relevant full tests green, and PR-shaped delivery",
|
|
"not_done": "One model producing both sides, a scripted transcript, hidden shared memory, canonical mutation, or proof below T2",
|
|
"required_tier": "T2_runtime"
|
|
},
|
|
"shared_verifier": "python -B -m pytest -p no:cacheprovider -q tests/test_leo_agent_challenger_protocol.py tests/test_run_leo_agent_challenger_loop.py tests/test_verify_leo_unseen_reasoning_chain.py tests/test_leo_turn_execution_manifest.py tests/test_leo_tool_trace.py",
|
|
"required_skills": [
|
|
"subagent-wave-orchestration",
|
|
"capability-tier-proof",
|
|
"codex-benchmark-lab"
|
|
],
|
|
"must_read_before_work": true,
|
|
"workers": [
|
|
{
|
|
"lane_class": "canary_dependency",
|
|
"planned_role": "runtime_cartographer",
|
|
"actual_agent_id_or_name": "runtime_cartographer",
|
|
"spawned": true,
|
|
"owned_files_or_surface": ["read-only runtime, handler, and session inspection"],
|
|
"forbidden_files_or_surface": ["all writes", "Git index", "canonical database", "Telegram or public sends"],
|
|
"verifier": "python3 -m pytest -q tests/test_verify_leo_unseen_reasoning_chain.py tests/test_leo_turn_execution_manifest.py tests/test_leo_tool_trace.py",
|
|
"expected_handoff": "Exact smallest separate-session runtime path with file and line evidence",
|
|
"status": "completed",
|
|
"handoff_status": "accepted_with_followup",
|
|
"integration_decision": "Use one persistent Leo GatewayRunner plus a stateless cross-family challenger; do not repeat the existing fresh-profile runner per turn."
|
|
},
|
|
{
|
|
"lane_class": "canary_dependency",
|
|
"planned_role": "negative_control_auditor",
|
|
"actual_agent_id_or_name": "negative_control_auditor",
|
|
"spawned": true,
|
|
"owned_files_or_surface": ["read-only verifier, fixture, and proposal-contract inspection"],
|
|
"forbidden_files_or_surface": ["all writes", "Git index", "canonical database", "Telegram or public sends"],
|
|
"verifier": "python3 -m pytest -q tests/test_verify_leo_unseen_reasoning_chain.py tests/test_leo_turn_execution_manifest.py tests/test_leo_tool_trace.py",
|
|
"expected_handoff": "Mechanical negative controls for collusion, row-id leakage, unsupported agreement, and silent apply",
|
|
"status": "completed",
|
|
"handoff_status": "accepted",
|
|
"integration_decision": "Added executed controls for repeated execution identity, leaked row IDs, unsupported agreement/write claims, and unknown mutation tools."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"planned_role": "delivery_runtime_auditor",
|
|
"actual_agent_id_or_name": "delivery_runtime_auditor",
|
|
"spawned": true,
|
|
"owned_files_or_surface": ["read-only packaging, runner, test, CI, and delivery inspection"],
|
|
"forbidden_files_or_surface": ["all writes", "Git index", "canonical database", "Telegram or public sends"],
|
|
"verifier": "python3 -m pytest -q tests/test_verify_leo_unseen_reasoning_chain.py tests/test_leo_turn_execution_manifest.py tests/test_leo_tool_trace.py",
|
|
"expected_handoff": "Ranked runtime options, exact test matrix, cleanup contract, and PR path",
|
|
"status": "completed",
|
|
"handoff_status": "accepted",
|
|
"integration_decision": "Disable Leo model tools, install an allowlisted read-only DB-context wrapper, commit before live execution, and retain cleanup/cost/PR proof."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"planned_role": "independent_t2_judge",
|
|
"actual_agent_id_or_name": "independent_t2_judge",
|
|
"spawned": true,
|
|
"owned_files_or_surface": ["read-only independent review of the new runner, verifier, fixtures, and focused test result"],
|
|
"forbidden_files_or_surface": ["all writes", "Git index", "model/API calls", "canonical database", "Telegram or public sends"],
|
|
"verifier": "python -B -m pytest -p no:cacheprovider -q tests/test_leo_agent_challenger_protocol.py tests/test_run_leo_agent_challenger_loop.py tests/test_verify_leo_unseen_reasoning_chain.py tests/test_leo_turn_execution_manifest.py tests/test_leo_tool_trace.py",
|
|
"expected_handoff": "Independent accept or reject against T2 with any pre-live blocker",
|
|
"status": "completed",
|
|
"pre_live_handoff_status": "rejected_t2_closure_accepted_live_safety",
|
|
"handoff_status": "accepted_t2_runtime_post_live",
|
|
"integration_decision": "The initial rejection drove transport attribution and semantic negative-control hardening. Post-live read-only adjudication accepted run 7c6a2937042c at T2_runtime with no blocking findings."
|
|
}
|
|
],
|
|
"first_live_attempt": {
|
|
"runtime_safety": "pass",
|
|
"verification": "fail",
|
|
"decision": "repair_and_rerun",
|
|
"database_fingerprint_unchanged": true,
|
|
"gateway_service_unchanged": true,
|
|
"cleanup_complete": true,
|
|
"failed_dimension": "The challenger authored candidate text instead of requiring Leo to do so, and Leo omitted the explicit row-reference and review/apply labels required by the verifier."
|
|
},
|
|
"second_live_attempt": {
|
|
"runtime_safety": "pass",
|
|
"verification": "fail",
|
|
"decision": "preserve_receipt_repair_parser_and_rerun",
|
|
"database_fingerprint_unchanged": true,
|
|
"gateway_service_unchanged": true,
|
|
"cleanup_complete": true,
|
|
"transport_attribution": "pass_from_clean_commit_586c215b54147cbd3c612088fa438ba53e42fa59",
|
|
"user_level_behavior": "The challenger raised a causal-overreach objection and Leo narrowed the candidate without self-merging.",
|
|
"failed_dimension": "The verifier required raw row IDs that the read-only runtime intentionally did not expose and rejected qualified review-only labels such as Candidate A (review-only) and Revised Candidate A (review-only, no self-merge)."
|
|
},
|
|
"third_live_attempt": {
|
|
"runtime_safety": "pass",
|
|
"verification": "fail",
|
|
"decision": "preserve_receipt_repair_ephemeral_context_hook_and_rerun",
|
|
"database_fingerprint_unchanged": true,
|
|
"gateway_service_unchanged": true,
|
|
"cleanup_complete": true,
|
|
"transport_attribution": "pass_from_clean_commit_251b9a7ee5a0d9dc72f7c606bb3b002401b04460",
|
|
"challenger_behavior": "pass_substantive_causal_objection",
|
|
"failed_dimension": "The temporary database plugin replaced Leo's raw L3 answer with an unrelated compiled source-intake response. The isolated harness now keeps L1/L2 read-only evidence context, skips fresh DB context on L3, and prevents compiled-response substitution without changing the live profile."
|
|
},
|
|
"fourth_live_attempt": {
|
|
"runtime_safety": "fail_external_concurrent_runtime_change",
|
|
"verification": "fail",
|
|
"decision": "preserve_receipt_wait_for_stable_runtime_and_rerun",
|
|
"database_fingerprint_unchanged": true,
|
|
"gateway_service_unchanged": true,
|
|
"cleanup_complete": true,
|
|
"transport_attribution": "pass_from_clean_commit_6a7f2d3f8cc01cdff804a0a0d6f5c7860e385639",
|
|
"challenger_behavior": "pass",
|
|
"leo_revision_behavior_after_replay_fix": "pass",
|
|
"failed_dimension": "A separate deployment advanced the deployed runtime checkout from a47415b60ef059ecc55e067ae556f49d818dc68d to 15c30f1fbe30c8f2295ddc33e293a45788a95706 during the canary, so the strict live-behavior invariance gate rejected the run."
|
|
},
|
|
"successful_live_canary": {
|
|
"remote_run_id": "7c6a2937042c",
|
|
"required_tier": "T2_runtime",
|
|
"current_tier": "T2_runtime",
|
|
"verification": "pass",
|
|
"independent_judgment": "accept_no_blocking_findings",
|
|
"source_git_commit": "af5af06130c493dd4c99c9e53638fc5b239dbee3",
|
|
"source_report_sha256": "4fd4269b795c32629d4b250cb66d56ceadaa93eaaa1f8f00a5ec19d76bf4f09e",
|
|
"recovered_remote_report_sha256": "6a7a9160095e77e5c42b7d8a2c995d3eb1e84f40624033a94ad49d616bb548a8",
|
|
"proposal_packet_sha256": "89c543b8a12e922044f93bcc6b1e23a3a252b044dc1d45163575b70bc1a3c100",
|
|
"database_fingerprint_sha256": "32a1f2c18f4b4c623443cbd4d9520982e9f291ec74ca63855cef51c88ac56f24",
|
|
"negative_controls_caught": 5,
|
|
"database_fingerprint_unchanged": true,
|
|
"gateway_service_unchanged": true,
|
|
"live_behavior_unchanged": true,
|
|
"cleanup_complete": true,
|
|
"remote_report_unlink_verified": true,
|
|
"telegram_sent": false,
|
|
"canonical_mutation_performed": false
|
|
},
|
|
"worktree_lifecycle": {
|
|
"contract": "external control copy of WORKTREE_LIFECYCLE.md (outside this repository)",
|
|
"current_finish_state": "retained_unintegrated",
|
|
"cleanup_owner": "integration-owner",
|
|
"worker_must_not_remove_or_prune": true
|
|
},
|
|
"delivery_validation": {
|
|
"origin_main_commit_merged": "15c30f1fbe30c8f2295ddc33e293a45788a95706",
|
|
"merge_commit": "45cf14a1df91f19b62a9235460e13c3dae616d90",
|
|
"feature_commits_preserved": true,
|
|
"focused_tests": "39 passed in 0.25s after integration hygiene",
|
|
"full_tests": "1297 passed in 106.35s",
|
|
"ruff": "pass",
|
|
"diff_check": "pass",
|
|
"standalone_verifier": "pass",
|
|
"pr": "https://github.com/living-ip/teleo-infrastructure/pull/152",
|
|
"pr_number": 152,
|
|
"pr_state": "open",
|
|
"pr_head_commit_before_lifecycle_handoff": "da84d4703eb82ebfd89971796d821250648ff985"
|
|
},
|
|
"integration_hygiene": {
|
|
"repo_local_goal_file_removed": true,
|
|
"pre_projection_source_report_sha256": "343f18688334d5166bbb951f8672ccf4ff5a3a2b14e05f5279d3e1165b76f83b",
|
|
"retention_safe_source_report_sha256": "4fd4269b795c32629d4b250cb66d56ceadaa93eaaa1f8f00a5ec19d76bf4f09e",
|
|
"recovered_raw_remote_report_sha256": "6a7a9160095e77e5c42b7d8a2c995d3eb1e84f40624033a94ad49d616bb548a8",
|
|
"source_lines_before_after": [17330, 1402],
|
|
"behavior_inventory_entries_removed": 2658,
|
|
"receipt_and_negative_controls_regenerated": true,
|
|
"standalone_verifier": "pass_T2_runtime_zero_failed_checks_5_of_5_controls_caught",
|
|
"focused_tests": "39 passed in 0.25s",
|
|
"targeted_scan": {
|
|
"source_high_confidence_secret_matches": 0,
|
|
"source_absolute_runtime_path_matches": 0,
|
|
"source_email_matches": 0,
|
|
"source_ipv4_matches": 0,
|
|
"full_pr_delta_high_confidence_secret_matches": 0,
|
|
"full_pr_delta_local_private_path_matches": 0,
|
|
"full_pr_delta_email_matches": 0,
|
|
"full_pr_delta_ipv4_matches": 0,
|
|
"full_pr_delta_allowlisted_runtime_or_synthetic_test_path_matches": 28
|
|
}
|
|
},
|
|
"changes_required_wave": {
|
|
"wave": "wave-2-pr-152-p1-repair",
|
|
"current_canary": "Run one fresh current-main T2 six-turn challenger-versus-Leo exchange whose C3 attacks the mandatory causal-overreach axis and whose complete turn list passes whole-report safety audits.",
|
|
"operator_path": "from a clean pushed branch commit, run python3 -B scripts/run_leo_agent_challenger_loop.py",
|
|
"required_tier": "T2_runtime",
|
|
"current_tier": "partial_lower_tier_after_live_semantic_failure_and_seventh_turn_bypass",
|
|
"proof_required": [
|
|
"measurement-only quoted I object regression fails the semantic gate",
|
|
"injected seventh mutation turn fails exact-turn and complete-report safety checks",
|
|
"focused, full, Ruff, format, and diff checks pass",
|
|
"fresh current-main live run passes with no send, no DB mutation, and full cleanup"
|
|
],
|
|
"ship_owner": "integration_owner",
|
|
"write_serialization": "Root owns the shared worktree, Git index, implementation, proof regeneration, and live run; all spawned workers are read-only.",
|
|
"review_comments": [4976818506, 4976856176],
|
|
"workers": [
|
|
{
|
|
"lane_class": "canary_dependency",
|
|
"actual_agent_id_or_name": "semantic_p1_auditor",
|
|
"owned_surface": "read-only C3 prompt, semantic gate, and regression design",
|
|
"forbidden_surface": "all writes, Git index, model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"required_skills": ["capability-tier-proof", "codex-benchmark-lab"],
|
|
"verifier": "focused challenger suite plus standalone verifier",
|
|
"status": "completed",
|
|
"handoff": "Shared runner/verifier predicate, fail-closed bounded regeneration, and natural measurement-only regression required."
|
|
},
|
|
{
|
|
"lane_class": "canary_dependency",
|
|
"actual_agent_id_or_name": "turn_audit_p1_auditor",
|
|
"owned_surface": "read-only exact-turn and whole-report safety audit design",
|
|
"forbidden_surface": "all writes, Git index, model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"required_skills": ["capability-tier-proof", "codex-benchmark-lab"],
|
|
"verifier": "focused challenger suite plus exact seventh-turn regression",
|
|
"status": "completed",
|
|
"handoff": "Validate the raw list before ID mapping and scan every submitted row for execution, tool, write, DB, and reference provenance."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"actual_agent_id_or_name": "receipt_main_format_auditor",
|
|
"owned_surface": "read-only failed-receipt preservation, current-main, and Ruff-format audit",
|
|
"forbidden_surface": "all writes, Git index, model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"required_skills": ["capability-tier-proof", "gh-address-comments"],
|
|
"verifier": "artifact hash lookup, git readback, and ruff format --check",
|
|
"status": "completed",
|
|
"handoff": "Preserve run 46b8b7834e35 under immutable names, merge current main before live proof, and format all four named files."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"actual_agent_id_or_name": "repair_diff_reviewer",
|
|
"owned_surface": "read-only semantic and whole-report bypass review of the repaired diff",
|
|
"forbidden_surface": "all writes, Git index, model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"verifier": "adversarial local evaluator probes plus focused challenger suite",
|
|
"status": "completed",
|
|
"handoff": "No remaining P1 bypass after combined causal-relation/gap matching, bounded mutation-claim grammar, two-phase report fetch/unlink, and exact fixture parity."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"actual_agent_id_or_name": "pr_delta_safety_reviewer",
|
|
"owned_surface": "read-only secret, path, retention, scope, format, and failed-receipt audit",
|
|
"forbidden_surface": "all writes, Git index, model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"verifier": "full merge-base delta scan, retained-artifact hashes, Ruff, and diff checks",
|
|
"status": "completed",
|
|
"handoff": "Zero private-path or high-confidence secret hits; failed artifacts are byte-identical and retention safe; four files are Ruff clean."
|
|
},
|
|
{
|
|
"lane_class": "integration_owner",
|
|
"actual_agent_id_or_name": "live_run_readiness_reviewer",
|
|
"owned_surface": "read-only current-main ancestry, dependency, cleanup, and live command readiness",
|
|
"forbidden_surface": "all writes, Git index, live/model/API calls, Telegram, DB mutation, GUI/GCP/x402",
|
|
"verifier": "runner and current-main readback",
|
|
"status": "completed",
|
|
"handoff": "Merge origin/main 33399bd, use a current dev environment after merge, require clean pushed ancestry, and verify fetch/unlink plus full cleanup."
|
|
}
|
|
],
|
|
"failed_run_preservation": {
|
|
"remote_run_id": "46b8b7834e35",
|
|
"source_sha256": "81d71f5db918f4be0e0308fa060fa244480739ac00cbfd1bef0f6fce07421d0a",
|
|
"receipt_sha256": "5969a84cec875c30fd316c793af3c5ec54a940bd175e5c672299bde95723aede",
|
|
"negative_controls_sha256": "656debed3d33bc4568b139945788da73913bee6eacaee897a93360ed6837db1f",
|
|
"retention_scan": "pass_zero_private_paths_or_high_confidence_secrets"
|
|
},
|
|
"local_repair_readback": {
|
|
"focused_tests": "30 passed",
|
|
"relevant_tests": "52 passed",
|
|
"full_tests": "1313 passed",
|
|
"ruff_format": "4 files already formatted",
|
|
"ruff_lint": "pass",
|
|
"current_runtime_tier": "partial_lower_tier_pending_fresh_current_main_live_run"
|
|
}
|
|
},
|
|
"parallelism_expected": 3,
|
|
"parallelism_actual": 3,
|
|
"active_workers": [],
|
|
"root_owned_running_rows": ["PR #152 repair integration, current-main merge, proof regeneration, and live run"],
|
|
"queued_runnable_rows": [],
|
|
"blocked_by_tooling_or_capacity": [],
|
|
"blocked_by_collision_risk": [],
|
|
"repair_action": "Repair both PR #152 P1s without weakening the semantic gate, preserve the failed live receipt, and prove one fresh current-main T2 no-send run."
|
|
}
|