# 오프라인 수동 패치 시험: 사용자 피드백과 개선 사례

갱신: 2026-11-04 14:29:17 KST · profile ltb1021 · 배포본 test-demo-20261103-r02

## 현재 진행과 기록 원칙

- 목표는 사용자 주도의 정상 배포 완료다. 설명/도구 개선은 이 목표를 돕는 범위에서 진행한다.
- 사용자 보고와 로컬 대조: ①검사/②stage/③PREPARED/⑤사용자Stop・apply완료. 11/4 14:17:58에VERIFIED/DONE, 14:20읽기조회에서대상5서비스running/예정image일치와health정의4개healthy를확인했다. Gateway는healthcheck미정의다. Codex는정지/적용을실행하지않았으며, 다음은⑥사용자브라우저/알람/미디어확인과⑦기록반출이다. 전체수동시험수용은아직완료하지않았다.
- 14:29추가교차확인: 사용자는test Web camera3/6/9를짧게실행후Stop했고셋다잘작동한다고평가했다. 읽기전용trace에서각1개run/running→stopped와error0을확인했다. 종료시각은3/6=14:25:20.343,9=14:25:22.373 KST. Event는각2/3/3건모두READY/SENT/HTTP200/오류없음이다. 종료로그의Source ID제거경고는있으나최종stopped를확인했으며원인추적은범위밖이다. 사용자일반시각평가와서버측미디어생성/전송을기록하되썸네일・클립개별브라우저재생수용으로확대하지않는다. 근거reports/user-browser-smoke-20261104T142917+0900.json. 추가Start/Stop/설정변경은하지않았다.
- 로컬 폴더를 USB 반입원으로 가정한다. 실제 USB 운반/VM 연결 검증은 이번 시험에서 제외한다.
- 기존 AI 서버의 엔진/누적 패치는 승인된 기존 Web 연결 유지를 기본으로 한다. 조회와 연결 변경은 별도이며, 새 설치/명시적 Web 주소 변경 때만 변경 절차에 진입한다. 예상하지 않은 기준 변경을 그대로 수용하는 뜻은 아니다.
- 성공을 위해 무결성/대상/공간/설정 충돌 검사를 우회하지 않는다. Runtime 변경·복귀·재시작을 Codex가 자동 실행하지 않는다.
- 모든 질답을 복제하지 않고 의미 있는 혼동, UX 피드백, 기술 오류를 사례ID로 기록한다. 같은 원인은 같은 ID로 이어간다.
- 사례별 연결: 사용자 피드백 → 단계/시각/근거 → 확인된 원인 또는 가설 → 승인 조치 → 결과 → 다음 버전 반영/재확인.
- 로그가 있으면 반출 자료를 먼저 읽고 필요한 범위의 test 직접 조회와 대조한다. 직접 조회가 있어야 알 수 있었던 정보는 로그 보완 후보로 남긴다.
- 최종 마감에서는 해결/우회/미해결·미검증을 구분하고 재사용 Owner/가이드에 필요한 요약만 연결한다. 현재 source 계약은 기존 OFFLINE_OPERATOR.ko.md를 따른다.

## OFFLINE-TEST-UX-001 · 실물 USB와 VM 반입 경로 혼동

- 종류: 환경/운반 절차 · 기록일 2026-11-03.
- 사용자 상황: 물리 데스크탑에 연결한 약2TB SSD가 test에서 보이는지 문의했다.
- 확인 근거: 당시 test의 lsblk에는 기존 root/data 가상 디스크만 있었고 lsusb에도 해당 SSD가 없었다. test는 QEMU VM으로 확인됐다.
- 원인 범위: VM으로 USB가 전달되지 않았을 가능성은 있으나, 물리 호스트 인식과 passthrough 설정을 직접 확인해 원인을 확정하지 않았다.
- 사용자 결정: 기존 전달 폴더를 USB 반입원으로 가정하고, 별도 staging으로 복사/재검증하는 방식으로 전환했다.
- 현재 결과: 로컬 폴더 모의 진행에 합의. 실물 USB 연결 문제가 해결된 것은 아니다. 새 source/설치 도구 변경은 없다.
- 다음 준비 시 반영 후보: 실물 USB 운반과 로컬 반입 모의를 시작 시 구분하고, VM은 USB 전달 여부를 먼저 확인하도록 안내한다. 실제 USB 운반 검증은 별도로 남긴다.

