Audit preserved P13 final repair and prepare bounded continuation fixes
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
# RP13-01継続の限定変更案(未承認・未適用)
|
||||
|
||||
対象は既存RP13-01のみ。P13-03最終修正は保存済みで新しいゲーム実装を起動しない。
|
||||
|
||||
1. 個別修正上限2→3、使用済み2を保持し、追加1回を同一登録タスクの試験fixture修正に使う。差分案はproposed-isolated-rejection-fixture.patch。既存のAC-001重複登録で意図した負例に到達できない問題だけを直す。別fixtureプロジェクトを使い、P13-01/02拒否、回数・状態保持、提出なしを実際に検証する。Root prototype r02の当該1試験はPASS、元workerの2ファイルは未変更。
|
||||
2. 正式runner-unitをRP13-01だけ信頼ホスト自己試験で実行する。登録argv(python -B -m unittest discover -s tests -p test_runner.py -v)、全55件以上、SHA/clean/scope/spec、実ログ・exit、独立レビュー、統合/最終を保持。外側Runner Seatbeltだけをこの試験で外し、試験内の実Seatbeltと実装workerのSeatbeltは保持する。providerや任意コマンドへの適用は禁止。親Runnerの通常verify/processを使い、config/contract/phase/candidateへの限定ガードとprovenanceを記録する。完成前にアダプター全文と制約を独立レビューへ渡す。
|
||||
|
||||
正式sandbox試験は55件中4 failure/11 error、通常ホスト診断ではfixtureに起因する2 errorだけが残る。ホスト診断を正式passedへ変換しない。現在の正式失敗receiptは保存し、認証・課金・並列・500000・ゲーム30/88・製品値を変更しない。
|
||||
|
||||
これは権限の一般化ではなく、上記project/task/validator/候補phaseだけの正式自己試験実行環境変更。既存のHOST_SELF_TEST_PROPOSAL.mdはこの範囲について未承認と明記している。既存許可は提出復旧と資料重複削減だけで、cap増加とホスト正式試験変更は含まれない。
|
||||
|
||||
承認後の順序: Opus開始判断→同じSol workerの限定修正→通常submit→限定ホスト正式validate→別Opusレビュー→Runner候補の統合/最終→P13既存submitted結果から復旧→P13正式validator/18負例→exact packet容量→別Opusレビュー→統合/最終→原成果台帳。
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
# P13-03 現行source適用性の更新案(未承認・未適用)
|
||||
|
||||
P13既存最終修正の共有参照を全展開し、旧提出7645c551と7施設/84スロット/6カテゴリの全記録が一致した。現在のproduction main c4cbc5feに対して53sourceを再照合し、scenes/main/main.gdだけが不一致。差分は既受入の選択manifest version型判定helperで、P13が検索する施設・通常入口・施設外内容観測は、SHAを除き全件一致する。原本/資産/ゲーム内容に新しい仕様や実装は不要。
|
||||
|
||||
提案はP13-03だけ個別修正上限2→3、使用済み2を保持し、追加1回で同じSol workerが台帳と読みやすい文書のmain.gd raw SHAを現版へ更新し、validation.jsonの出力hashを同期する。checker仕様や元分母は変更しない。差分案proposed-current-main-source-refresh.patch、照合結果current-main-refresh-proposal-metadata.jsonを参照。JSONは既存の一行直列化を維持するためpatchは大きく見えるが、論理変更はSHA1件のみ。
|
||||
|
||||
前提: RP13復旧候補が正式検証/独立レビュー/統合を満たした後、既存最終submitted結果を通常復旧提出し、このsource更新だけを同一タスクの追加repairとして実施する。新規登録、回数リセット、重複実装、ゲームsource変更、原本値決定は行わない。正式--verify-only/18負例、exact reviewer packet容量、別Opus独立レビュー、統合/最終、台帳反映は保持する。
|
||||
|
||||
状態処理の完成を内容制作の完成へ加点しない原P13-03の受入条件、全7施設/84スロット/6分類、unknown、全source証拠を維持する。現状は未提出・未受入で、権限や候補を勝手に変更しない。
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"argv": [
|
||||
"/opt/homebrew/Cellar/python@3.12/3.12.13_2/Frameworks/Python.framework/Versions/3.12/bin/python3.12",
|
||||
"-B",
|
||||
"-m",
|
||||
"unittest",
|
||||
"discover",
|
||||
"-s",
|
||||
"tests",
|
||||
"-p",
|
||||
"test_runner.py",
|
||||
"-v"
|
||||
],
|
||||
"cwd": "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109",
|
||||
"env_names": [
|
||||
"AGY_CLI_DISABLE_AUTO_UPDATE",
|
||||
"BROWSER_PROFILE_DIR",
|
||||
"BUILD_OUTPUT_DIR",
|
||||
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"HOME",
|
||||
"LANG",
|
||||
"LC_ALL",
|
||||
"LOGNAME",
|
||||
"MAC_CHROMIUM_TMPDIR",
|
||||
"PATH",
|
||||
"PORT",
|
||||
"PYTHONDONTWRITEBYTECODE",
|
||||
"TEMP",
|
||||
"TERM",
|
||||
"TEST_DATABASE_PATH",
|
||||
"TMP",
|
||||
"TMPDIR",
|
||||
"USER"
|
||||
],
|
||||
"execution": "sandbox"
|
||||
}
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
test_actual_sandbox_control_read_denied (test_runner.RunnerTests.test_actual_sandbox_control_read_denied) ... ok
|
||||
test_actual_sandbox_write_boundary (test_runner.RunnerTests.test_actual_sandbox_write_boundary) ... FAIL
|
||||
test_agy_pty_without_keychain_access (test_runner.RunnerTests.test_agy_pty_without_keychain_access) ... FAIL
|
||||
test_approval_required (test_runner.RunnerTests.test_approval_required) ... ERROR
|
||||
test_claude_broker_expiry_fails_closed (test_runner.RunnerTests.test_claude_broker_expiry_fails_closed) ... ok
|
||||
test_claude_broker_never_returns_refresh_token (test_runner.RunnerTests.test_claude_broker_never_returns_refresh_token) ... ok
|
||||
test_claude_profile_keeps_personal_keychain_denied (test_runner.RunnerTests.test_claude_profile_keeps_personal_keychain_denied) ... ok
|
||||
test_dependency_gate (test_runner.RunnerTests.test_dependency_gate) ... ok
|
||||
test_duplicate_acceptance_denied (test_runner.RunnerTests.test_duplicate_acceptance_denied) ... ok
|
||||
test_failed_test_blocks_review (test_runner.RunnerTests.test_failed_test_blocks_review) ... ok
|
||||
test_fixed_denominator_tamper_denied (test_runner.RunnerTests.test_fixed_denominator_tamper_denied) ... ok
|
||||
test_full_deterministic_flow_with_simulated_review (test_runner.RunnerTests.test_full_deterministic_flow_with_simulated_review) ... ERROR
|
||||
test_git_metadata_write_denied (test_runner.RunnerTests.test_git_metadata_write_denied) ... ok
|
||||
test_integration_environment_retry_requires_existing_review (test_runner.RunnerTests.test_integration_environment_retry_requires_existing_review) ... ERROR
|
||||
test_llm_budget_limit (test_runner.RunnerTests.test_llm_budget_limit) ... ok
|
||||
test_llm_concurrency_limit (test_runner.RunnerTests.test_llm_concurrency_limit) ... ok
|
||||
test_main_change_invalidates_approval (test_runner.RunnerTests.test_main_change_invalidates_approval) ... ERROR
|
||||
test_missing_acceptance_test_denied (test_runner.RunnerTests.test_missing_acceptance_test_denied) ... ok
|
||||
test_no_zero_cost_assumption (test_runner.RunnerTests.test_no_zero_cost_assumption) ... ok
|
||||
test_node_output_drained_to_protected_logs (test_runner.RunnerTests.test_node_output_drained_to_protected_logs) ... FAIL
|
||||
test_out_of_scope_edit_denied (test_runner.RunnerTests.test_out_of_scope_edit_denied) ... ok
|
||||
test_overlapping_file_scope (test_runner.RunnerTests.test_overlapping_file_scope) ... ok
|
||||
test_p13_document_dedup_leaves_existing_code_binary_and_other_paths (test_runner.RunnerTests.test_p13_document_dedup_leaves_existing_code_binary_and_other_paths) ... ok
|
||||
test_p13_document_dedup_preserves_raw_source_and_other_diffs (test_runner.RunnerTests.test_p13_document_dedup_preserves_raw_source_and_other_diffs) ... ok
|
||||
test_p13_document_dedup_rejects_missing_inconsistent_snapshots (test_runner.RunnerTests.test_p13_document_dedup_rejects_missing_inconsistent_snapshots) ... ok
|
||||
test_p13_recovery_accepts_matching_forward_hashes (test_runner.RunnerTests.test_p13_recovery_accepts_matching_forward_hashes) ... ok
|
||||
test_p13_recovery_rejects_bad_records_and_states (test_runner.RunnerTests.test_p13_recovery_rejects_bad_records_and_states) ... ok
|
||||
test_p13_recovery_rejects_other_p13_tasks (test_runner.RunnerTests.test_p13_recovery_rejects_other_p13_tasks) ...
|
||||
test_p13_recovery_rejects_other_p13_tasks (test_runner.RunnerTests.test_p13_recovery_rejects_other_p13_tasks) (task_id='P13-01') ... ERROR
|
||||
test_p13_recovery_rejects_other_p13_tasks (test_runner.RunnerTests.test_p13_recovery_rejects_other_p13_tasks) (task_id='P13-02') ... ERROR
|
||||
test_p13_recovery_rejects_source_pin_failure (test_runner.RunnerTests.test_p13_recovery_rejects_source_pin_failure) ... ok
|
||||
test_p13_recovery_uses_normal_submission_and_downstream_gates (test_runner.RunnerTests.test_p13_recovery_uses_normal_submission_and_downstream_gates) ... ok
|
||||
test_packet_capacity_guard_remains (test_runner.RunnerTests.test_packet_capacity_guard_remains) ... ok
|
||||
test_path_traversal_denied (test_runner.RunnerTests.test_path_traversal_denied) ... ok
|
||||
test_policy_tamper_denied (test_runner.RunnerTests.test_policy_tamper_denied) ... ok
|
||||
test_provider_credentials_are_not_inherited (test_runner.RunnerTests.test_provider_credentials_are_not_inherited) ... ok
|
||||
test_recover_releases_operation_not_task_locks (test_runner.RunnerTests.test_recover_releases_operation_not_task_locks) ... ok
|
||||
test_repair_cannot_bypass_counter (test_runner.RunnerTests.test_repair_cannot_bypass_counter) ... ok
|
||||
test_repair_limit (test_runner.RunnerTests.test_repair_limit) ... ok
|
||||
test_resource_lock (test_runner.RunnerTests.test_resource_lock) ... ok
|
||||
test_review_changes_blocks_candidate (test_runner.RunnerTests.test_review_changes_blocks_candidate) ... ERROR
|
||||
test_review_refresh_requires_new_candidate (test_runner.RunnerTests.test_review_refresh_requires_new_candidate) ... ERROR
|
||||
test_reviewer_packet_deduplicates_only_p13_03 (test_runner.RunnerTests.test_reviewer_packet_deduplicates_only_p13_03) ... ok
|
||||
test_reviewer_sees_committed_tests_outside_worker_scope (test_runner.RunnerTests.test_reviewer_sees_committed_tests_outside_worker_scope) ... ERROR
|
||||
test_runtime_isolation (test_runner.RunnerTests.test_runtime_isolation) ... ok
|
||||
test_schema_rejects_false_success (test_runner.RunnerTests.test_schema_rejects_false_success) ... ok
|
||||
test_secret_file_read_denied (test_runner.RunnerTests.test_secret_file_read_denied) ... ok
|
||||
test_secret_scope_denied (test_runner.RunnerTests.test_secret_scope_denied) ... ok
|
||||
test_spec_writes_denied (test_runner.RunnerTests.test_spec_writes_denied) ... ok
|
||||
test_symlink_denied (test_runner.RunnerTests.test_symlink_denied) ... ok
|
||||
test_timeout_is_not_pass (test_runner.RunnerTests.test_timeout_is_not_pass) ... FAIL
|
||||
test_untracked_out_of_scope_denied (test_runner.RunnerTests.test_untracked_out_of_scope_denied) ... ok
|
||||
test_validation_before_submission_denied (test_runner.RunnerTests.test_validation_before_submission_denied) ... ok
|
||||
test_validation_python_does_not_depend_on_shell_path (test_runner.RunnerTests.test_validation_python_does_not_depend_on_shell_path) ... ERROR
|
||||
test_worker_commit_denied (test_runner.RunnerTests.test_worker_commit_denied) ... ok
|
||||
test_worker_has_mandatory_outer_sandbox (test_runner.RunnerTests.test_worker_has_mandatory_outer_sandbox) ... ok
|
||||
test_wrong_candidate_denied (test_runner.RunnerTests.test_wrong_candidate_denied) ... ERROR
|
||||
|
||||
======================================================================
|
||||
ERROR: test_approval_required (test_runner.RunnerTests.test_approval_required)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 302, in test_approval_required
|
||||
self.candidate()
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 268, in candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-7j4lj471/state/test/runs/13abf23717bc46d6af102cd7a7509787-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_full_deterministic_flow_with_simulated_review (test_runner.RunnerTests.test_full_deterministic_flow_with_simulated_review)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 292, in test_full_deterministic_flow_with_simulated_review
|
||||
t=self.candidate()
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 268, in candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-et0phhsl/state/test/runs/cc9dc8f4ef9a45eba0d3a2b67abdf0df-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_integration_environment_retry_requires_existing_review (test_runner.RunnerTests.test_integration_environment_retry_requires_existing_review)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 306, in test_integration_environment_retry_requires_existing_review
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-ale6gvtj/state/test/runs/3a0f8b8706ad41889d250bd46152a27d-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_main_change_invalidates_approval (test_runner.RunnerTests.test_main_change_invalidates_approval)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 374, in test_main_change_invalidates_approval
|
||||
t=self.candidate(); self.r.approve("T001",t["candidate"],t["main_base"],"owner")
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 268, in candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-qp92ql5k/state/test/runs/f2b55e7065dc45bab577059b9b2a0631-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_p13_recovery_rejects_other_p13_tasks (test_runner.RunnerTests.test_p13_recovery_rejects_other_p13_tasks) (task_id='P13-01')
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 136, in test_p13_recovery_rejects_other_p13_tasks
|
||||
self.r.add(dict(self.contract, id=task_id))
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 456, in add
|
||||
require(not any(set(c["acceptance_ids"]) & set(contract["acceptance_ids"]) for c in existing), "同一受入項目の重複タスクは禁止")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: 同一受入項目の重複タスクは禁止
|
||||
|
||||
======================================================================
|
||||
ERROR: test_p13_recovery_rejects_other_p13_tasks (test_runner.RunnerTests.test_p13_recovery_rejects_other_p13_tasks) (task_id='P13-02')
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 136, in test_p13_recovery_rejects_other_p13_tasks
|
||||
self.r.add(dict(self.contract, id=task_id))
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 456, in add
|
||||
require(not any(set(c["acceptance_ids"]) & set(contract["acceptance_ids"]) for c in existing), "同一受入項目の重複タスクは禁止")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: 同一受入項目の重複タスクは禁止
|
||||
|
||||
======================================================================
|
||||
ERROR: test_review_changes_blocks_candidate (test_runner.RunnerTests.test_review_changes_blocks_candidate)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 387, in test_review_changes_blocks_candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-ek5j0rrq/state/test/runs/ccbdbadd674d471790b58dfccc000502-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_review_refresh_requires_new_candidate (test_runner.RunnerTests.test_review_refresh_requires_new_candidate)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 355, in test_review_refresh_requires_new_candidate
|
||||
self.candidate()
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 268, in candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-9gx5fk5x/state/test/runs/fbd882e8b90a4176bdc634ffbc2b8610-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_reviewer_sees_committed_tests_outside_worker_scope (test_runner.RunnerTests.test_reviewer_sees_committed_tests_outside_worker_scope)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 347, in test_reviewer_sees_committed_tests_outside_worker_scope
|
||||
self.r.validate("T001")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-klgcd5r6/state/test/runs/5240f0471f874dbbb4e4b6e4e93e49dd-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_validation_python_does_not_depend_on_shell_path (test_runner.RunnerTests.test_validation_python_does_not_depend_on_shell_path)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 319, in test_validation_python_does_not_depend_on_shell_path
|
||||
self.r.validate("T001")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-i2v7e5pu/state/test/runs/11dd6edca7c147729690e768086ed4ce-validation.json
|
||||
|
||||
======================================================================
|
||||
ERROR: test_wrong_candidate_denied (test_runner.RunnerTests.test_wrong_candidate_denied)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 370, in test_wrong_candidate_denied
|
||||
t=self.candidate()
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 268, in candidate
|
||||
self.submit(); self.r.validate("T001")
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 920, in validate
|
||||
self.verify(task_id,wt,task["submitted"],"validation")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 905, in verify
|
||||
require(passed,f"test_failed: {report}")
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/runner/core.py", line 50, in require
|
||||
raise GateError(message)
|
||||
runner.core.GateError: test_failed: /Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/.runtime/RP13-01/tmp/agent-control-test-p6512mu6/state/test/runs/261f9be981534152b1a1673f67d84a72-validation.json
|
||||
|
||||
======================================================================
|
||||
FAIL: test_actual_sandbox_write_boundary (test_runner.RunnerTests.test_actual_sandbox_write_boundary)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 472, in test_actual_sandbox_write_boundary
|
||||
self.assertEqual(permitted.returncode,0,permitted.stderr)
|
||||
AssertionError: 71 != 0 : b'sandbox-exec: sandbox_apply: Operation not permitted\n'
|
||||
|
||||
======================================================================
|
||||
FAIL: test_agy_pty_without_keychain_access (test_runner.RunnerTests.test_agy_pty_without_keychain_access)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 288, in test_agy_pty_without_keychain_access
|
||||
self.assertEqual(result.returncode,0,result.stderr)
|
||||
AssertionError: 71 != 0 : sandbox-exec: sandbox_apply: Operation not permitted
|
||||
|
||||
|
||||
======================================================================
|
||||
FAIL: test_node_output_drained_to_protected_logs (test_runner.RunnerTests.test_node_output_drained_to_protected_logs)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 278, in test_node_output_drained_to_protected_logs
|
||||
self.assertEqual(code,0)
|
||||
AssertionError: 71 != 0
|
||||
|
||||
======================================================================
|
||||
FAIL: test_timeout_is_not_pass (test_runner.RunnerTests.test_timeout_is_not_pass)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-validation-704ed109/tests/test_runner.py", line 482, in test_timeout_is_not_pass
|
||||
self.assertEqual(code,124)
|
||||
AssertionError: 71 != 124
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 55 tests in 17.264s
|
||||
|
||||
FAILED (failures=4, errors=11)
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"task_id": "RP13-01",
|
||||
"commit": "1398aa2de9f4ca0fd57f7db9d640e829b425553b",
|
||||
"kind": "validation",
|
||||
"checks": [
|
||||
{
|
||||
"id": "runner-unit",
|
||||
"exit_code": 1,
|
||||
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-runner-p13-recovery/runs/12a5a6d58b7c4c03a4e2f25dc04d4b89",
|
||||
"passed": false
|
||||
}
|
||||
],
|
||||
"passed": false
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"decision": {
|
||||
"action": "validate",
|
||||
"task_id": "RP13-01",
|
||||
"reason": "RP13-01 is submitted at 1398aa2de9f4ca0fd57f7db9d640e829b425553b with candidate=null and repairs at the 2/2 cap. Per the rules, completion comes only from the Runner's tests, a separate-session review, approval and integration, so the next step is the formal validate using the registered argv `python -B -m unittest discover -s tests -p test_runner.py -v` (validation_id runner-unit). Validate checks the submitted revision as-is. It does not change state, launch new workers, add repairs, edit the cap or relax any gate. If it passes, an independent review comes next, then integration (main integration needs owner approval). If it fails, repairs are already at 2/2, so I will stop and report to the owner rather than request another repair. Accepting this Runner fix does not complete P13-03. P13 recovery should go ahead only after integration, using just the approved limited recovery feature from the existing submission (worker e80646369ea746f196073e6539622218). The real packet must be recomputed, and the 318302-byte prototype is not a formal result.",
|
||||
"codex_model": "gpt-6.1-sol",
|
||||
"codex_model_reason": "This step is a fixed validation run: one unittest command against an already-submitted revision. It needs no new implementation or design reasoning, and the result is decided by the test outcome, not the model. Sol is the default and is good enough here while costing less time and usage. Astra would add no quality for this step. If the independent review later shows it is needed, I will consider Astra separately for that review."
|
||||
},
|
||||
"artifact": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-runner-p13-recovery/runs/6c1a85449ec2491586d34d678cadeb9b"
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"existing_candidate": "7645c55149d3bebf3ed602cf3039b15b28fa376f",
|
||||
"current_main": "c4cbc5feb25862433b5532df794958183af66aba",
|
||||
"changed_game_source": "scenes/main/main.gd",
|
||||
"actual_delta": "Accepted interface-selection version typing helper; +5 lines before restored actor selection, no changes to original special-facility catalog/entry searches",
|
||||
"all_facility_records_except_source_sha_equal": true,
|
||||
"nonfacility_records_except_source_sha_equal": true,
|
||||
"refresh_patch_bytes": 304749,
|
||||
"proposal_documents_hashes": {
|
||||
"difference-ledger.json": "bd9d5789eb4479479c256257a9d8022ab44496a8267d7322e0e4741b42b3544f",
|
||||
"DIFFERENCE_LEDGER.md": "bffb96b8613c96e5444f861e9d8dcd4acdd0a403eed819a3eefc5241e5783f7c"
|
||||
},
|
||||
"remaining_on_approved_worker_run": "Refresh validation.json output hashes with same checker; formal validation/review/integration still mandatory",
|
||||
"worker_source_modified": false,
|
||||
"proposal_only": true,
|
||||
"method": "Only replace old source raw SHA with current main raw SHA, preserving serialization and all existing data; canonical full scan proved exact equality of facility/nonfacility observations except this SHA."
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"source_candidate": "1398aa2de9f4ca0fd57f7db9d640e829b425553b",
|
||||
"host_diagnostic_command": [
|
||||
"python3",
|
||||
"-B",
|
||||
"-m",
|
||||
"unittest",
|
||||
"discover",
|
||||
"-s",
|
||||
"tests",
|
||||
"-p",
|
||||
"test_runner.py",
|
||||
"-v"
|
||||
],
|
||||
"host_diagnostic_exit": 1,
|
||||
"host_tests": 55,
|
||||
"host_failures": 0,
|
||||
"host_errors": 2,
|
||||
"host_error_scope": "Both subtests in test_p13_recovery_rejects_other_p13_tasks register existing AC-001 before reaching intended recovery rejection; duplicate acceptance guard correctly rejects them",
|
||||
"host_result_is_formal_acceptance": false,
|
||||
"prototype_r02_single_method_exit": 0,
|
||||
"prototype_r02_scope": "P13-01 and P13-02 each rejected by blocked-reason recovery guard; counters/state unchanged, no submission; distinct isolated test projects with same baseline and policy",
|
||||
"actual_candidate_modified": false,
|
||||
"formal_receipt_overwritten": false,
|
||||
"p13_readonly_preflight": {
|
||||
"exit": 0,
|
||||
"negative_mutations_rejected": 18,
|
||||
"acceptance": false
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"source_candidate": "1398aa2de9f4ca0fd57f7db9d640e829b425553b",
|
||||
"actual_file_sha256": "ede1e8fec604bf3894f02a2cca7cb6e8c3a2985b83fee0bbf3ac2e436287a187",
|
||||
"proposed_file_sha256": "16b34a090552f80b73ab8b8903d162418926949494cdf472f7dbbb529e665c87",
|
||||
"scope": "one negative test fixture method; isolated baseline prevents unrelated duplicate acceptance registration error; actual P13-01/02 rejection, unchanged repairs/state and no submission remain asserted",
|
||||
"product_or_worker_files_modified": false,
|
||||
"proposal_only": true,
|
||||
"prototype_r01": "Failed: mocked CONTROL fixture has no default policy file; r02 explicitly reuses unchanged test policy"
|
||||
}
|
||||
+289
@@ -0,0 +1,289 @@
|
||||
{
|
||||
"recorded_at": "2026-10-13T08:19:33.359914+00:00",
|
||||
"scope": "Read-only reuse/content-preservation and current applicability preflight; not formal acceptance",
|
||||
"existing_submitted_commit": "7645c55149d3bebf3ed602cf3039b15b28fa376f",
|
||||
"current_worktree_unsubmitted_ledger_sha256": "b7edd7fc8f5fa5602edc540a3eb8c4150b0268e7551c97a5c5ccc725ea5bb341",
|
||||
"full_shared_reference_expansion_matches_all_prior_facility_records": true,
|
||||
"full_shared_reference_expansion_matches_all_prior_nonfacility_records": true,
|
||||
"facilities": 7,
|
||||
"slots": 84,
|
||||
"categories": 6,
|
||||
"applicable_sources": 53,
|
||||
"stale_applicable_sources": [
|
||||
{
|
||||
"path": "scenes/main/main.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": false
|
||||
}
|
||||
],
|
||||
"source_checks": [
|
||||
{
|
||||
"path": "docs/traceability/original/BASELINE.txt",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/work_packages.json",
|
||||
"applicability": "base_git_blob",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-09-29/execution/original_facility_mapping.json",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/asset_inventory_reaudit/facility_usage_slots.json",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/asset_inventory_reaudit/inventory_summary.json",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/decisions.json",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "autoload/simulation_runtime.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/adult_private_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/cafeteria.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/black_market.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/chapel.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/cleaning_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/clinic.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/cold_storage.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/general_store.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/guild_counter.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/laundry.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/maintenance_workshop.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/mana_control_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/premium_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/private_bath.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/secret_tavern.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/staff_dormitory.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/tea_lounge.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/underground_guest_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/vip_private_salon.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/expansion/waste_processing.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/guest_corridor.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/guest_elevator.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/infrastructure/guest_stairs.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/infrastructure/service_stairs.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/kitchen.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/massage_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/public_bath.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/reception.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/rescue/infirmary.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/security_station.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/service_corridor.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/service_elevator.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/staff_door.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/staff_waiting_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/standard_room.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/tavern.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "data/facilities/warehouse.tres",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "scenes/main/main.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": false
|
||||
},
|
||||
{
|
||||
"path": "scripts/core/save_service.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/data/facility_catalog.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/events/event_definition.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/events/event_service.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "scripts/ui/event_log_dialog.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "tests/s2/test_facility_service.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "tests/s4/test_runtime_relationship_events.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
},
|
||||
{
|
||||
"path": "tests/s6/test_runtime_snapshot_serialization.gd",
|
||||
"applicability": "current_checkout",
|
||||
"matches_current_applicable_source": true
|
||||
}
|
||||
],
|
||||
"new_worker_started": false,
|
||||
"worker_source_modified": false,
|
||||
"formal_acceptance_claimed": false
|
||||
}
|
||||
+16
File diff suppressed because one or more lines are too long
+28
@@ -0,0 +1,28 @@
|
||||
--- a/tests/test_runner.py
|
||||
+++ b/tests/test_runner.py
|
||||
@@ -133,12 +133,19 @@
|
||||
self.recovery_fixture()
|
||||
for task_id in ("P13-01", "P13-02"):
|
||||
with self.subTest(task_id=task_id):
|
||||
- self.r.add(dict(self.contract, id=task_id))
|
||||
- self.r.state(task_id, "blocked", "scope_violation: fixture.txt")
|
||||
- with self.assertRaisesRegex(GateError, "blocked reason"):
|
||||
- self.r.submit(task_id)
|
||||
- self.assertEqual(self.r.task(task_id)["repairs"], 0)
|
||||
- self.assertEqual(self.r.task(task_id)["state"], "blocked")
|
||||
+ isolated = Runner.init("reject-" + task_id, self.repo,
|
||||
+ self.r.baseline, self.r.config["validations"],
|
||||
+ policy=self.r.config["policy"], state_root=self.root / "rejection-state")
|
||||
+ try:
|
||||
+ isolated.add(dict(self.contract, id=task_id))
|
||||
+ isolated.state(task_id, "blocked", "scope_violation: fixture.txt")
|
||||
+ with self.assertRaisesRegex(GateError, "blocked reason"):
|
||||
+ isolated.submit(task_id)
|
||||
+ self.assertEqual(isolated.task(task_id)["repairs"], 0)
|
||||
+ self.assertEqual(isolated.task(task_id)["state"], "blocked")
|
||||
+ self.assertIsNone(isolated.task(task_id)["submitted"])
|
||||
+ finally:
|
||||
+ isolated.db.close()
|
||||
|
||||
def test_p13_recovery_accepts_matching_forward_hashes(self):
|
||||
_, artifact, _ = self.recovery_fixture()
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"chunk_id": "3dc1b2",
|
||||
"wall_time_seconds": 0.000010458,
|
||||
"exit_code": 1,
|
||||
"original_token_count": 919,
|
||||
"output": "\n======================================================================\nERROR: test_p13_recovery_rejects_other_p13_tasks (test_runner_proposed.RunnerTests) (task_id='P13-01')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/runner-p13-test-fixture-prototype-r03/test_runner_proposed.py\", line 136, in test_p13_recovery_rejects_other_p13_tasks\n isolated = Runner.init(\"reject-\" + task_id, self.repo,\n File \"/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-implement/runner/core.py\", line 385, in init\n p = policy or read_json(CONTROL / \"policies/default.json\")\n File \"/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-implement/runner/core.py\", line 54, in read_json\n return json.loads(Path(path).read_text(encoding=\"utf-8\"))\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1256, in read_text\n with self.open(mode='r', encoding=encoding, errors=errors) as f:\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1242, in open\n return io.open(self, mode, buffering, encoding, errors, newline,\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1110, in _opener\n return self._accessor.open(self, flags, mode)\nFileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/41/j8fq6vqj2993cmyprl6p76pw0000gn/T/agent-control-test-er6_6cw3/repo/policies/default.json'\n\n======================================================================\nERROR: test_p13_recovery_rejects_other_p13_tasks (test_runner_proposed.RunnerTests) (task_id='P13-02')\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/runner-p13-test-fixture-prototype-r03/test_runner_proposed.py\", line 136, in test_p13_recovery_rejects_other_p13_tasks\n isolated = Runner.init(\"reject-\" + task_id, self.repo,\n File \"/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-implement/runner/core.py\", line 385, in init\n p = policy or read_json(CONTROL / \"policies/default.json\")\n File \"/Users/korizatou114/Projects/TheTree-managed-worktrees/runner-p13-recovery/RP13-01-implement/runner/core.py\", line 54, in read_json\n return json.loads(Path(path).read_text(encoding=\"utf-8\"))\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1256, in read_text\n with self.open(mode='r', encoding=encoding, errors=errors) as f:\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1242, in open\n return io.open(self, mode, buffering, encoding, errors, newline,\n File \"/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py\", line 1110, in _opener\n return self._accessor.open(self, flags, mode)\nFileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/41/j8fq6vqj2993cmyprl6p76pw0000gn/T/agent-control-test-er6_6cw3/repo/policies/default.json'\n\n----------------------------------------------------------------------\nRan 1 test in 3.412s\n\nFAILED (errors=2)\n"
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"actual_tasks": [
|
||||
{
|
||||
"id": "RP13-01",
|
||||
"state": "repair_pending",
|
||||
"submitted": "1398aa2de9f4ca0fd57f7db9d640e829b425553b",
|
||||
"repairs": 2,
|
||||
"reason": "test_failed: /Users/korizatou114/Library/Application Support/agent-control/the-tree-runner-p13-recovery/runs/6fc5dc653f934a01ad5d455c54a6143f-validation.json",
|
||||
"contract": {
|
||||
"id": "RP13-01",
|
||||
"title": "P13限定の提出復旧と新規文書資料削減",
|
||||
"requirement_ids": [
|
||||
"RP13-01"
|
||||
],
|
||||
"acceptance_ids": [
|
||||
"RP13-01"
|
||||
],
|
||||
"spec_ref": "docs/spec/RP13-01.json",
|
||||
"base_commit": "c88e2afbea3e1091a4cb048f49bd9891a6bdb869",
|
||||
"worker": "codex",
|
||||
"allowed_paths": [
|
||||
"runner/core.py",
|
||||
"tests/test_runner.py"
|
||||
],
|
||||
"depends_on": [],
|
||||
"resource_locks": [
|
||||
"runner-p13-code-isolated"
|
||||
],
|
||||
"validation_ids": [
|
||||
"runner-unit"
|
||||
],
|
||||
"max_repair_attempts": 2,
|
||||
"spec_sha256": "c7ce1e08eefe0bc48afb17dcfec014221102f88072f8d9a3ef9f95b4a2c6664a"
|
||||
},
|
||||
"project": "the-tree-runner-p13-recovery"
|
||||
},
|
||||
{
|
||||
"id": "P13-03",
|
||||
"state": "blocked",
|
||||
"submitted": "7645c55149d3bebf3ed602cf3039b15b28fa376f",
|
||||
"repairs": 2,
|
||||
"reason": "scope_violation: tools/__pycache__/check_p13_content_difference.cpython-314.pyc",
|
||||
"contract": {
|
||||
"id": "P13-03",
|
||||
"title": "内容差異の記録",
|
||||
"requirement_ids": [
|
||||
"P13-03"
|
||||
],
|
||||
"acceptance_ids": [
|
||||
"P13-03"
|
||||
],
|
||||
"spec_ref": "docs/spec/acceptance/P13-03.json",
|
||||
"base_commit": "e1a1651e15bbc9a0526ef31d0b2786feb20d8cd1",
|
||||
"worker": "codex",
|
||||
"allowed_paths": [
|
||||
"tools/check_p13_content_difference.py",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p13-03/**"
|
||||
],
|
||||
"depends_on": [],
|
||||
"resource_locks": [
|
||||
"p13-content-difference-record"
|
||||
],
|
||||
"validation_ids": [
|
||||
"p13-difference"
|
||||
],
|
||||
"max_repair_attempts": 2,
|
||||
"spec_sha256": "e1255835c1227e02bac42eb99b026b0fcbe69c272f9ed0b36199a2daf8d55c53"
|
||||
},
|
||||
"project": "the-tree-p13-03"
|
||||
}
|
||||
],
|
||||
"caps_or_worker_sources_changed": false,
|
||||
"goal_completed": false,
|
||||
"human_questions_pending": [
|
||||
"RP13-01 cap2→3 plus RP13-only trusted formal host self-test",
|
||||
"P13-03 cap2→3 for exact current source applicability refresh"
|
||||
],
|
||||
"formal_original_completed_count": 10,
|
||||
"original_total": 88,
|
||||
"no_partial_credit": true
|
||||
}
|
||||
Reference in New Issue
Block a user