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
|
||||
}
|
||||
@@ -254,6 +254,6 @@
|
||||
"validate_facility_value_contracts.py": "91640e2a76cd6cc9186f7b85c0bf379b24b6cac0d48962815235ee628e7ae43e",
|
||||
"validate_plan.py": "23678227d9b3c556f1bd903f4b5b3147c4a82ce5085e10055481026803451b80",
|
||||
"validator_update_checks.json": "f997d0f3de2cea29550840b1d5cb23647d64f81329de46758551e2b6c8fecc27",
|
||||
"work_packages.json": "79eb70c4923c2bc12eae2cc290c2e0636553aa36db85d40ef17bb792cd05adfc"
|
||||
"work_packages.json": "cb309643ec7dd50d963da76730e6c56cf8baed1ce7473079659cd84cec7b7017"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7718,7 +7718,7 @@
|
||||
},
|
||||
"legacy_state": "planned",
|
||||
"state_scope": "package-level; completed means whole package accepted; partial implementation is not completion",
|
||||
"current_summary": "P13-03最終ゲーム記録は保存・未採用。許可済み支援RP13-01は修正2/2、最終1398aa2dに配置依存と負例fixture不良が残り未合格。追加修正を起動せず保留し、次候補P24-03へ順序変更。P13-01/P13-02未着手、内容資産の完成は未認定。",
|
||||
"current_summary": "P13-03既存最終修正を読取再監査。共有参照の全展開で旧提出7645c551と7施設/84スロット/施設外6分類が完全一致。現production53sourceのうちmain.gd1件のみSHA差、現版再検索の全観測はSHA以外一致。通常--verify-onlyは18負例を拒否するが未提出/未受入。支援RP13-01最終1398aa2dの正式55試験は入れ子Seatbeltで4failure/11error、通常ホスト診断でも負例fixtureの重複受入登録2errorが残る。隔離fixture差分案の該当試作1試験のみPASS、候補本体未変更。RP13の追加1回+限定ホスト正式試験、P13のsource更新追加1回を別々に確認中。全30/88、P13-03の全条件と2/2の現回数を維持。",
|
||||
"remaining_deliverables": [
|
||||
{
|
||||
"id": "P13-01",
|
||||
@@ -7752,15 +7752,27 @@
|
||||
"path": "docs/plans/original-completion-2026-10-02/checkpoints/p13-03-start-r01/commander.json",
|
||||
"sha256_at_integration": "ed5ea26576d3ed48428a645df31de4d9d824269873f58b9880b014bafa70bd87",
|
||||
"scope": "Actual Claude run decision, not completion."
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/checkpoints/runner-p13-continuation-r03/p13-existing-repair-preservation-r03.json",
|
||||
"sha256_at_integration": "a17f7fdfe6290a0598a1e689d1bd51ebd1fc3a7382e5aefbd24f0f2fd20e2bb6",
|
||||
"scope": "Full prior 7/84/6 semantic preservation and current applicable source pin check; detects main.gd mismatch, not unit acceptance",
|
||||
"current_game_acceptance_inferred": false
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/checkpoints/runner-p13-continuation-r03/diagnostic-disposition-r03.json",
|
||||
"sha256_at_integration": "f04230ab52d8cefbc4bcd7b9957f86b5131c9e5cd85b985a99952155410f69eb",
|
||||
"scope": "Formal RP13 failure, host diagnostic fixture errors, limited proposed-fixture test result; no production changes or formal acceptance",
|
||||
"current_game_acceptance_inferred": false
|
||||
}
|
||||
],
|
||||
"progress_summary": "原P13最終5ファイルは7施設・84使用枠・施設外6分類の証拠を内容保持保存し、未採用。root生成cache隔離後check_scopeはPASS、原P13はblocked再提出不可・修正2/2。限定復旧と全文保持の文書重複削減はユーザー承認済み。Claude認証回復後、同一支援RP13-01を実装。初回blockedの照合基準をCommander判断で具体化して隔離promptへ渡した。修正1の01fec4ffは正式Runner試験でnested Seatbelt拒否(4failures/9errors)、通常ホスト54PASSは診断のみ。修正2の最終1398aa2dは通常ホスト55試験に2サブケースエラー(負例fixtureの重複受入登録)。実本番CONTROLでrecovery_source_pinsを読取実行するとsnapshot_missing runner/core.py、隔離Git object依存が残る。支援修正上限2/2、正式独立レビュー・統合未実施。追加ワーカー/上限変更/本番適用なし。P13は保留し正式検証済みP24-03を次候補に選定。全体9/88のまま。",
|
||||
"progress_summary": "P13-03既存最終修正を読取再監査。共有参照の全展開で旧提出7645c551と7施設/84スロット/施設外6分類が完全一致。現production53sourceのうちmain.gd1件のみSHA差、現版再検索の全観測はSHA以外一致。通常--verify-onlyは18負例を拒否するが未提出/未受入。支援RP13-01最終1398aa2dの正式55試験は入れ子Seatbeltで4failure/11error、通常ホスト診断でも負例fixtureの重複受入登録2errorが残る。隔離fixture差分案の該当試作1試験のみPASS、候補本体未変更。RP13の追加1回+限定ホスト正式試験、P13のsource更新追加1回を別々に確認中。全30/88、P13-03の全条件と2/2の現回数を維持。",
|
||||
"remaining_gaps": [
|
||||
"RP13最終1398aa2dの本番配置依存を除去し、実際の欠落Git objectとpin不一致を検証する。負例fixtureの重複受入登録を修正。支援修正2/2のため追加実装は禁止範囲として保留。",
|
||||
"Runner自己試験は入れ子Seatbeltで正式失敗。信頼ホスト実行案は別途未承認。正式試験・別Claude独立レビュー・限定適用は未実施。",
|
||||
"原P13保存済み最終成果の限定復旧再提出、正確な提出SHAで正式検証・exact資料容量確認・独立レビュー・統合。原P13修正2/2と全条件を維持。"
|
||||
"RP13限定の正式ホスト自己試験環境と追加1回の直接許可後、fixture修正/全正式試験/別独立レビュー/統合・最終。現live CONTROLに凍結Git objectが欠落する配置条件は、実際に使用する受入済みCONTROLでsource pinsを実照合する。",
|
||||
"P13既存最終submitted結果の限定復旧提出。追加source更新1回の直接許可後、現在main.gd SHA/全出力receiptを同期。未許可で回数/state/sourceを変更しない。",
|
||||
"P13正確な提出SHAの正式--verify-onlyと全18負例、全資料のexact500000容量、別Opus独立レビュー、統合/最終、全条件台帳反映。"
|
||||
],
|
||||
"updated_at_jst": "2026-10-13T08:53:13.197406+09:00"
|
||||
"updated_at_jst": "2026-10-13T17:23:50.608597+09:00"
|
||||
}
|
||||
],
|
||||
"estimate_person_days_historical_2026_09_29": [
|
||||
@@ -7780,7 +7792,8 @@
|
||||
"要件別ログとソースハッシュを保存"
|
||||
],
|
||||
"cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.",
|
||||
"initial_revision_state": "planned"
|
||||
"initial_revision_state": "planned",
|
||||
"updated_at_jst": "2026-10-13T17:23:50.608597+09:00"
|
||||
},
|
||||
{
|
||||
"id": "P14",
|
||||
|
||||
Reference in New Issue
Block a user