## OFFLINE-TEST-UX-002 · 지나치게 잘게 나뉜 안내와 Markdown 가독성

- 종류: 안내서/협업 UX · 기록일 2026-11-03.
- 사용자 피드백: 작은 검사마다 답변을 기다리는 방식보다 처음부터 끝까지 따라가는 배포 안내를 원했다. Markdown보다 HTML을 선호했다.
- 조치: 전체7단계, 반입 흐름도, 서비스 중단 경계, 복사할 명령, 정상/중단 조건, 복귀/로그 반출을 단일 HTML로 제공했다.
- 제공본: /workspace/architecture_docs/topics/contextra/20261103_offline_patch_test_r01/Contextra_Offline_Patch_Guide.html
- 제공본 지문: 8ca6470cc04d3c835bac186997a2ac36cfd1b0166815c9a2981386d3d0e0fde2
- 확인 근거: 화면3크기 × JavaScript 사용/차단6조건과 print layout, Bash12block 구문, 원본12파일 지문 보존을 확인했다. 실제 배포 명령은 실행하지 않았다.
- 현재 결과: 사용자가 HTML을 보며 순차 진행하고 막히면 질문하기로 했다. 실제 사용성/배포 성공 수용은 아직 대기다.
- 다음 준비 시 반영 후보: 전체 실행용 HTML을 기본 전달물로 검토하고, 정상 흐름은 사용자 자율 진행·오류/불명확한 단계만 질답하는 방식으로 재사용한다. 확인된 UX를 현장 적용 성공으로 확대하지 않는다.
- 반입 완료 후 추가 혼동: Codex가 "prepare 명령"이라고만 안내해 사용자는 기존 ct에 입력하는지, HTML③ 코드 블록을 터미널에 붙여넣는지 다시 질문했다. 현재 절차는 HTML③의 전체 코드 블록을 test Linux 터미널에서 실행하고, 확인 질문이 나온 뒤 PREPARE를 입력하는 것이다. 후속 안내는 실행 위치·복사할 블록·나중에 입력할 확인 문구를 구분하고, 기존ct와 독립 ct-offline을 혼용해 부르지 않는다. 현재 HTML/패키지 변경이나 명령 실행은 하지 않았다.

## OFFLINE-TEST-UX-003 · 현장 타이핑 최소화

