ai-admin

요약. ai-admin: 자율 개선 회차 22회, 릴리즈 12건. 최근 릴리즈 v1.2.19 (자산 2개). 건강 D 14일: 릴리즈 12, 실패 0, 경고 7, 회귀 0

현황

저장소
https://github.com/hkjang/ai-admin
마지막 회차
2026-09-12 13:52 KST — • 기타 review held, PR open PR #21
최근 릴리즈
v1.2.19 — released · 자산 2개 (이전 v1.2.18: 2개) 전체 릴리즈 →

회차 이력

일시프로젝트결과
2026-09-12 13:52ai-admin검토 대기 review held, PR open PR #21
16파일 +1699/−41 · 테스트 3 — feat: 관리자가 화면에서 붙이는 방문 추적 스니펫과 nonce 기반 CSP
2026-09-11 01:05ai-admin검토 대기 review held, PR open PR #20
55파일 +866/−328 · 테스트 없음 — docs: 화면 캡처를 실은 사용자·관리자 가이드 정본으로 재구성
2026-09-10 18:42ai-admin배포 준비 완료 merged PR #19, released v1.2.18
4파일 +121/−5 · 테스트 2 — fix: reject unstorable locale/timezone instead of losing the whole save
2026-09-10 11:34ai-admin배포 준비 완료 merged PR #18, released v1.2.17
4파일 +107/−18 · 테스트 2 — fix: fail the dashboard instead of reporting a query failure as zero
2026-09-09 14:18ai-admin검토 대기 guarded files, PR open PR #17
3파일 +39/−2 · 테스트 없음 — ci: 테스트가 잡지 못하는 회귀를 검사하는 lint 단계 추가
2026-09-09 06:08ai-admin검토 대기 guarded files, PR open PR #16
7파일 +240/−21 · 테스트 3 — fix: report an SSO backend outage instead of an account problem
2026-09-08 23:54ai-admin배포 준비 완료 merged PR #15, released v1.2.14
7파일 +354/−29 · 테스트 3 — fix: abort a chat answer that was cut short instead of ending it cleanly
2026-09-08 18:54ai-admin배포 준비 완료 merged PR #14, released v1.2.12
3파일 +191/−29 · 테스트 1 — fix: save profile and preference changes instead of losing them
2026-09-08 15:40ai-admin검토 대기 guarded files, PR open PR #13
5파일 +254/−10 · 테스트 2 — fix: report an unverifiable credential instead of an expired session
2026-09-08 15:25ai-admin배포 준비 완료 merged PR #12, released v1.2.11
6파일 +227/−9 · 테스트 1 — fix: report database failures instead of state conflicts
2026-09-07 10:35ai-admin배포 준비 완료 merged PR #10 (approved), released v1.2.10
2026-09-07 08:20ai-admin검토 대기 guarded files, PR open PR #11
23파일 +235/−75 · 테스트 3 — fix: abort a chat answer that was cut short instead of ending it cleanly
2026-09-06 23:27ai-admin검증 실패 verify failed: secrets in diff
20파일 +166/−66 · 테스트 2 — fix: fail the dashboard instead of reporting a query failure as zero
2026-09-06 11:52ai-admin검토 대기 guarded files, PR open PR #10
23파일 +288/−59 · 테스트 3 — fix: keep hostile request headers out of the audit and login path
2026-09-06 01:30ai-admin검증 실패 verify failed: secrets in diff
21파일 +259/−59 · 테스트 2 — fix: stop reporting login backend failures as a wrong password
2026-09-04 23:57ai-admin배포 준비 완료 merged PR #9, released v1.2.9
2026-09-04 05:13ai-admin릴리즈 진행 중 merged PR #6, released v1.2.6, ASSETS MISSING
2026-09-03 21:43ai-admin릴리즈 진행 중 merged PR #5, released v1.2.5, ASSETS MISSING
2026-09-03 13:20ai-admin배포 준비 완료 merged PR #4, released v1.2.4
2026-09-03 01:36ai-admin배포 준비 완료 merged PR #3, released v1.2.3
2026-09-02 19:17ai-admin배포 준비 완료 merged PR #2, released v1.2.2
2026-09-02 13:17ai-admin병합 완료 merged PR #1, release released

