docs: record persistent preset configure verification
This commit is contained in:
@@ -53,8 +53,8 @@ Reference artifact와 공통 정책은 수정하지 않는다. 외부 solver 실
|
||||
| [io-schema.md](io-schema.md) | io-definition-agent | r2 | 기존 static 보존·eigen discriminant·N vectors/all-c evidence·self-check |
|
||||
| [io-mapping.md](io-mapping.md) | io-definition-agent | r2 | 책임·candidate 보존·TXT Value-only·27개 요구/11개 I/O 검증 obligation |
|
||||
| [implementation-plan.md](implementation-plan.md) | implementation-planning-agent | r2 | Prep 1/main 8개 step 및 실행 계획 gate pass |
|
||||
| [implementation-environment.md](implementation-environment.md) | implementation-planning-agent | r2 | E10 Root exact user-preset setup/configure-only·환경/TEMP 수명·전체명령 대응 감사 완료, 실제 적용은 다음 Root 할당 |
|
||||
| [implementation-recovery.md](implementation-recovery.md) | implementation-planning-agent | r2 | R10 실제 보존 완료; R12는 actual local setup 뒤 별도 R11 hash/선행 ignore 경로 갱신을 요구, status 미변경 |
|
||||
| [implementation-environment.md](implementation-environment.md) | implementation-planning-agent | r2 | E10 계획 감사 및 Root local 적용 완료; 최초configure1/후속env4-unset configure0·실제 graph 증거는 coordination |
|
||||
| [implementation-recovery.md](implementation-recovery.md) | implementation-planning-agent | r2 | R10 실제 보존 완료; actual E10 후 R12에 따른 R11 hash/선행 ignore 경로 owner 갱신은 이후 할당, status 미변경 |
|
||||
| [implementation-interfaces.md](implementation-interfaces.md) | implementation-planning-agent | r2 | 기존 확장점·API/source-test·vendor/state/transaction 책임 |
|
||||
| [implementation-verification.md](implementation-verification.md) | implementation-planning-agent | r2 | 요구27/NR27/I/O11·신규 test40·독립 oracle·fresh evidence·실제 validator |
|
||||
| [implementation-prep-evidence.md](implementation-prep-evidence.md) | implementation-agent | r2 | attempt4 classifier37/focused136 pass·manual Ninja discovery failure; 전체 gate 미통과 및 raw/registered 경계는 coordination 참조 |
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Owner: `coordinator-agent`
|
||||
- Contract revision: `r2` (사용자 승인 stabilization 개선·영향받는 정적/eigen 재검증 범위)
|
||||
- Stage: `implementation` (공유 Hook 결정 대기와 독립적인 E10 workspace 설정 준비)
|
||||
- Stage: `implementation` (E10 workspace 설정·configure 복구 완료; 공유 Hook 결정 대기)
|
||||
- Outcome: `needs-user-decision`
|
||||
- Next owner: `Root` (E10.1 exact local setup/configure-only; MFE-OQ-004는 별도 대기)
|
||||
- Next owner: `user` (기존 MFE-OQ-004 결정 대기; 질문 재발행 없음)
|
||||
- Attempt: `4` (actual Step0 error/history4; 이전 history3 보존)
|
||||
- Completion: 미완료
|
||||
- Failure classification: `environment`
|
||||
- Retry key: `mitc4-shell-feast-eigen|implementation|environment|r2`
|
||||
- Escalation class: `security-trust-boundary`
|
||||
- Blocker: canonical 공유 Hook1800→7500/재신뢰 미승인. 별도 Root outer Stop의 빈 dependency4 configure 실패로 workspace 환경 복구와 현재 R11 cache guard 재검토도 필요하다.
|
||||
- Blocker: canonical 공유 Hook1800→7500/재신뢰 미승인. Local configure 오류는 복구했으며 다음 native 전 actual 설정 hash/선행 ignore commit을 반영하는 R11 owner 갱신이 필요하다.
|
||||
|
||||
기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md), [프로젝트 ADR](../ADR.md),
|
||||
[SOLVER_AGENT_DESIGN](../SOLVER_AGENT_DESIGN.md), [FEATURE_DOCUMENTATION](../FEATURE_DOCUMENTATION.md).
|
||||
@@ -49,7 +49,16 @@ Root의 intake 시작 Git 조사에서는 worktree clean을 확인했다. 당시
|
||||
|
||||
이 결정과 독립적으로 Planning은 소유 세 문서의 [E10 정상 local setup](implementation-environment.md#e10-부모-환경과-독립적인-workspace-user-preset)과 [R12 stale hash 경계](implementation-recovery.md#r12-user-preset-setup-이후의-stale-hash-경계)를 반환했다. Coordinator는 owner/revision/명령·수명·소유를 대조하고 이 문서 delta를 pass로 수용했다. Owner 정적 감사는 PowerShell25 오류0/Python AST9/local links110 누락0/보호11hash·HEAD·error-history4 불변 및 actual adapter4 명령·7200 cap 대조 exit0이다. 기존 preset-contract test가 tracked public/example만 검사한다는 read-only 대조도 완료했으며 test 실행 증거로 취급하지 않는다.
|
||||
|
||||
다음 bounded assignment는 Root의 **E10.1 첫 PowerShell block 그대로의 local setup/configure-only**다. 선행 exact5 문서 checkpoint/clean과 활성 build/test 부재를 확인한 뒤 원본 bytes/hash를 backup한다. Root 소유 tracked 변경은 `.gitignore`의 `/CMakeUserPresets.json` 한 줄이고, ignored UserPresets/local config·새 짧은 TEMP·Ninja cache만 정확히 준비한다. Public preset/source/test/Hook/trust/reference/phase/기존 VS cache는 보존하며 parent 전체 환경은 finally에서 복원한다. 이후 env4 unset 상태로 CMake preset listing/실제 config parser/configure를 확인하고 보호 bytes·새 cache와 actual adapter graph를 기록한다. Build/test/Hook/nativephase 실행은 이 assignment에 포함하지 않는다. 성공 후 actual evidence/최소 문서 갱신과 Root exact ignore commit을 수행하며 실패하면 원시/변경 bytes를 보존해 반환한다. Root 실행 동안 Coordinator와 Planning은 tracked 편집/Git을 동결한다.
|
||||
완료된 Root bounded assignment는 **E10.1 첫 PowerShell block 그대로의 local setup/configure-only**였다. 선행 exact5 문서 commit `72f566cf44b006ca323bc747aff63dc0fffaf2bc`/clean과 활성 build/test 부재를 확인하고 원본 bytes/hash를 backup했다. Root 소유 tracked 변경은 `.gitignore`의 `/CMakeUserPresets.json` 한 줄이며 ignored UserPresets/local config·새 짧은 TEMP·Ninja cache만 준비했다. Public preset/source/test/Hook/trust/reference/phase/기존 VS cache와 parent 환경 복원 경계를 유지했다. Build/test/Hook/nativephase 실행은 이 assignment에 포함하지 않았고 실행 동안 Coordinator/Planning은 tracked 편집/Git을 동결했다.
|
||||
|
||||
| E10 실제 evidence | 결과와 한계 |
|
||||
| --- | --- |
|
||||
| [최초 exact setup](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/result.json) | exit1, `4.672`초. Preset/config·ignore1줄 생성 뒤 compiler 경로의 `Hostx64`/`HostX64` 차이를 CMake가 변경으로 인식해 cache를 재초기화했고 dependency cache를 잃어 configure가 실패했다. 원시 warning/실패와 보호8·canonical·HEAD 불변을 보존했다. |
|
||||
| [별도 bounded configure 후속](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configure-followup/result.json) | compiler cache와 preset 문자열 동일성을 먼저 확인하고 기존 설정을 그대로 사용하는 새 env4-unset process에서 동일 local preset configure1회만 할당했다. Exit0, `1.656`초, stderr0·보호11·HEAD 불변이다. 전체 setup/삭제/rollback/build/CTest는 반복하지 않았다. |
|
||||
| [설정/adapter 관찰](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configuration-observation.json) | dependency4 복원, Ninja/Debug/MSVC19.51·pointer8, 기존 Debug archive 경로, adapter configure/build/discovery/test4 명령의 `mfe-workspace-msvc-ninja-debug` 선택을 확인했다. Adapter plan 실행은 미실행이고 실제 solver library SHA `679db6...04d4`도 그대로다. |
|
||||
| Root exact ignore commit | `3cfbefb000dfbe8afc7a743213146ab7253cbbc0`; `/CMakeUserPresets.json` 한 줄, commit 뒤 clean. Canonical Hook/trust/phase/history4 변경0이며 prep 통과 또는 새 attempt를 뜻하지 않는다. |
|
||||
|
||||
실제 local UserPreset SHA-256은 `c4665b004be903c4beb913967143c0b0ac4da7e7d857a8c2f09e48754e865e9c`, config는 `47ea5f1da7f6c0312429ead5a3d6d1c71fa884c49e511c1608e7fcccd90d796d`, Ninja cache는 `4c2ad564d2f84deb1b8f5e055941ff18f8ba1826b4cd7f197f0bdfbdafe074b5`다. 설정의 짧은 TEMP는70자이고 dependency4를 parent env에 두지 않은 실제 configure가 성공했다. R12대로 이후 Planning이 R11의 stale hashes와 선행 `.gitignore` commit 허용 경로를 갱신하기 전 기존 checkpoint 명령을 실행하지 않는다. 이 정상 로컬 복구는 MFE-OQ-004의 공유 Hook 변경·재신뢰 승인이나 실제 native 전체 검증을 대신하지 않는다.
|
||||
|
||||
Root의 [별도 outer Stop 실패 관찰](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-stop-after-decision-docs/observation.json)은 실제 `cmake --preset windows-msvc-ninja-debug` configure exit1과 parent dependency4 unset을 기록했다. Preset의 env cache 치환으로 새 Ninja cache의 dependency4가 모두 빈 값이 됐으며 [당시 cache](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-stop-after-decision-docs/CMakeCache.txt) SHA-256은 `125a4dbd163c5a0a6d94bd03d3186790c41e6a0d8e0ed7b9c72f18fdf619d66e`다. 이는 phase attempt5가 아니며 history4와 미승인 상태를 유지한다. 이전 R11 cache hash는 stale이므로 정상 local setup의 실제 결과 전 재사용하지 않는다. `CMakeUserPresets.json`은 현재 없고 ignore되지 않았다는 Root 관찰도 계획 입력이다. 최소 MSVC 환경과 짧은 workspace TEMP의 지속 적용을 구성하되 pytest basetemp의 새 경로, test 자체의 고유 하위 경로와 기존 evidence 보존을 유지한다.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
- 작성 목적: MITC4 질량행렬·FEAST 구현 준비 중 발생한 Windows 빌드 환경 오류와 조치 기록
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Owner: `Root` (사용자 요청 설명문서)
|
||||
- 입력 계약: `r2`, `E8` 실행 결과와 `E9` 미실행 환경 계획
|
||||
- 입력 계약: `r2`, `E8` 실행 결과, `E9` 미실행 검증 계획과 `E10` 로컬 설정 결과
|
||||
- 작성일: 2026-09-06
|
||||
- 상태: MSVC 컴파일·링크 및 후속 CTest 통과 확인. 최초 GoogleTest discovery 오류와 wrapper 비정상 종료로 전체 준비 검증 미완료
|
||||
|
||||
@@ -118,6 +118,31 @@ Root의 configure 성공이나 후속 CTest 통과는 최초 manual build 실패
|
||||
|
||||
이 원시 로그는 해당 workspace의 ignored 검증 artifact다. 장기 workflow 상태와 후속 실행 판정은 [coordination.md](coordination.md)를 기준으로 한다.
|
||||
|
||||
## 설정 수명
|
||||
## E10: 자동 Stop의 의존성 경로 누락 해결
|
||||
|
||||
이 환경은 process 단위다. Root의 준비 명령이 종료돼도 다른 shell에 dependency 환경이 지속된다고 가정할 수 없다. 이후 개발 shell에는 같은 MSVC/dependency 환경을 적용해야 하며, feature 종료 때 local 설정의 유지·원상복구와 Root outer Stop 환경을 별도로 확인한다.
|
||||
초기 `E8` 설정은 process 단위였다. 설명문서 커밋 뒤 별도 자동 Stop에서는 부모 환경의 의존성 변수 네 개가 없었고, 공통 preset의 `$env{...}`가 cache를 빈 값으로 덮어써 `FESA_GTEST_SOURCE_DIR` 오류가 재발했다. [당시 cache와 관찰 기록](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-stop-after-decision-docs/observation.json)을 보존했다.
|
||||
|
||||
이를 해결하기 위해 workspace 전용 `CMakeUserPresets.json`에 `mfe-workspace-msvc-ninja-debug`를 만들었다.
|
||||
|
||||
- 공통 preset을 상속하면서 GoogleTest `C:/git/googletest`와 MKL/TBB/HDF5 설치 경로를 cache 값으로 직접 지정한다.
|
||||
- 정상 MSVC x64 개발 환경에서 얻은 INCLUDE/LIB 및 cl/rc/mt/Ninja 실행 경로를 담고, build/test가 configure 환경을 상속하도록 한다.
|
||||
- CMake child의 TEMP/TMP는 설정 수명 동안 전용 70자 경로를 사용하고 빌드 병렬도는 `1`로 지정한다. Python/pytest의 새 basetemp 규칙은 유지한다.
|
||||
- ignored `.harness/config.json`의 configure/build/test preset을 모두 같은 로컬 이름으로 맞춘다. `/CMakeUserPresets.json` 한 줄을 `.gitignore`에 추가해 `3cfbefb`로 커밋했다.
|
||||
|
||||
이제 해당 workspace에서는 부모 환경에 의존성 변수 네 개가 없어도 다음 명령이 설정을 읽는다. 전체 명령 대응과 복원 절차는 [E10 환경 문서](implementation-environment.md#e10-부모-환경과-독립적인-workspace-user-preset)에 있다.
|
||||
|
||||
```powershell
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
```
|
||||
|
||||
| 확인 항목 | 실제 결과 |
|
||||
| --- | --- |
|
||||
| 새 preset 목록·local config 해석 | 통과 |
|
||||
| 최초 E10 configure | exit 1. 의존성은 찾았지만 compiler 경로의 `Hostx64`/`HostX64` 표기 차이로 CMake가 cache를 재초기화했고, 내부 재configure에서 의존성 값이 사라짐 |
|
||||
| compiler 문자열 일치 확인 뒤 동일 preset의 configure 한 번 | exit 0, 1.656초, stderr 0 bytes; 부모의 의존성 변수 네 개는 미설정 |
|
||||
| 후속 cache·adapter 대조 | 의존성 네 경로, MSVC 19.51/x64, pointer 8 bytes, Ninja/Debug, Debug archive 경로 및 네 검증 명령의 local preset 일치 확인 |
|
||||
| E10의 production build/CTest | 미실행; configure 성공을 전체 구현 준비 통과로 대체하지 않음 |
|
||||
|
||||
근거는 [최초 실행 결과](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/result.json), [후속 configure 결과](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configure-followup/result.json), [최종 설정·명령 감사](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configuration-observation.json)에 있다. 기존 solver library hash, source, phase history와 원본 checkout의 Hook은 보존했다.
|
||||
|
||||
로컬 preset·설정·전용 TEMP는 workspace에 유지한다. 설치 경로 변경이나 feature 종료 때 설정 수명을 검토한다. 이 조치는 위 공유 Hook의 1800초 제한과 재신뢰 승인 문제를 해결한 것으로 처리하지 않는다.
|
||||
|
||||
Reference in New Issue
Block a user