- 종류: 도구 UX/현장 조작성 · 기록일 2026-11-03.
- 사용자 피드백: HTML 복사/붙여넣기는 현재 가능하지만 실제 현장에서는 직접 타이핑할 수 있어 긴 경로/해시/명령 입력을 최소화하고 싶다. ct를 준비한 목적도 이 조작성이다.
- 확인 사실: 독립 ct-offline에는 숫자 메뉴가 있지만, 동작1회 선택 후 종료하고 누락된 SHA/목적지 등을 질문한다. 현재 문서는 여러 직접 명령에 경로/지문을 반복해 넣는다. 기존ct 버전 자체가 타이핑 최소화의 근본 제약은 아니다.
- 개선 제안: 짧은 진입1회, 승인 반입원/대상 후보 선택, 경로/지문/작업ID의 검증된 재사용, 현재 단계와 다음 선택지를 안내하는 지속형 메뉴. 대상/정지/적용/복귀의 명시 확인은 유지한다.
- 11/4 14:06 구체화: 사용자는 같은 터미널의 STAGE/DIGEST 유지 여부를 기억하거나 새 터미널마다 재입력하는 안내가 아니라, 도구가 필요한 작업 문맥을 자동 복원/갱신하기를 원한다. 환경변수 자동화와 별개로 ct-offline apply 같은 짧은 명령과 최초 실행 후 반복 sudo 입력 없는 흐름을 원한다. 새 사례를 만들지 않고 같은 UX-003에 연결한다.
- 후속 설계안: shell 환경변수 대신 root 보호된 구조화 작업 기록을 기준으로 대상서버·작업ID·승인 package 경로/지문·단계·검증 기준을 재사용한다. 같은/새 터미널 모두 동일한 조회 경로를 쓰고, 후보가 여러 개이거나 기준이 바뀌면 번호 선택/변경 확인으로 전환한다. 이미 apply가 실행 중이면 중복 실행하지 않고 진행 중임을 안내한다. 저장된 경로/지문만 믿고 변조·충돌 검사를 생략하지 않는다.
- 짧은 명령은 PATH의 검증된 launcher와 작업 선택으로 별도 지원하는 안이다. 최초 bootstrap의 신뢰 확인/권한 획득은 필요하며, 현재 패키지에 이 기능이 있다고 표현하지 않는다. 기존ct의 config apply와 offline Runtime apply 의미도 구분해야 한다.
- 권한 추천안: root이면 그대로 실행하고 일반 계정이면 필요한 sudo 인증 후 배포 메뉴 프로세스만 관리자 권한으로 유지한다. 메뉴 안에서는 sudo를 반복 입력하지 않되, 새 터미널/재실행의 인증은 시스템 정책을 따른다. 전체 터미널을 영구 root로 만들거나 비밀번호 저장·NOPASSWD·sudo timeout 무제한화로 우회하지 않는다. 사용자 편의 요구에 대한 제안이며 보안 설정 변경 승인은 아니다.
- 11/4 후속 수용: 사용자가 위 작업 복원·짧은 명령·메뉴 범위 권한 방향에 동의했다. 현재 배포 시험 뒤의 개선 방향 수용이며 실행 중인 패키지를 수정하라는 승인은 아니다.
- 14:11 출력 구체화: 사용자는 "대상/설명이 맞으면 진행"하라고 하지만 JSON/경로/hash 등 출력이 길어 실제 확인이 어렵다고 했다. 기존 한글 요약 요구를 보강한다. 기본 화면은 대상서버, 현재 단계, 변경/보존 범위, 통과/주의/중단, 다음 행동과 기록 위치를 한 화면에 요약하고 상세 진단은 번호 선택 또는 별도 로그로 제공하는 안이다. 정상 기본값보다 변경점/주의를 우선 보여주고, 색만으로 의미를 전달하지 않는다. 사용자가 동의할 대상/중단 범위는 숨기지 않는다. 진행량은 검사 단계와 전체 적용을 구분하고 실제 byte/경과/최근 진행을 사용한다. 새 사례를 만들지 않으며 현재 출력은 변경하지 않는다.
- 11/4 추가 피드백: 정지 전 확인도 꼭 필요한 항목만 남기고 명령 나열 대신 한글 결과/번호 선택으로 진행하기를 원한다. 자동 점검 자체와 사용자가 수동으로 명령을 읽고 입력하는 절차를 구분한다. 전자는 유지하고 후자를 통합·축소하는 방향이다.
- 확인 범위: prepare는 대상/기반 image/설정 기준을 기록하고 apply도 다시 대조하지만, apply 검사는 서비스 정지 후다. 정지 전에 짧은 재점검을 하면 멈춘 뒤 공간/설정 충돌을 발견하는 상황을 줄일 수 있다. 대형 archive를 다시 읽는 단계가 아니다.
- 13:20 읽기 점검: 패키지 Host.snapshot/pending_clear와 image inspect로 약1.03초에 PREPARED·대상/기준 일치·pending 없음·이전/후보 image 보존·root34.44GiB/data381.32GiB를 확인했다. 대상5서비스 running, health가 정의된4개 healthy, Gateway health는 미정의다. 실제Web/Event 목적지와 서비스 중단 시점은 여전히 사용자 확인이 필요하다.
- 후속 UI 방향: 빠른 자동 점검 → 한글 통과/중단 사유 요약 → 대상/중단 범위와 사용자 선택. 현재 구버전ct의 메뉴8/10(config prepare/apply)을 이번 독립 ct-offline 패키지 prepare/apply와 혼동하지 않도록 한다. 통합 메뉴는 아직 구현하지 않았다.
- 11/4 13:43 추가 질답: 사용자는 "Web/알림 목적지 확인"의 의미와 확인 방법이 모호하다고 했다. 관리 연계 Manager와 Event 수신 주소가 원하는 test 연계용인지 확인하는 항목이라고 설명했다. 긴 설정을 직접 해석하게 하기보다 기존 승인 목적지와 현재 설정을 대조해 한글 서버명/일치 여부를 표시하는 개선으로 연결한다.
- 이번 목적지 확인: 서버 역할 기록의 test 대응Web=101, 기존101 접속 대상으로 등록된 host, 선택 office/main 프로필, 승인 Compose, 실행 중Sidecar의 Manager/Event 환경값을 읽기 대조했다. 두 주소의 host가101 대상과 일치하고 전체 환경값도 프로필/Compose/Runtime 간 동일했다. Event path는기존계약과 일치했다. private endpoint/인증값은 출력하지 않았고 Web 접속·Event 전송은 하지 않았다. 실제 브라우저 수신 수용은 적용 뒤 확인한다.
- 사용자 중단 승인: 이번 test 패치 시험에서 Contextra 일시 중단은 언제든 가능하다고 밝혔다. Contextra5개 소속 서비스 범위로만 반영하며 SSIMS·네트워크·SSH 중단 승인으로 확대하지 않는다. 실제 Stop/apply는 계속 사용자 수동이다.
- 신뢰 경계: 같은 USB 안의 SHA 파일만 자동으로 믿어서는 안 된다. 최초 외부 신뢰 검증이나 별도 승인한 서명 신뢰 체계를 유지해야 하며, 현재 도구에 서명 검증이 구현됐다고 표현하지 않는다.
- 상태: 기록/제안만 완료, 도구 구현·새 패키지 봉인·현장 UX 수용은 미실시. 실행 중인 기존 패키지를 수정하지 않는다.