비용·사용량

최근 30세션
시각프로젝트단계시간비용토큰 입력/출력종료
13:52ai-adminreview4분23$1.861.4M / 16Ksuccess
13:48ai-admin개선19분97$12.2616.4M / 71Ksuccess
03:33ai-admin릴리즈3분26$1.03891K / 8Ksuccess
01:05ai-adminreview6분41$2.512.4M / 21Ksuccess
00:59ai-admin개선20분139$13.0517.8M / 73Ksuccess
18:35ai-admin릴리즈2분23$0.97854K / 6Ksuccess
18:30ai-adminreview2분12$0.77418K / 8Ksuccess
18:27ai-admin개선7분48$2.752.7M / 23Ksuccess
11:26ai-admin릴리즈2분21$0.91801K / 6Ksuccess
11:21ai-adminreview3분25$1.11736K / 13Ksuccess
11:17ai-admin개선5분40$1.981.9M / 16Ksuccess
14:57ai-admin릴리즈2분23$0.88791K / 6Ksuccess
14:17ai-admin개선6분51$2.852.7M / 26Ksuccess
06:42ai-admin릴리즈2분24$1.06847K / 7Ksuccess
06:08ai-admin개선8분59$3.523.7M / 29Ksuccess
23:45ai-admin릴리즈2분16$0.77548K / 5Ksuccess
23:42ai-adminreview5분27$1.541.3M / 16Ksuccess
23:37ai-admin개선7분57$3.694.0M / 28Ksuccess
20:56ai-admin릴리즈2분22$1.11968K / 7Ksuccess
18:47ai-admin릴리즈2분19$0.81592K / 5Ksuccess
18:42ai-adminreview3분22$0.81547K / 8Ksuccess
18:39ai-admin개선9분49$3.583.5M / 34Ksuccess
15:40ai-admin개선10분71$4.194.8M / 33Ksuccess
15:18ai-admin릴리즈3분25$1.00877K / 7Ksuccess
10:28ai-admin릴리즈2분18$0.72460K / 7Ksuccess
08:19ai-admin개선9분65$4.915.7M / 35Ksuccess
23:27ai-admin개선7분72$4.665.6M / 29Ksuccess
11:51ai-admin개선12분68$4.855.5M / 37Ksuccess
01:30ai-admin개선10분77$5.616.8M / 36Ksuccess

아이디어 백로그 — 대기 14 / 전체 15

