필드 테스트 보고서 #44 & #45: 두 개의 NVIDIA NemoClaw PR이 오픈되어 업스트림에 병합됨
요약
NVIDIA NemoClaw의 업스트림에 두 개의 PR이 병합되었다는 필드 테스트 보고서입니다. macOS 환경의 온보딩 회귀 이슈를 해결하기 위한 테스트 계약 수리와 샌드박스 생명주기 진단 수리가 포함되었습니다.
핵심 포인트
- NVIDIA NemoClaw의 두 개 PR이 업스트림에 성공적으로 병합됨
- macOS 온보딩 과정에서 정책 프리셋 단계가 누락되는 회귀 버그 수정
- 정책 재개 계약(policy resume contract)에 대한 테스트 커버리지 강화
- 비어 있는 프리셋 선택이 적용된 것으로 간주되지 않도록 로직 검증
대상: NVIDIA/NemoClaw
필드 보고서: #44 및 #45
풀 리퀘스트 (Pull requests):
#7254 #7406
결과: 둘 다 업스트림 (upstream)에서 수락 및 병합됨
이 필드 노트는 NVIDIA NemoClaw의 업스트림에 수락된 Scarab 기원의 두 가지 패치(patch)를 다룹니다.
이번 필드 실행에는 세 개의 NemoClaw PR이 있었습니다.
두 개는 병합되었습니다.
한 개는 업스트림 작업이 해당 패치를 대체(supersede)함에 따라 병합 없이 종료되었습니다.
미결 상태로 남은 것은 zero(0)였습니다.
이것은 중요합니다.
PR 계정(accounting)은 거절된 작업, 수락된 작업, 대체된 작업, 그리고 유지 관리자가 처리해야 하는 오래된(stale) 작업을 구분해야 합니다. 대체된 PR은 실패한 수리가 아닙니다. 그것은 제안된 패치가 반영되기 전에 업스트림 상태가 해결된 것입니다.
핵심은 모든 PR을 전리품처럼 유지하는 것이 아닙니다.
핵심은 저장소(repository)가 올바른 상태에 도달하도록 돕는 것입니다.
병합된 이 두 패치는 두 가지 다른 형태의 수리를 보여줍니다:
- 온보딩 정책 재개(onboarding policy resume) 동작에 관한 테스트 계약(test-contract) 수리;
- 샌드박스 생명주기 준비성(sandbox lifecycle readiness)에 관한 런타임 진단(runtime diagnostic) 수리.
하나는 작았습니다.
하나는 상당했습니다.
둘 다 범위가 한정되어 있었습니다.
둘 다 업스트림에서 수락되었습니다.
필드 랩 기록: NemoClaw #6042
이 필드 테스트는 macOS 온보딩 회귀(regression) 보고서로 시작되었습니다.
보고된 증상은 대화형 온보딩 마법사(onboarding wizard)가 Sandbox Name 이후에 Policy Presets TUI 단계를 건너뛴다는 것이었습니다. 해당 이슈는 macOS 환경의 NemoClaw v0.0.70에서 발생했으며, 정책 프리셋(policy preset) 및 샌드박스 생성 단계가 누락되는 실패가 반복적으로 나타났습니다.
표면적으로는 마법사 흐름(wizard-flow)의 버그처럼 보입니다.
수락된 패치는 더 좁은 범위를 타겟팅했습니다.
그것은 정책 재개 계약(policy resume contract)을 대상으로 했습니다.
유효한 경계는 다음과 같습니다:
기록된 정책 선택(recorded policy selection) -> 필수 프리셋 조정(required preset reconciliation) -> 재개 결정(resume decision)
중요한 질문은 단순히 다음과 같은 것이 아니었습니다:
“마법사가 화면을 렌더링했는가?”
그것은 다음과 같았습니다:
“온보딩 흐름이 이미 적용된 것으로 간주할 수 있는 정책 프리셋 상태는 무엇인가?”
비어 있는 프리셋 선택(preset selection)은 적용된 정책 프리셋(policy preset)으로 간주되어서는 안 됩니다.
그리고 비어 있는 기록된 선택 이후에 나중에 Slack이 필수 사항이 된다면, 시스템은 해당 필수 프리셋을 추가하고 조정(reconciliation)을 요청해야 합니다.
해당 패치는 기존 동작에 대한 회귀 테스트 커버리지(regression coverage)를 추가했습니다.
패치는 다음 사항들을 검증했습니다:
- 비어 있는 프리셋 선택은 적용된 것으로 간주되지 않음
- Slack을 활성화하면 필수 프리셋이 추가되고 조정을 요청함
- 불가능한 프로덕션 상태(production states)에 기반한 테스트들을 제거함
프로덕션 동작은 변경되지 않았습니다.
그것은 의도된 것이었습니다.
이것은 광범위한 온보딩(onboarding) 재작성이 아니었습니다. 모든 macOS 온보딩 조건을 해결하겠다는 주장도 아니었습니다. 이는 더 큰 이슈와 관련된 하나의 경계(boundary)에 대한 테스트 계약(test-contract) 수리였습니다.
테스트는 리포지토리(repository)의 진실 표면(truth surface)의 일부입니다.
만약 테스트가 불가능한 상태를 인코딩한다면, 시스템이 실제로 생성하지 않는 동작을 지원하는 것처럼 보이게 만들 수 있습니다. 해당 테스트 경계를 수리하는 것 또한 수리(repair)입니다.
NVIDIA/NemoClaw#7254는 2026년 7월 25일에 병합되었습니다.
PR 제목은 다음과 같았습니다:
test(onboard): cover empty policy resume contracts
이 필드 보고서는 테스트 계약 수리가 업스트림(upstream)에 수용되었음을 주장합니다.
이것은 전체 온보딩 이슈가 해결되었다거나, 모든 정책 프리셋(Policy Presets) TUI 경로가 수정되었다거나, NVIDIA 유지 관리자들이 Scarab을 승인했다는 주장이 아닙니다.
주장은 더 좁은 범위입니다:
Scarab은 NVIDIA NemoClaw 온보딩에서 정책 재개(policy-resume) 선택 경계를 식별하였으며, 여기서 테스트는 비어 있는 선택에 대한 실제 프로덕션 계약과 필수 프리셋 조정(reconciliation)을 반영해야 했습니다. 그리고 사람이 제출한 회귀 커버리지 패치가 업스트림에 수용되었습니다.
필드 랩(Field Lab) 기록: NemoClaw #7387
이 필드 테스트는 NemoClaw의 Brev 샌드박스(sandbox) 경로에서 발생한 라이프사이클 진단(lifecycle diagnostics) 문제로 시작되었습니다.
가시적인 증상은 미묘했습니다:
샌드박스가 현재는 건강해 보일 수 있지만, 나중에 필요한 지속 가능한 라이프사이클 메타데이터(lifecycle metadata)가 여전히 누락되어 있을 수 있다는 점입니다.
런타임(runtime)은 살아있을 수 있습니다.
게이트웨이(gateway)는 응답할 수 있습니다.
샌드박스는 사용 가능한 것처럼 보일 수 있습니다.
그리고 등록된 라이프사이클 계약 (lifecycle contract)은 여전히 불완전할 수 있습니다.
그것이 경계입니다.
잘못된 가정은 다음과 같았습니다:
runtime healthy = lifecycle ready
그 가정은 너무 광범위했습니다.
런타임 상태 (Runtime health)와 라이프사이클 준비 상태 (lifecycle readiness)는 서로 다른 주장입니다.
런타임 상태는 다음과 같이 묻습니다:
“시스템이 지금 실행될 수 있는가?”
라이프사이클 준비 상태는 다음과 같이 묻습니다:
“등록된 시스템이 추후 라이프사이클 작업에 필요한 내구성이 있는 메타데이터 (durable metadata), 출처 (provenance), 드라이버 (driver), 이미지 (image), 대시보드 (dashboard), 게이트웨이 (gateway), 그리고 복구 상태 (recovery state)를 포함하고 있는가?”
시스템은 첫 번째 질문에는 '예'라고 답하면서도, 두 번째 질문에는 '아니오'라고 답할 수 있습니다.
이번 수정 전에는, 현재의 진단 (diagnostics) 기능이 누락된 라이프사이클 등록 메타데이터를 충분히 일찍 가시화하지 못한 채 라이브 런타임 (live runtime)의 건전성만을 증명할 수 있었습니다.
이는 운영자가 스냅샷 (snapshot), 재구축 (rebuild), 복구 (recovery) 또는 다른 라이프사이클 작업을 시작한 후에야 문제를 발견할 수도 있음을 의미했습니다.
패치(patch)는 등록된 샌드박스 (sandbox) 라이프사이클 메타데이터에 대한 읽기 전용 doctor 체크를 추가했습니다.
이 진단 도구는 런타임 상태 프로브 (runtime health probes)를 읽을 수 있는 상태라 하더라도, 레지스트리 항목이 불완전할 경우 경고를 보냅니다.
이는 누락되었거나 유효하지 않은 메타데이터 필드 이름을 보고합니다.
레지스트리 값 (registry values)을 반환하지는 않습니다.
캡처된 런타임 출력 (runtime output)을 출력하지도 않습니다.
자격 증명 (credentials)이나 민감한 값을 노출하지도 않습니다.
런타임 상태 증거를 라이프사이클 준비 상태 증거와 분리하여 유지합니다.
그 분리가 바로 이번 수정의 핵심입니다.
패치는 성급하게 복구(recover), 재구축(rebuild), 변형(mutate)하거나 추측하려고 시도하지 않았습니다.
대신, 추후 작업이 불완전한 라이프사이클 계약에 의존하기 전에 이를 가시화했습니다.
상태 확인 (health checks)이 잘못된 안도감을 줄 수 있기 때문에 이는 매우 중요합니다.
“모든 것에 접근 가능하다”는 것이 “시스템이 라이프사이클 작업을 수행할 준비가 되었다”는 것과 동일하지는 않습니다.
진단 명령은 이 두 가지를 하나의 '정상 (green)' 결과로 통합해서는 안 됩니다.
NVIDIA/NemoClaw#7406은 2026년 7월 25일에 병합되었습니다.
PR 제목은 다음과 같았습니다:
fix(doctor): warn on incomplete lifecycle registration
패치에는 라이프사이클 등록 진단 (lifecycle-registration diagnostics), 편집된 경고 동작 (redacted warning behavior), 문서, 그리고 집중 테스트가 포함되었습니다.
이 필드 보고서는 라이프사이클 등록 (lifecycle-registration) 진단 수정 사항이 업스트림 (upstream)에 수용되었음을 주장합니다.
이것은 모든 Brev 라이프사이클 문제가 해결되었다거나, 모든 패스트 패스 (fast-path) 등록 경로가 수정되었다거나, 혹은 NVIDIA 유지 관리자들이 Scarab을 승인했다는 것을 의미하지는 않습니다.
주장은 더 좁은 범위에 국한됩니다:
Scarab은 NVIDIA NemoClaw에서 라이프사이클 등록 준비 경계 (lifecycle-registration readiness boundary)를 식별했습니다. 현재의 런타임 상태 (runtime health)가 이후의 샌드박스 (sandbox) 라이프사이클 동작에 필요한 누락된 영구 메타데이터 (durable metadata)를 가릴 수 있는 상황이었으며, 사람이 제출한 수정 사항이 읽기 전용 doctor 진단을 통해 해당 조건을 가시화하도록 업스트림에서 수용되었습니다.
결합된 필드 결과
이 두 개의 필드 보고서를 종합하면 두 가지 서로 다른 수정 형태를 보여줍니다.
첫 번째는 테스트 계약 (test-contract) 경계를 수정했습니다.
두 번째는 런타임 진단 (runtime diagnostic) 경계를 수정했습니다.
하나는 작았습니다.
하나는 상당했습니다.
둘 다 업스트림에서 수용되었습니다.
이는 소프트웨어 수정이 단 한 가지 형태가 아니기에 유용합니다.
때로는 적절한 패치 (patch)가 프로덕션 코드 (production code)일 때가 있습니다.
때로는 회귀 테스트 커버리지 (regression coverage)일 때가 있습니다.
때로는 진단 (diagnostics)일 때가 있습니다.
때로는 문서화 (documentation)일 때가 있습니다.
때로는 업스트림에서 이미 해당 조건을 해결했기 때문에 PR을 종료하는 것일 수도 있습니다.
공통된 실마리는 패치 크기가 아닙니다.
공통된 실마리는 경계 규율 (boundary discipline)입니다.
PR은 탐색 과정이 되어서는 안 됩니다.
PR은 결과물 (receipt)이어야 합니다.
Scarab은 경계를 진단했습니다.
Codex는 패치를 준비했습니다.
NemoClaw는 변경 사항을 수용했습니다.
공개 사항 (Disclosure)
이 필드 보고서는 공개된 필드 테스트 노트, 공개된 이슈 (issue) 및 PR 기록, 그리고 공개된 Field Lab 기록을 바탕으로 AI 지원 편집을 통해 작성되었습니다. 진단 주장, 수정 경계 및 최종 문구는 사람이 검토했습니다.
Scarab Diagnostic Suite (SDS)는 독점 자산입니다. Field Lab은 공개 사례 기록, 이슈 링크, 검증 요약 및 주장 경계만을 공개합니다.
SDS는 증거를 찾습니다. 사람은 주장을 합니다. 유지 관리자 (Maintainers)가 결정합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기