## OFFLINE-TEST-UX-004 · 장시간 검사/복사의 무출력 상태

- 종류: 진행 표시/관측성 · 기록일 2026-11-03.
- 사용자 피드백: stage 실행 뒤 오랫동안 아무 출력이 없어 정상 진행인지 오류/정체인지 판단하기 어렵다. 퍼센트/진행 막대 또는 실행 중 표시를 원한다.
- 확인 근거: reports/user-stage-progress-20261103T164639+0900.json. 사용자 stage의 실제 Python PID1833726에 대해 두 번 읽기 전용 조회했다. rchar가28034998417→39011491985bytes, 같은 archive의 읽기 위치가5039456256→16015949824bytes로 증가했다.
- 16:46:39 관측: 첫 원본 검증 단계, 해당 read pass의 추정56.5%, attempt SELECTED/action stage/error_code null. 전체 작업의56.5%라는 뜻이 아니며 최종 무결성 통과를 뜻하지 않는다. 복사 전이므로 목적지 미생성은 현재 순서상 정상이다.
- source 원인: cli.main의 package.verify와 stage 내부 verify, copytree, 출력 verify는 진행 콜백 없이 동기 실행한다. SHA는1MiB 단위로 읽지만 사용자에게 진행량을 내보내지 않는다. 현재 source는 입력 전체2회+복사+출력 전체1회다.
- 개선 제안: 단계/현재 파일/처리byte·전체byte/%/속도/경과시간/마지막 진행시각. 정확한 진행률을 알 수 없는 작업은 실행 중·경과·최근 상태로 구분하고 거짓 퍼센트를 만들지 않는다. 명확한 실패는 종료code와 기록 위치를 표시한다.
- 추가 검토: 동일 명령 안의 중복 원본 검증을 줄일 수 있는지 검토하되, 복사 전/후 무결성과 변경 감지·대상 보호 검사를 제거하지 않는다. 자동 재시도/정체만으로 강제 중단을 추가하지 않는다.
- 17:19 추가 사용자 피드백: 현장 대기시간이 길어질 수 있어 반입/검증 단계의 생략 가능성을 질문했다. 현재는 원본을 보존하는 복사와 검증이지 이동/실제 설치가 아님을 구분했다. 이번 로컬 디스크 모의를 실제 USB 전송 속도 측정으로 취급하지 않는다.
- 대기시간 개선 방향: 중복 원본 검사1회 제거 가능성부터 검토하고, 복사와 입력 해시 계산의 결합은 별도 안전 검증 대상으로 둔다. 복사 후 목적지 readback을 단순 메모리 checksum으로 대체하지 않는다. 완료/불변이 검증된 로컬 작업본 재사용과 서비스 정지 전 사전 반입도 검토한다. 무검증 USB 직접 apply나 미완료 작업본 채택은 하지 않는다.
- 후속 평가: 전체 대기시간과 실제 서비스 중단 시간을 분리해 측정한다. 아직 단축을 구현/실측한 것은 아니며, 이번 정상 배포 테스트 이후 개선한다.
- 반입 완료 실측: 같은 attempt의 SELECTED는16:39:10.446370 KST, PACKAGE_VERIFIED는16:52:45.362534, DONE은17:51:32.172605다. 합계4341.726235초(약72분22초), 첫 원본 검사까지814.916164초(약13분35초)였다. 나머지 단계별 시간은 원장에 구분돼 있지 않아 임의로 배분하지 않는다.
- 17:54 완료 교차 확인: 사용자 출력과 원장 DONE 일치, 작업본 release/manifest 지문 일치, root 소유0700. 이는 사용자 stage의 전체 검증 통과를 기록/지문으로 대조한 것이며 Codex가64.3GiB 전체를 다시 검사한 것은 아니다. 로컬/data 반입 실측이지 실물 USB 전송 성능이나 서비스 중단 시간 측정이 아니다.
- 11/4 apply 읽기 관측: 시작14:02:48.481710, 14:11:10 기준 attempt는SELECTED/apply, 배포원장은PREPARED이고 오류 기록이 없었다. 사용자 process3032265의 rchar는41,005,883,537에서42,482,278,545bytes로 증가했다. 현재 analytics-candidate.tar 읽기 위치19,495,124,992bytes와 앞선 파일 합22,993,958,947bytes로 계산한 검사 read-pass 진행량은전체69,030,801,755bytes의약61.6%다. 전체 배포 진행률이나 무결성 통과로 표현하지 않는다. 근거는reports/user-apply-progress-20261104T141110+0900.json.
- 시간 추정: 앞선 전체검사13~14분 실측과 현재 약8분22초/61.6%를 근거로 검사 잔여약5~7분, 정상적인 적용/기동은그뒤추가수분으로 예상했다. 입력대기를뺀전체15~25분안팎은계획용추정이며최종실측/상한이아니다. 후보image가이미존재하던환경이므로이번시간을콜드load/청계산현장시간으로일반화하지않는다.
- apply완료실측: 14:02:48.481710 SELECTED →14:16:34.959171 PACKAGE_VERIFIED →14:17:58.328068 DONE. 전체909.846358초(약15분10초), 파일검사826.477461초(약13분46초). LOAD_INTENT14:16:42.477901 →VERIFIED14:17:58.317196는75.839295초(약1분16초)다. 사이의약7.5초에는확인입력/기준조회가포함되며입력시간만으로단정하지않는다. 실제서비스중단시간은이apply전체시간과별도다. 근거는reports/user-apply-completed-20261104T142020+0900.json.
- 후속최적화원칙: 필요없는중복검사는제거하고, 최초신뢰확인/반입완결성과필수대상・변경감지는유지한다. 긴검사와가능한반입준비를정지전에마치고정지직전에는빠른기준재대조를하는방향을검토한다. 구체적인검사재사용경계는UX-005에연결하며이번패키지에는반영하지않았다.
- 상태: 현재 진행 확인과 기록만 완료. 코드/패키지/실행 중 프로세스 변경 없음. 다음 개선 버전에서 구현/격리 검증이 필요하다.