에이전트가 회차마다 재평가한다. 가치 높고 위험 낮은 대기 항목이 다음 회차 후보다.
아이디어가치/위험/크기상태메모갱신
합성 레거시 스키마·데모 시드를 scripts/의 재사용 가능한 SQL로 승격3/1/M대기docs/screenshots/README.md는 '합성 DB로 먼저 실행하라'고 요구하지만 그 DB를 만드는 방법이 저장소 어디에도 없다. integration_test.go의 syntheticLegacySchema 상수를 사람이 잘라 써야 한다. 이번에 추가한 방문 추적 탭 캡처도 이 도구가 있어야 가이드에 실을 수 있다. 대상 DB에 이미 스키마가 있으면 거부하는 가드를 함께 둔다.2026-09-12
loadGrants가 map 순회로 roles·permissions 순서를 무작위화2/1/S대기internal/auth/auth.go:250-256. SQL에 ORDER BY r.code,p.code가 있는데도 map으로 중복을 제거하면서 순서를 버려 /api/v1/auth/me의 roles·permissions 순서가 요청마다 달라진다. scan 순서가 이미 정렬돼 있으므로 map은 중복 확인용으로만 쓰고 slice에 append하면 된다.2026-09-12
listUsers의 q 파라미터에 길이 상한이 없음2/1/S대기internal/server/users.go:21. 감사·레거시·MCP 조회는 모두 200자 상한을 두므로 /api/v1/users만 예외다.2026-09-12
safeCSVCell이 tab·CR 선행 문자를 중화하지 않음2/1/S대기internal/server/audit_events.go:220-225. value[0] 한 byte에서 "=+-@"만 검사한다. OWASP가 함께 권고하는 0x09·0x0D를 처리하지 않는다.2026-09-12
decideApproval이 decision_comment를 trim·길이 제한 없이 저장2/1/S대기approval_action.comment에는 TrimSpace한 값을, approval_request.decision_comment에는 원문을 그대로 넣어 같은 결정의 두 기록이 달라진다.2026-09-12
loadProvider가 available_models JSON 파싱 실패를 조용히 무시2/1/S대기internal/server/providers.go:405의 _ = json.Unmarshal. chatCompletions·models·aiCatalog가 같은 결함. 실제 도달 경로는 DB 직접 수정 정도로 좁다.2026-09-12
채팅 중단 계약을 MCP SSE 등 다른 스트리밍 소비자에게도 적용2/1/S대기mcp.go의 스트리밍 쓰기 실패 처리를 점검해 relayChatBody와 같은 '끝까지 전달했는가' 계약으로 맞춘다.2026-09-12
oidcCallbackFailure의 실패 감사가 어떤 사용자였는지 남기지 않음2/1/S대기subject 해시 정도만 details에 남기는 범위가 적절하다.2026-09-12
dashboardProviders의 LIMIT 10이 목록이 잘렸음을 알리지 않음2/1/S대기11개 이상 등록 시 나머지 공급자가 화면상 미등록처럼 보인다. 63e0e08의 '부분 결과를 완전한 결과처럼 주지 않는다' 원칙의 나머지 절반.2026-09-12
방문 추적 탭 화면 캡처를 capture-screenshots.mjs에 추가하고 관리자 가이드 3.5절에 싣기2/1/S대기새 아이디어. 이번 회차는 캡처 도구가 요구하는 합성 DB 준비 비용 때문에 문서만 넣었다. 합성 시드 SQL 승격과 함께 하면 한 번에 끝난다.2026-09-12
clearSessionCookies가 Secure·SameSite를 setSessionCookies와 다르게 지움2/2/S대기auth_handlers.go. 브라우저는 대체로 이름·Path만으로 삭제를 처리하므로 실제 결함보다는 비대칭에 가깝다.2026-09-12
chat 프록시가 비스트리밍 응답의 upstream Content-Type을 그대로 전달2/2/S대기internal/server/providers.go. application/json 계열로 제한하면 스트리밍 경로와 대칭이 된다.2026-09-12
legacyRequestTrend·legacyTokenTotal 실패를 화면에서 구별할 수 없음2/2/M대기internal/server/legacy.go:64-97. stats에도 available 같은 플래그를 붙이려면 프런트엔드 표시 변경이 함께 필요하다.2026-09-12
trackingConfig가 SPA 셸 요청마다 system_setting을 조회함2/2/S대기새 아이디어. internal/server/tracking.go. 짧은 TTL 캐시나 applySettingsUpdate에서의 무효화로 줄일 수 있으나 셸은 no-cache라 요청이 드물어 실측 없이 미룸. 캐시를 두면 '끄면 즉시 좁아진다'는 계약의 지연을 문서에 적어야 한다.2026-09-12
관리자가 화면에서 붙이는 방문 추적 스니펫과 nonce 기반 CSP (캠페인 tracking-2026-09)4/2/L완료67715bb. internal/tracking 패키지 + tracking.* 설정 12개(기본 꺼짐) + SPA 셸에만 nonce 정책 + report-uri 차단 기록 + Momento 같은 오리진 프록시 + 시스템 설정 '방문 추적' 탭 + 관리자 가이드 3.5절·PDF. PostgreSQL 통합 테스트로 켜기→신고→허용→끄기 한 바퀴 검증.2026-09-12

원장 (에이전트가 남긴 기록)

2026-09-02

2026-09-02

2026-09-03

2026-09-03

2026-09-03

2026-09-04

2026-09-04

2026-09-06

2026-09-06

2026-09-07

2026-09-08

← 대시보드 · 교훈 모음