5.5 KiB
5.5 KiB
Ariweb Suite 개발 지시 — 작성자: Oz · v0.3.9
작성자: Oz 작성일: 2026-10-29 이전 버전: v0.3.2(연동 편의성·도구 기본 설정·승인 요청, Oz) · v0.3.1 · v0.3.0 · v0.2.1 · v0.2.0 · v0.1.4 · v0.1.1 이번 개정: 로그인 터미널·텍스트 셸 개선, 모델 선택, 슬래시 명령, 미확인 버그 점검. HAL 0.3.2 → 0.3.9(지시된 버전). HAL 에만 적용하며 이전 지시의 모든 기준은 그대로다.
1. 사용자 요구(Oz 원문, 약화 금지)
- 로그인 터미널 기능 개선 — claude 로그인은 CLI 가 설치되어 있는 경우 바로 실행되고, 신뢰 여부를 입력하면 자동으로 연결된다. 따라서 무조건
claude --login으로 실행 후 브라우저 인증을 시행하는 구조는 작동하지 않을 수 있다. 이런 상황을 종합적으로 고려하여 CLI 로그인 인증을 개선하라. - TEXT Shell 기능 개선 — TEXT 입력이 가능한 Shell 은 단순히 화면을 보여 주는 수준으로는 여러 가지 텍스트 입력 상황에 대응할 수 없다. 이미 CLI 가 설치되고 로그인이 된 경우라면 shell 에서 Trust 를 선택해야 하는데, 지금의 텍스트 입력창은 사용자 입력을 받지 않고 코드를 받는 것만 가능하다. 보다 범용적으로 텍스트셸을 사용할 수 있게 만들어라. "Claude Code CLI(…)에 로그인되어 있지 않습니다 — 서버(HAL 실행 계정)에서 'claude login' 을 실행하세요" 메시지는 나오지만 이를 직접 수행할 text shell 이 작동하지 않는다.
- Text shell error 수정 — "열린 텍스트 셸이 2개입니다 — 먼저 닫으세요". "claude 상태" 를 누르면 위와 같이 나온다. 화면상 텍스트셸을 모두 닫았지만 시스템에서는 다르게 인식된다. 원인을 찾아 수정하라.
- LLM 모델 선택 기능 추가 — LLM 연동 후 모델을 사용자가 선택할 수 있게 수정하라.
- 컨텍스트창 기능 개선 — 컨텍스트 입력 창에서 LLM 모델에 명령을 할 수 있는 기본 명령어 셋을 지원하라.
/order형태로 명령을 전달하여 LLM 이 수행하게 하고, 필요한/명령어 셋은/help로 보여 주라. - 기타 미확인 버그 수정 — 현재 AI 연동 기능에서 미처 파악하지 못한 버그나 오작동 요소를 점검해 수정·개선하라.
2. 점검(구현 전 실제 확인, bear Claude Code 2.1.312 · Codex 0.162.1)
claude login은 로그인 명령이 아니다(대화형 세션에 "login" 입력). 실제 로그인:claude auth login(옵션--claudeai기본·--console·--sso), 화살표·Enter 로 고르는 TUI. bareclaude는 새 폴더에서 신뢰(trust) 질문. HOME(/home/master)은 이미 신뢰된 폴더.- 0.3.2 셸 모달의 "닫기"는 세션을 끝내지 않았고(유령 세션), 한도 계산이 상태 문자열만 보았다 → 3번 오류의 원인.
3. 필수 동작(계약)
- 셸 명령표: claude
login=auth login,login_console,logout=auth logout,status=auth status,version,interactive(bare); codexlogin,logout,status=login status,version,interactive. 작업 폴더는 HAL 실행 계정 HOME. 그 밖의 명령·옵션 문자열은 거부. 로그인 안내 문구는claude auth login과 HAL 의 텍스트 셸을 가리킨다. - 텍스트 셸은 원시 키(화살표·Enter·Esc·Tab·Ctrl+문자·단일 글자)를 바이트 그대로 전달하고 단말 크기(cols·rows)를 넘긴다. 브라우저는 순수 단말 에뮬레이터(
term.mjs)로 TUI 를 그린다(커서 이동·지우기·대체 화면·스크롤). 키 단추·줄 입력란·붙여넣기 제공. - 세션 한도는 살아 있는 프로세스만 세며 3개. 모달 닫기는 세션을 종료한다. 409 응답에 열린 세션 목록, "열린 셸 모두 종료", 세션 목록(열기·종료) 제공.
- 모델 선택: 연결 표·패널 상태 줄의 선택 상자(확인된 목록) →
PATCH model(목록 밖 거부)./model <이름>(개별 방). 방 목록이connection.models를 준다. - 슬래시 명령:
/help(목록, 모델 호출 없음) ·/tools·/model·/reset(즉시) //status/health/servers/server/jobs/job/releases/incidents/audit/dr/emergency/order <지시>/deploy/rollback/isolate/incident(모델에게 확장 지시). 원문은 기록, 모델은 확장 지시. 모르는 명령·인자 누락은 400. 확장 지시는 승인 규칙을 바꾸지 않는다. - 점검 수정:
reauth_required연결용 "로그인·재인증" 단추,window.open인자, 안내 문구.
4. TDD·검증
test/hal-ai-039.test.mjs를 먼저 쓰고 RED 확인 뒤 구현: 명령표·대화형·HOME·원시 키·크기 / 한도 3·끝난 세션 제외·kill-all / 단말 에뮬레이터(커서·지우기·CR·대체 화면·스크롤·SGR·OSC·줄 바꿈·이스케이프) / 모델 선택·/model/ 슬래시 명령 전반 / 화면·버전·문서. 기존hal-ai(12)·hal-ai-032(6) 유지. 전체 Suite. 배포 뒤 bear read-back.
5. 버전·배포
- HAL 0.3.9: package.json·README·VERSION_HISTORY 0.3.9 절·docs/HAL-AI.md §8. 커밋 → push → main 병합 → 깨끗한 main 빌드·verify → bear HAL 만 배포 → read-back. 다른 모듈은 배포하지 않는다.
6. 완료 조건
점검 결과(원인), 변경 파일, RED/GREEN·전체 테스트, 커밋·병합 커밋, artifact sha256, 배포 read-back, 운영자 조치, 알려진 제한을 보고한다.