## OFFLINE-TEST-UX-005 · 긴 검사 뒤 확인입력 취소와 반복 대기

- 종류: 확인입력/오류 안내/준비 대기시간 · 기록일 2026-11-04.
- 사용자 상황: 11/3 prepare 실행 뒤 오래 걸려 퇴근했고, 다음 날 CANCELLED를 발견해 다시 실행했다. 오래 PREPARE를 입력하지 않아 실패했는지 기능 문제인지 문의했으며, 불필요한 준비/검사를 줄이기를 원했다.
- 확인 사실: core.approved는 timeout 없는 input()을 사용한다. strip 후 정확히 PREPARE가 아니면 CANCELLED다. EOF/KeyboardInterrupt는 cli에서 별도 INTERRUPTED로 처리한다. 관련 core/cli/workflow3파일은 봉인 manifest와 일치했다.
- 11/3 원장: 17:56:03.283171 SELECTED →18:10:26.856753 PACKAGE_VERIFIED →18:10:26.953931 BLOCKED/CANCELLED. 검사 통과 뒤0.097178초 만에 취소됐으며 밤새 입력 대기 후 만료된 것이 아니다. 이 시도에서는 prepare 기준 원장이 생성되지 않았다.
- 원인 한계: 빈 Enter나 다른 입력이 미리 들어가 소비됐을 가능성은 있으나 입력값을 기록하지 않아 확정할 수 없다. 사용자의 의도적 취소나 입력 실수로 단정하지 않는다. deployctl doctor는 공통 기본 오류 안내이며 이번 CANCELLED의 원인 진단을 뜻하지 않는다.
- 사용자 추가 근거(13:13): 전일 오래 걸리는 동안 Enter를 여러 번 누르고 퇴근했다고 직접 설명했다. 미리 대기열에 들어간 빈 줄이 확인 질문에서 소비돼 즉시 취소됐다는 설명이 코드/시각과 일치한다. 원시 입력의 직접 증명은 아니지만 원인 가능성이 크게 좁혀졌다. 빈 Enter를 자동 승인 또는 즉시 취소로 쓰지 않고 재안내/대기를 유지하는 UX를 후속 후보로 기록한다.
- 11/4 재실행: 12:51:44.412837 SELECTED →13:05:48.408093 PACKAGE_VERIFIED →13:06:48.378802 DONE. 검사에 약14분4초, 전체 약15분4초였다. 검사 후59.97초에는 확인입력 대기와 실제 기준 조회/기록이 함께 포함돼 있어 각각의 시간으로 나누지 않는다.
- 결과: 사용자가 PREPARE를 입력해 성공했다고 보고했고, Codex도 phase PREPARED/대상/release/승인지문과 오류없음을 읽기 대조했다. 실행 중 코드 변경/취소/키 입력 주입/서비스 조작은 하지 않았다.
- 개선 제안: 준비 기준/변경 감지 기록 자체는 유지하되, 긴 전체검사 반복과 독립 입력 절차를 줄이는 설계를 검토한다. 잘못된 확인문구·빈 입력·명시적 취소·EOF를 구분하고, 같은 검증을 처음부터 반복하지 않는 확인 UX 및 상황에 맞는 다음 행동을 마련한다. 검증 결과 재사용의 유효성/변경 감지는 별도 안전 검증이 필요하다.
- 14:20추가합의: 사용자는빈Enter/오타뒤동일기능재실행때이미통과한긴검사를반복하지않고임시/영구검증기록을재사용하기를원한다. 같은프로세스의확인입력오류는재안내/입력대기로돌리고긴검사로되돌리지않는방향이다. 새터미널/재실행도UX-003의작업기록을통해재사용할수있게검토한다.
- 재사용안전경계: 같은터미널이라는사실이나PASS기록만으로무조건생략하지않는다. 승인package/검사정책/대상에묶인검증완료기록과보호된작업본의불변성・신뢰조건을확인할수있을때재사용한다. 파일변경/반입미완료/기록충돌/불변성확인불가때는필요범위를재검사한다. 크기・mtime만같다는이유로내용무결성을보장하지않는다. 현재대상・설정충돌・여유공간같은빠른사전검사는별도로유지한다. 승인확인입력을자동생략하거나확인실수를자동동의로바꾸지않는다.
- 상태: 이번 prepare는 성공 완료. UX 개선은 정상 배포 시험 뒤 별도 구현/검증으로 보류하며 보호 검사를 임의 생략하지 않는다.

