LAXworkspace
알림 · 보고서
오프라인입력 0 (캐시 0%) · 출력 0
새 대화
세션 목록
⚠ 로컬 데몬이 오프라인입니다 — 메시지는 큐에 쌓였다가 데몬이 켜지면 처리됩니다.
박보검의 요청: [mcp-agents 이름 호출 폴백 구현 — 지금 착수] daemon 안정 상태(자가회생 정본화 완료). 이제 보유했던 후속작업 착수해줘. 문제: inter-agent MCP 채널(mcp-agents 서버)의 ask_agent/ask_team이 대상(to)을 **슬러그(agent-N)로만** 해석함. 방금 'to: 손석구'로 호출하니 "에이전트를 찾을 수 없음" 에러. LAX 워크스페이스 bridge쪽 ask_agent는 내가 이미 이름폴백 넣었는데(slug OR lower(name)), mcp-agents 서버는 별도라 미적용. 요청: 1. mcp-agents 서버의 to/대상 해석부에 **이름 폴백** 추가: 입력값을 slug 정확매칭 우선 → 없으면 lower(name) 매칭 → (가능하면) 옛 슬러그 별칭도. lax-db agents의 slug/name 기준. LAX bridge의 패턴(SELECT ... WHERE status='active' AND (slug=? OR lower(name)=lower(?)) ORDER BY CASE WHEN slug=? THEN 0 ELSE 1 END LIMIT 1)과 동일 정책으로 맞춰줘. 2. **실제로 구현·반영**하고(서버 재시작/재로딩 필요하면 daemon 죽이지 말고 그 부분만), 변경 파일·커밋·반영방법 보고. 3. 반영되면 내가 'to: 손석구'로 호출해 라이브 검증할 거야 — 검증 가능한 상태인지 알려줘. 4. 비가역/위험 있으면 표시. 진행상황: 슬러그 컷오버(agent-1~5)·자가회생 완료됨. 이번은 이름폴백만. 무상태 주의해서 자기완결 처리. daemon 안 죽이기.

확인 완료. 결론부터 보고합니다.

[무엇을 바꿨나]

/bridge/agent-config 리졸버에 이름 폴백 추가 — slug 정확매칭 우선 → 없으면 lower(name) 매칭.

  • 파일: src/app/bridge/routes.ts (L922~, /agent-config 핸들러)
  • 쿼리: WHERE status='active' AND (slug=? OR lower(name)=lower(?)) ORDER BY CASE WHEN slug=? THEN 0 ELSE 1 END LIMIT 1.bind(slug,slug,slug)
  • LAX bridge의 /bridge/enqueue·chat ask_agent와 동일 정책. exact slug 우선.
  • 커밋: d066c58 (fix(bridge): add name fallback to /bridge/agent-config resolver)

[왜]

ask_agent/ask_team(mcp-agents.mjs)은 DB 접근이 없습니다 — to/bridge/agent-config에 위임해 해석합니다. 그런데 이 엔드포인트만 slug-only로 남아 있었습니다(WHERE slug=?). 그래서 'to: 손석구'가 not-found. 폴백은 mcp-agents가 아니라 여기가 정답이고, 한 곳 고치면 ask_agent·ask_team 양쪽 다 해결됩니다.

[검증 결과]

  • 코드: 적용·커밋 완료. 변경은 컴파일 중인 enqueue 훅과 구조 동일(문자열 리터럴 + string bind 3개)이라 TS 안전.
  • 라이브 진단 확정 (production lax-dtb.pages.dev에 서명 read-only 프로브):
    입력 현재 production 결과
    slug agent-1 found ✅ (박보검)
    name 손석구 found:false
    name 변우석 found:false
    • 즉 버그 재현 확인 + 엔드포인트/서명 정상.

[반영 — 아직 미배포 / 단독배포 안 함] ⚠️비가역·대외영향

라이브 효과는 Pages 앱 재배포 후에만 납니다(mcp-agents는 원격 bridge에 위임하므로). 그런데 제가 단독 배포하지 않은 이유 — 둘 다 비가역:

  1. 워킹트리에 무관한 WIP 10개 파일이 떠 있습니다(form.tsx, chat, complaint, draft, brain 등 — feat/jigeup-workbench 진행분). npm run deploynpm run build워킹트리를 그대로 빌드해 production에 올립니다. 이름폴백 하나 때문에 미완성 WIP를 prod에 밀어넣는 건 위험.
  2. 배포 스크립트는 --project-name lax --branch=main(production)인데 데몬 bridge는 lax-dtb.pages.dev — 매핑이 코드상 100% 확인 안 됨.

권장 안전 배포 경로(트리가 준비됐을 때):

git stash push -k -- $(git diff --name-only)   # 커밋 안 된 WIP만 잠시 제외
npm run deploy                                   # 커밋된 상태(=내 fix 포함)만 빌드·배포
git stash pop

이러면 production에 커밋분 + 이름폴백만 반영되고 WIP는 안 나갑니다.

[라이브 검증 — 배포 후 가능]

지금은 production이 slug-only라 'to: 손석구'는 여전히 not-found입니다. 배포 완료 시점부터 검증 가능합니다. 검증 명령(위 프로브 재실행)으로 name 손석구 → found:true가 뜨면 OK이고, 그 뒤 직접 ask_agent(to:"손석구", ...) 호출이 통합니다.

[롤백]

  • 코드: git revert d066c58 (단일 커밋, 1회 revert로 원복).
  • 배포했다면: CF Pages 이전 deployment로 롤백(또는 revert 후 재배포).

daemon은 건드리지 않았습니다. mcp-agents.mjs도 무변경(폴백은 bridge쪽 단일 지점). 배포를 제가 실행해도 될지 — WIP 동반 배포 위험 때문에 트리 상태 확인/확정만 주시면 위 안전경로로 바로 반영하겠습니다.