docs: authorize shared hook repair and resume preparation plan
This commit is contained in:
@@ -927,3 +927,77 @@ Rollback은 active 실행이 없고 after hash와 현재 파일이 동일한 경
|
||||
검증 성공을 주장하지 않는다. 이미 ignore1줄을 commit했다면 Root의 exact inverse commit을
|
||||
사용하고 history reset은 하지 않는다. 타 owner 변경이 있으면 덮어쓰지 않고 반환한다.
|
||||
설정은 해당 workspace에 유지하며 feature 종료·설치 경로 변경 때 Root가 수명을 검토한다.
|
||||
|
||||
## E11. 실제 local 설정에 대한 정상 invocation
|
||||
|
||||
Root E10 최초 setup은 compiler 경로의 Hostx64/HostX64 cache 재검사에서 exit1이었다.
|
||||
[같은 preset 후속 configure](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configure-followup/result.json)는
|
||||
parent env4 unset 상태에서 exit0/1.656초를 기록했다. Actual 설정/adapter4명령은 local
|
||||
`mfe-workspace-msvc-ninja-debug`, MSVC19.51/pointer8/Debug, 동일 archive/병렬도1이다.
|
||||
이는 configure evidence이며 build/CTest 또는 prep 성공이 아니다.
|
||||
|
||||
Root가 사용자 후속 응답을 MFE-OQ-004의 제시된 canonical timeout 한 값·정상 재신뢰
|
||||
승인으로 해석했다. **Actual canonical Stop7500/enabled/trusted** 확인은 Root 소유이며
|
||||
현재 미관찰이다. 그 evidence와 최종 문서 checkpoint를 감사한 뒤에만 Coordinator가
|
||||
별도 status-only 할당 → 갱신 R11 actual control checkpoint → clean → 아래 새 invocation
|
||||
순서로 진행한다. 이번 Planning은 status나 설정을 바꾸거나 실행하지 않았다.
|
||||
|
||||
```powershell
|
||||
$ErrorActionPreference='Stop'
|
||||
$mfeRoot=(Get-Location).Path
|
||||
$mfePhase='mitc4-shell-feast-eigen-execution-prep'
|
||||
$mfeEvidence=Join-Path $mfeRoot '.harness/build/mitc4-eigen-evidence/prep/classifier-correction'
|
||||
$mfePython=Join-Path $mfeEvidence 'pytest-venv/Scripts/python.exe'
|
||||
$mfeBase=Join-Path $mfeEvidence 'python-runtime/cpython-3.11.15-windows-x86_64-none/python.exe'
|
||||
foreach ($mfeFile in @($mfePython,$mfeBase)) { if (-not(Test-Path -LiteralPath $mfeFile)) { throw 'Named Python missing' } }
|
||||
Get-Command uv -ErrorAction Stop | Out-Null
|
||||
$mfeNames=@('PATH','UV_PYTHON','UV_CACHE_DIR','UV_OFFLINE','TEMP','TMP','FEM_HARNESS_CODEX_SANDBOX','CMAKE_BUILD_PARALLEL_LEVEL')
|
||||
$mfeBefore=@{}
|
||||
foreach ($mfeName in $mfeNames) { $mfeBefore[$mfeName]=[Environment]::GetEnvironmentVariable($mfeName,'Process') }
|
||||
if ($null -ne $mfeBefore['FEM_HARNESS_CODEX_SANDBOX'] -and $mfeBefore['FEM_HARNESS_CODEX_SANDBOX'] -ne 'workspace-write') { throw 'Unexpected sandbox environment' }
|
||||
$mfeTemp=Join-Path $mfeRoot ('.harness/build/t-'+[guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfeTemp.Length -gt 80 -or (Test-Path -LiteralPath $mfeTemp)) { throw 'Fresh short Python TEMP required' }
|
||||
$null=New-Item -ItemType Directory -Path $mfeTemp
|
||||
$mfeExit=$null
|
||||
try {
|
||||
$env:PATH=(Split-Path $mfePython)+';'+(Split-Path $mfeBase)+';'+$mfeBefore['PATH']
|
||||
$env:UV_PYTHON=$mfePython
|
||||
$env:UV_CACHE_DIR=Join-Path $mfeEvidence 'workspace-python-cache'
|
||||
$env:UV_OFFLINE='true'
|
||||
$env:TEMP=$mfeTemp
|
||||
$env:TMP=$mfeTemp
|
||||
$env:FEM_HARNESS_CODEX_SANDBOX='workspace-write'
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL='1'
|
||||
& $mfePython -B -X utf8 -c "import sys; from pathlib import Path; from scripts import execute; from scripts.msvc_harness.config import load_config; r=Path.cwd(); c=load_config(r); assert c.cmake.configure_preset==c.cmake.build_preset==c.cmake.test_preset=='mfe-workspace-msvc-ninja-debug'; assert c.cmake.binary_dir==r/'.harness/build-ninja-msvc-debug'; e=execute.StepExecutor(sys.argv[1]); assert e._is_isolated_worktree(); assert not e._worktree_paths(); assert e._implementation_agent_settings()==('gpt-5.6-terra','xhigh'); e._preflight_repository(); print('Local preset and clean linked profile preflight valid')" $mfePhase
|
||||
$mfeExit=$LASTEXITCODE
|
||||
if ($null -eq $mfeExit) { throw 'Preflight exit unavailable' }
|
||||
if ($mfeExit -ne 0) { exit $mfeExit }
|
||||
& $mfePython -B -X utf8 -c "from scripts import execute; execute.StepExecutor.CODEX_TIMEOUT_SECONDS = 14400; execute.main()" $mfePhase
|
||||
$mfeExit=$LASTEXITCODE
|
||||
if ($null -eq $mfeExit) { throw 'Native Executor exit unavailable' }
|
||||
}
|
||||
finally {
|
||||
foreach ($mfeName in $mfeNames) { [Environment]::SetEnvironmentVariable($mfeName,$mfeBefore[$mfeName],'Process') }
|
||||
}
|
||||
exit $mfeExit
|
||||
```
|
||||
|
||||
기존 E8의 public preset assertion과 DevShell/클라이언트 shell tool 검색은 이 preflight로
|
||||
명시 대체한다. E10 user preset이 CMake child의 INCLUDE/LIB/PATH·병렬도1·영속 짧은
|
||||
TEMP를 제공하며 Python은 새 짧은 TEMP와 E7의 새 pytest basetemp를 쓴다.
|
||||
실제 local user/config/cache hash는 R11에서 확인하고 달라지면 보존·재검토한다.
|
||||
Actual prep gate 뒤 별도 main invocation은 위 `$mfePhase`만 `mitc4-shell-feast-eigen`으로
|
||||
변경한다. 모든 invocation은 workspace-write/terra/xhigh/유한14400이고 DFA flag가 없다.
|
||||
|
||||
Manual/registered의 configure/build/CTest는 **모두 E10.2의 local preset 명령**을 쓴다.
|
||||
E9 첫 clean-first/verbose 직렬 build에서 세 실제 discovery 호출·등록 identity를 확인하고,
|
||||
classifier37/focused136/full pytest, native configure/build/discovery/full CTest 및 registered
|
||||
Stop actual 성공을 모두 확보한다. 이미 통과한 focused를 근거 없이 반복하지 않는다.
|
||||
새 library/executable hash·mtime, fresh manual reference solve와 그 뒤 same-binary registered
|
||||
full의 정상 cache 재사용을 구분한다. Static reference 읽기/비교와 원본 직접 수정 없음,
|
||||
새 eigen comparison 미실행의 보고서 정정도 기존 owner 요구대로 남는다.
|
||||
|
||||
Source Correction1회는 소진됐고 자동 재시도·새 key·test 축소는 없다. 공유 Hook의 실제
|
||||
적용/신뢰가 확인되지 않으면 native를 시작하지 않는다. 실행 중 Root/Coordinator의 non-owned
|
||||
편집·commit을 멈추며 보고 시점 manual evidence와 이후 native/registered raw exit를
|
||||
Coordinator가 사후 대조한다. Canonical7500 확인을 실제 full 검증 성공으로 해석하지 않는다.
|
||||
|
||||
Reference in New Issue
Block a user