## OFFLINE-TEST-UX-006 · 기존 Web 유지 기본과 저입력 조회/연결 변경

- 종류: 기본 동작/현장 조회·설정 UX · 기록일 2026-11-04.
- 사용자 의도: 새 AI 설치가 아니라면 기존 연결 Web 유지로 충분하다. 다만 현장에서 정보를 확인하거나 신규 연결/기존 Web IP 변경을 할 때 수동 타이핑을 최소화하는 기능·가이드가 필요하다.
- 현행 확인: 이번 package의 transaction은 기존 Compose를 복사해 Analytics image만 변경하므로 Web 연결 재지정은 기본 동작이 아니다. 현재 test의 ct 경로와 설치 source를 읽었으며 명령/설정 변경은 실행하지 않았다.
- 현재 가능한 조회: ct 실행 후1 상태/status에서 선택 Web 설정, Manager/Event, 앱 실행 설정, Web 후보를 볼 수 있다. 설정 조회는 실제 브라우저/알람 수신 시험과 다르다. 0으로 종료한다.
- 현재 가능한 선택: 25 주 Web 선택은 등록된 후보를 번호로 선택해 프로필에 저장한다. 선택만으로 Runtime/인증/실제 연결이 전환되지는 않는다.
- 현재 가능한 편집: 3 설정/edit은 대화형 편집이지만 Web IP, Manager origin, Event URL, AI ID 등 직접 입력이 남아 있고 네트워크 등 다른 설정도 함께 다룬다. 새 Web 후보 추가는 현재 profile file 편집이 필요하다. 신규 OS/AI 서버의 전체 설치를 이 메뉴가 자동 완결하는 것은 아니다.
- 실제 연결 변경: 계정/CA·등록/제어·Redis/미디어 허용 조건을 검토하고 config prepare/connect/apply 경로를 따로 거친다. connect는 실제 Web 요청이며 기존 token에 영향을 줄 수 있다. 기존ct 메뉴8/9/10과 이번 ct-offline 패키지 prepare/apply는 별개다.
- 보완 제안: 기본 선택은 기존 연결 유지, 별도 메뉴로 현재/저장/실효 연결 보기, 등록 후보 선택, 새 연결 추가·변경을 분리한다. 새 IP 등 꼭 필요한 값만1회 입력하고 연관 값은 승인 계약에 맞춰 제안·대조한다. 저장 전 변경 내역·영향·복귀 한계를 한글로 보여주고, 미리 승인하지 않은 연결/로그인/서비스 변경은 실행하지 않는다.
- 경계: 현재 test에 설치된 ct에서 확인한 기능이다. 청계산 구버전이나 ct가 없는 신규 서버에 동일 메뉴·호환성을 보장하지 않는다. 이번 patch 시험 중에는1 조회 외3/25/8~10의 연결 설정 작업을 시작하지 않는다. 현재 패키지와 HTML은 보존하고 통합 UX 구현은 시험 이후 별도 작업이다.
- 기존 참고: 20260930_field_operations_gamebook의C-01~C-03은 당시 연결/변경 절차 설명이다. 과거 현장 주소/전체 명령을 현재test에 그대로 적용하지 않는다.

## 이후 사례에 남길 최소 정보

사례ID / 유형 / HTML 단계 / 대략적인 시각 / 예상과 실제 결과 / 마스킹된 오류 code·관련 근거 /
확인된 사실과 미확정 원인 / 승인 조치 / 조치 결과 / 수정 버전 또는 보류 사유 / 재확인 상태.

비밀번호·token·인증 URI·개인키·전체 shell history·private 설정 복귀본은 이 기록에 넣지 않는다.
원래 실패 로그와 봉인 package/검사목록은 수정하지 않는다.
