Skip to content

fix(settings): 결재 알림 비대칭 정직 표기 — 게이트웨이 미가동+직통 봇 회사에 안내 한 줄 - #306

Merged
beyondworks merged 2 commits into
mainfrom
fix/tg-approval-gateway-notice
Aug 27, 2026
Merged

fix(settings): 결재 알림 비대칭 정직 표기 — 게이트웨이 미가동+직통 봇 회사에 안내 한 줄#306
beyondworks merged 2 commits into
mainfrom
fix/tg-approval-gateway-notice

Conversation

@beyondworks

@beyondworks beyondworks commented Aug 27, 2026

Copy link
Copy Markdown
Owner

배경

PR #305(브리핑 직통 봇 폴백)는 결재(approval)를 의도적으로 폴백에서 제외했습니다 — 직통 봇 폴러(startAgentTelegram)가 callback_query를 처리하지 않아 인라인 버튼이 죽은 버튼이 되기 때문입니다. 그 결과 게이트웨이가 꺼진(또는 미연결) 회사는 브리핑은 텔레그램으로 받는데 결재 요청은 못 받는 비대칭이 생기고, "왜 이건 오고 저건 안 오나" 후속 신고 후보였습니다. 러너 중립성 계열의 정직 표기 원칙에 따라 화면이 먼저 말합니다.

변경

  • 설정 → 텔레그램 카드(알림 칩 아래)에 warn 색 안내 한 줄:
    • ko: "결재 요청 알림은 회사 게이트웨이 연결이 필요합니다 — 크루 직통 봇으로는 결재 요청이 오지 않습니다."
    • en: "Approval requests need the company gateway — crew direct bots cannot deliver approval requests."
  • 표시 조건(전부 충족 시에만): ① 게이트웨이가 결재를 배달 못 하는 상태 — !(enabled && hasToken && chatId)(꺼짐·토큰 없음·미페어링 모두 포함, channelSends의 결재 배달 조건의 정확한 여집합) ② 페어링된 직통 봇 존재 — agentshasToken && paired ③ 결재 알림을 스스로 꺼 두지 않음(mutedEvents에 approval 없음 — 꺼 둔 사용자에겐 소음)
  • i18n ko/en 등록(다국어 상시 규칙, settings.conn.approvalNeedsGateway)

분리 검수 결과 반영 (code-reviewer, CHANGES REQUESTED → 필수 2건 해소)

근본 대안 검토 (판단 명시)

  1. 직통 봇 폴러에 callback_query 처리 추가 — 올바른 근본 해법. 다만 폴러 수신부가 현재 u.message만 처리하는 구조라, answerCallbackQuery+결재 실행 배선+setApprovalMeta의 봇별 메시지 귀속+담당 크루 슬러그 라우팅+행동 테스트가 필요한 별도 스코프. 이 PR에 겸사겸사 넣지 않고 후속 작업으로 분리(칩 등록, fix(gateway): 브리핑 텔레그램 직통 봇 폴백 — 게이트웨이 꺼진 회사의 루틴 무배달 해소 #305 머지 후 착수 전제).
  2. 버튼 없는 결재 카드 폴백(텍스트 결재 안내) — 기각. 직통 봇 폴러에는 parseApprovalText 배선도 없어서(수신 텍스트는 전부 크루 턴으로 적재) "승인 ap-xxx"를 보내면 결재 실행이 아니라 크루 지시로 들어갑니다. 결국 1번과 같은 폴러 수신부 확장이 전제라 싼 대안이 아니고, UX는 버튼보다 나쁩니다.

→ 지금은 정직 표기(이 PR), 근본 해법은 1번 후속.

검증

  • npm test 952건 전부 통과(fail 0) — 초안·재문구 각 시점에 실행
  • next build 통과
  • 시각 검증(격리 ARGO_ROOT + :3111 dev, Aside): 게이트웨이 꺼짐+페어링 봇 회사에서 ko·en·다크 표시 확인(스크린샷), 게이트웨이 연결 회사 미표시(DOM 판정), 재문구 후 ko/en 렌더 문자열 DOM 실측 일치
  • git merge-tree 시뮬레이션으로 fix(gateway): 브리핑 텔레그램 직통 봇 폴백 — 게이트웨이 꺼진 회사의 루틴 무배달 해소 #305 브랜치와 충돌 없음(초안 시점 기준)
  • 미검증: 실기기·발행본 반영(이 PR은 main 머지까지 — 상주/발행은 별도 산출물)

🤖 Generated with Claude Code

beyondworks and others added 2 commits August 27, 2026 17:43
PR #305(브리핑 직통 봇 폴백)가 결재를 의도적으로 제외해(직통 봇 폴러 callback_query 미처리 —
죽은 버튼, 분리 검수 LOW-2) 게이트웨이 없는 회사는 브리핑만 오고 결재는 안 오는 비대칭이 생겼다.
후속 신고("왜 이건 오고 저건 안 오나") 전에 화면이 먼저 말한다 — 러너 중립성 계열 정직 표기.

- 표시 조건: 게이트웨이가 결재를 배달 못 함(꺼짐·토큰 없음·미페어링) AND 페어링된 직통 봇 존재
  AND 결재 알림을 스스로 꺼 두지 않음(muted면 소음이라 숨김)
- i18n ko/en 등록(다국어 상시 규칙), warn 색
- 시각 검증: 격리 ARGO_ROOT+:3111, ko/en·라이트/다크 표시 + 게이트웨이 연결 회사 미표시(DOM 판정)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
M1: #305 머지 전에는 브리핑도 직통 봇으로 안 가므로(발송이 게이트웨이 단일 경로) 종속절이
거짓이 된다 — 머지 순서 의존을 없애고 검증된 참인 주절(결재는 직통 봇으로 안 온다)만 남긴다.
M2: #305 HEAD는 폴백을 4종(inbox 포함)으로 확장 — 열거는 낡을 수밖에 없어 아예 뺀다.
재검증: i18n·channel-mute 테스트 초록, 격리 :3111에서 ko/en 렌더 문자열 DOM 실측 일치.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@beyondworks
beyondworks merged commit 9e03af1 into main Aug 27, 2026
2 checks passed
@beyondworks
beyondworks deleted the fix/tg-approval-gateway-notice branch August 27, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant