Hide_D
5c448046b9
merge: Web Push 알림 시스템을 main에 반영한다
2026-08-23 13:25:02 +00:00
Hide_D
594949a635
merge: 최신 main 변경을 Web Push 작업에 반영한다
2026-08-23 13:17:00 +00:00
Hide_D
4eee4d2a61
feat: Gateway 웹 알림 설정과 PWA 구독 화면을 추가한다
...
계정 화면에서 profile별 9개 알림을 기본 꺼짐으로 설정하고 Android, iPhone 홈 화면 앱, Windows 브라우저용 service worker 구독 흐름을 제공한다. 전송 비활성 상태와 모바일 Chromium 경계를 E2E로 검증한다.
2026-08-23 13:16:14 +00:00
Hide_D
7bc3213b03
feat: 계정 Web Push 전달 기반과 사건 판정을 추가한다
...
게임 상태 변경과 같은 트랜잭션에 내구성 outbox를 기록하고 Gateway가 계정 설정과 기기 구독으로 fan-out하도록 한다. 전역 기본값은 비활성으로 유지하며 migration과 회귀 테스트를 함께 추가한다.
2026-08-23 13:16:07 +00:00
Hide_D
d7971a4714
merge: 원격 국가 수와 합성 재야 교정을 반영한다
2026-08-23 12:33:20 +00:00
Hide_D
f2ad161a65
merge: 국가 수와 합성 재야 교정을 반영한다
2026-08-23 12:33:00 +00:00
Hide_D
e9c715e231
fix(game): 국가 수 판정에서 합성 재야를 제외한다
...
Ref nation table에 없는 id=0 행이 정찰 차단과 월간 경매 난수 소비에 관여하지 않도록 모집단을 맞춘다. Ref의 maxnation 건국 표시 제한도 실행 제약을 늘리지 않고 명령표에 이관한다.
2026-08-23 12:31:53 +00:00
Hide_D
f858806295
merge: 유산 포인트 적립 조건 정합화를 main에 반영한다
2026-08-23 12:10:49 +00:00
Hide_D
2d31145994
merge: 최신 main을 유산 포인트 정합화 작업에 반영한다
2026-08-23 12:07:04 +00:00
Hide_D
18e0bed30a
fix: Ref 유산 포인트 적립 조건을 전면 정합화한다
...
능동 행동 31개 호출 지점과 소유자·NPC·통일 경계를 고정하고 사용자 저장값을 함께 갱신한다.\n\n최대 내정·임관, 천통 기여, 토너먼트, 숙련·베팅·랭크 계산과 환생 정산을 공통 계산기로 통합한다.
2026-08-23 12:06:59 +00:00
Hide_D
03086611b0
fix(migration): 재생성된 유산 저장소 자연키를 보존한다
2026-08-23 12:00:42 +00:00
Hide_D
3213f51125
merge: 이민족 종료 중립국 교정을 main에 반영한다
2026-08-23 11:59:22 +00:00
Hide_D
c454d1b289
fix(game-engine): 중립국을 이민족 종료 집계에서 제외한다
2026-08-23 11:58:16 +00:00
Hide_D
2f793a9518
merge: 단일 잔존 국가 임관 금지를 main에 반영한다
2026-08-23 11:10:46 +00:00
Hide_D
f1fa927ba3
merge: 최신 main을 자동 임관 금지 branch에 반영한다
2026-08-23 11:09:59 +00:00
Hide_D
88fb3ba4ca
merge: 이민족 단독 잔존 승리 종료를 main에 반영한다
2026-08-23 11:08:59 +00:00
Hide_D
4d424d16c6
fix: 단일 잔존 국가 임관 금지를 연결한다
...
마지막 도시 점령으로 국가가 삭제되면 destroy_nation 시나리오 이벤트를 같은 턴 경계에서 실행한다. Ref와 같이 잔존국 scout를 금지로 바꾸고 일회성 이벤트를 삭제하되 정책 변경 잠금은 설정하지 않는다.
2026-08-23 11:08:30 +00:00
Hide_D
2e891435a1
fix(game-engine): 이민족 단독 잔존 승리 종료를 보장한다
...
일반국이 모두 사라지면 남은 이민족 수와 무관하게 이벤트 기수를 종료한다. 통일 archive queue를 만들지 않는 경계를 단위 및 PostgreSQL 통합 테스트로 고정한다.
2026-08-23 11:08:13 +00:00
Hide_D
51ca5e9d70
merge: 서버 재개 게임 시계 보정을 main에 반영한다
2026-08-23 02:01:22 +00:00
Hide_D
260ead3bfa
merge: 최신 main 변경을 게임 시계 보정 브랜치에 통합한다
2026-08-23 02:00:58 +00:00
Hide_D
eaf7ef8c22
fix(engine): 서버 재개 시 게임 시계를 Ref 기준으로 보정한다
...
짧은 중단은 순서대로 따라잡고 장기 중단은 턴 간격별 Ref 한도를 넘어선 완전 턴을 일괄 이동한다. 장수와 미완료 경매 시각을 같은 트랜잭션에서 저장하고 표시 시각 지연을 복구한다.
2026-08-23 02:00:45 +00:00
Hide_D
0e3292f591
feat: 오래된 프런트엔드 빌드 자산을 안전하게 정리한다
...
현재·이전 release와 공유 asset 의존성, 진행 중 commit을 보호하고 24시간 유예 및 최신 2개 cache를 적용한다.
Gateway와 profile daemon의 기존 24시간 관리 주기에 artifact cleanup을 포함하고 fail-closed 회귀 테스트와 운영 문서를 보강한다.
2026-08-23 01:55:22 +00:00
Hide_D
ade543f936
perf: 프로필 프런트엔드 자산을 커밋 단위로 공유한다
...
정적 운영 빌드에서 프로필별 base와 API 설정을 런타임 JSON으로 분리하고, 공용 Vite 번들과 sourcemap을 한 번만 생성·게시한다. Preview와 기존 정적 artifact의 전환 호환 경계는 유지한다.
2026-08-22 17:54:43 +00:00
Hide_D
ecc8721238
test(gateway): 모든 프로필 DB URL 회귀를 검증한다
2026-08-22 16:55:03 +00:00
Hide_D
a56588dac6
merge: 프로필 런타임 DB URL 수정을 반영한다
2026-08-22 16:06:25 +00:00
Hide_D
c2e1b8bf94
fix(gateway): 프로필 런타임 DB URL을 고정한다
...
game API와 daemon, worker PM2 정의에 인코딩된 profile DATABASE_URL을 명시한다. migration 성공 뒤 runtime과 rollback이 raw POSTGRES 비밀번호로 실패하는 경로를 회귀 테스트한다.
2026-08-22 16:06:14 +00:00
Hide_D
cb43750426
merge: 프로필 DB URL 인코딩 보존을 반영한다
2026-08-22 15:51:55 +00:00
Hide_D
69b0d7e12b
merge: 최신 main 변경을 프로필 DB URL 수정에 반영한다
2026-08-22 15:51:07 +00:00
Hide_D
4b39be5997
fix(gateway): 프로필 DB URL 인코딩을 보존한다
...
Gateway orchestrator의 profile migration과 runtime이 GATEWAY_DATABASE_URL에서 schema만 바꾸도록 통일한다. 특수문자 비밀번호를 raw POSTGRES 값으로 재조합하지 않는 DEPLOY 회귀 테스트를 추가한다.
2026-08-22 15:50:53 +00:00
Hide_D
54e1ba644a
merge: 징병과 모병 추가 통솔 수정을 반영한다
2026-08-22 15:48:30 +00:00
Hide_D
c17861dd4b
fix(logic): 징병과 모병에 추가 통솔 상한을 반영한다
...
병력 여유 제약이 실제 통솔 계산기를 사용하도록 연결하고, 명마 보정이 적용되는 징병·모병 회귀 테스트를 추가한다.
2026-08-22 15:47:56 +00:00
Hide_D
89eadb4834
merge: Gateway 데이터베이스 URL 회귀를 바로잡는다
2026-08-22 10:51:38 +00:00
Hide_D
eb77ea8e7e
fix(gateway): 전용 데이터베이스 URL을 우선 사용한다
...
릴리스 프로세스가 전달한 GATEWAY_DATABASE_URL을 API와 orchestrator가 직접 사용하도록 고친다. 원시 POSTGRES_* 재조합으로 특수문자 비밀번호가 깨지는 회귀를 테스트한다.
2026-08-22 10:51:29 +00:00
Hide_D
34101e33b0
merge: Gateway 빌드 격리 경계를 바로잡는다
2026-08-22 10:29:00 +00:00
Hide_D
57c1d03ff6
fix: Gateway 빌드와 마이그레이션 실행기를 분리
...
release build는 구성된 격리 builder로 보내고 Gateway DB migration은 runtime의 로컬 runner에서만 실행한다. 원격 build와 로컬 migration 명령 경계를 회귀 테스트로 고정한다.
2026-08-22 10:28:16 +00:00
Hide_D
f694e2db9d
merge: 전쟁 기간 양방향 동기화를 반영한다
2026-08-22 10:28:13 +00:00
Hide_D
ed284e3d45
merge: 최신 main을 전쟁 자동 종전 수정에 반영한다
2026-08-22 10:23:19 +00:00
Hide_D
300a3c93e9
fix(diplomacy): 전쟁 기간을 양방향으로 동기화한다
2026-08-22 10:23:06 +00:00
Hide_D
6f5ef9e3ea
merge: 릴리스 컨트롤러 builder 연결 수정을 반영한다
2026-08-22 10:15:29 +00:00
Hide_D
a3092bcfcc
fix: 릴리스 컨트롤러 빌드를 격리 builder로 연결
...
Gateway release daemon이 구성한 원격 build runner를 실제 배포에 사용하도록 연결한다. DB migration은 runtime의 로컬 runner에 남겨 build와 mutation 경계를 분리한다.
2026-08-22 10:15:20 +00:00
Hide_D
86aa515619
merge: 정적 프런트엔드 릴리스를 main에 반영한다
2026-08-22 09:34:57 +00:00
Hide_D
c551612d0b
merge: 최신 main을 정적 프런트엔드 작업에 통합한다
2026-08-22 09:33:52 +00:00
Hide_D
d3e5d12cbf
feat(release): 정적 프런트엔드와 격리 빌더를 도입한다
...
Gateway와 프로필 릴리스가 불변 프런트엔드 아티팩트를 원자적으로 게시하고 실패 시 이전 포인터를 복구하도록 한다.
릴리스 빌드는 전용 builder protocol로 분리하고 성공한 Gateway 커밋을 재기동용 Git ref에 고정한다.
2026-08-22 09:32:47 +00:00
Hide_D
d080bafa84
merge: 지난 플레이 전투 자료 보존을 main에 반영한다
2026-08-22 09:17:10 +00:00
Hide_D
0d1c4f0146
merge: 최신 Core 기준선을 지난 플레이 전투 보존에 반영한다
2026-08-22 09:15:51 +00:00
Hide_D
d3d89cf003
fix: 지난 플레이 전투 자료를 보존한다
...
통일·장수 삭제·게임 취소 archive에 전투 집계와 숙련도, 전투 결과를 저장한다. 개인 기록과 전투 상세는 보존 대상에서 제외하고 기존 Core snapshot도 정규화한다.
2026-08-22 09:15:45 +00:00
Hide_D
53f37b8399
merge: 일반 사용자 오픈 건의 양식을 main에 반영한다
2026-08-22 09:13:01 +00:00
Hide_D
d050aa06f9
merge: 최신 Core 기준선을 반영한다
2026-08-22 09:11:12 +00:00
Hide_D
1648b6aa84
feat: 일반 사용자 오픈 건의 양식을 추가한다
...
활성 profile 빌드의 시나리오 catalog를 세션 기반 읽기 전용 API로 제공한다. Gateway에서 초기화 옵션을 살펴보고 Ref 예약 공지 형식의 제안 문구를 복사하되 서버 mutation은 호출하지 않도록 한다.
2026-08-22 09:07:29 +00:00
Hide_D
a479406de0
merge: 저작권 표기 연도를 2026년으로 반영한다
2026-08-22 08:53:57 +00:00
Hide_D
787016ae1c
fix: 저작권 표기 연도를 2026년으로 갱신한다
2026-08-22 08:53:40 +00:00
Hide_D
d74a8e48bb
merge: 사용자 군주 자율행동 옵션을 main에 반영한다
2026-08-22 08:29:32 +00:00
Hide_D
ccde0500e6
merge: 최신 main을 사용자 군주 자율행동 브랜치에 통합한다
2026-08-22 08:28:09 +00:00
Hide_D
9c588dbd67
feat: 사용자 군주 자율행동 업무를 개별 설정한다
...
NPC 군주의 기존 국가 운영은 유지하고 사용자 군주는 외교, 수뇌 임명, 재정 조정, 천도를 기본 비활성화한다.
내 정보 설정과 인증 API, 엔진 gate를 연결하고 자율행동 기간 및 국가턴 master를 함께 검증한다.
2026-08-22 08:28:04 +00:00
Hide_D
188e9a6860
merge: 연감 장수동향 수집 복구를 main에 반영한다
2026-08-22 08:22:11 +00:00
Hide_D
690a296f6a
fix: 연감 장수동향 수집 분류를 바로잡는다
2026-08-22 08:20:46 +00:00
Hide_D
957445b0e0
merge: 다이얼로그 화면 중앙 배치를 main에 반영한다
2026-08-22 06:38:16 +00:00
Hide_D
fc0bb99144
fix: 베팅과 게임 정보 창을 화면 중앙에 배치한다
...
공통 viewport 중앙 배치 규칙을 추가하고 데스크톱·모바일 Chromium 좌표 회귀 검사를 보강한다.
2026-08-22 06:37:11 +00:00
Hide_D
80e5c6a2c6
merge: 배포 버전 ETag 재검증을 main에 반영한다
2026-08-22 06:06:52 +00:00
Hide_D
fbaaf916cd
merge: 최신 main을 ETag 최적화 브랜치에 통합한다
2026-08-22 06:04:33 +00:00
Hide_D
8d8ddc5b83
perf(frontend): 배포 버전을 ETag로 재검증한다
2026-08-22 06:04:01 +00:00
Hide_D
f4c83e44c0
merge: 토너먼트 페이지군 자동 갱신을 통합한다
2026-08-22 06:02:40 +00:00
Hide_D
985f627499
feat: 토너먼트 페이지군 자동 갱신을 분리한다
...
토너먼트 전용 SSE scope와 slice invalidation을 추가하고 같은 계정의 visible 탭이 조회를 공유하게 한다. 서버 증명 snapshot 조회는 접속 점수를 더하지 않되 기존 hard limit은 유지한다.
2026-08-22 06:00:22 +00:00
Hide_D
3b2b98dc88
merge: 토너먼트 조별 순위 카드를 main에 반영한다
2026-08-22 05:20:50 +00:00
Hide_D
75832eefec
merge: 최신 main을 토너먼트 조별 순위 카드에 통합한다
2026-08-22 05:19:47 +00:00
Hide_D
cdd81d26c4
feat(game-ui): 토너먼트 조별 순위를 카드로 개선한다
...
빈 조별 슬롯에도 64px 아이콘 자리와 동일한 높이를 유지한다. 경기 지표는 장수명 옆의 의미 단위 요약으로 재배치하고 desktop/mobile Chromium 검증을 보강한다.
2026-08-22 05:18:46 +00:00
Hide_D
666eaea82b
merge: profile 새 버전 안내를 main에 반영한다
2026-08-22 05:13:13 +00:00
Hide_D
89d245880f
merge: 최신 main을 profile 버전 안내에 통합한다
2026-08-22 05:12:10 +00:00
Hide_D
5549f0c1e8
feat: profile 새 버전 안내 toast를 추가한다
...
배포 bundle과 같은 commit의 정적 버전 문서를 생성하고, 열린 탭이 DB mutation 없이 변경을 감지하도록 한다. 동일 버전은 tab session에서 한 번만 안내하며 강제 새로고침은 하지 않는다.
2026-08-22 05:11:50 +00:00
Hide_D
3b98c78fac
merge: 빈 특기 획득 예정 나이 표시를 main에 반영한다
2026-08-22 05:07:48 +00:00
Hide_D
4222853c34
merge: 최신 main을 빈 특기 획득 나이 표시에 통합한다
2026-08-22 05:05:53 +00:00
Hide_D
b8e9e6b513
fix: 빈 특기의 획득 예정 나이를 표시한다
...
메인 장수 read model에 내정·전투 특기 예정 나이를 투영하고, Ref와 같은 현재 나이 다음 해 하한을 적용한다. API 회귀와 Chromium 데스크톱·모바일 검증을 추가한다.
2026-08-22 05:03:25 +00:00
Hide_D
d9e34b7ffb
merge: 토너먼트 새 창 닫기를 main에 반영한다
2026-08-22 05:02:00 +00:00
Hide_D
d8ebb340cd
merge: 최신 main을 토너먼트 새 창 닫기에 통합한다
2026-08-22 05:00:50 +00:00
Hide_D
37b390555d
merge: 토너먼트 상태별 메인 메뉴를 main에 반영한다
2026-08-22 04:59:26 +00:00
Hide_D
266555355e
fix(game-frontend): 토너먼트 새 창 닫기를 복원한다
...
토너먼트와 베팅장 공통 헤더의 창 닫기가 메인 라우트로 이동하지 않고 Ref처럼 현재 보조 창을 닫도록 변경한다. noopener 새 창에서 두 경로를 닫고 원래 창이 유지되는 Chromium 회귀 테스트를 추가한다.
2026-08-22 04:59:18 +00:00
Hide_D
a3ecfff175
merge: 최신 원격 main을 토너먼트 동적 메뉴에 재통합한다
2026-08-22 04:58:33 +00:00
Hide_D
8a4347bf6d
feat(game-ui): 토너먼트 단계별 메인 메뉴를 전환한다
2026-08-22 04:58:12 +00:00
Hide_D
55f41601e6
merge: 토너먼트 전투 로그 복원을 main에 반영한다
2026-08-22 04:54:20 +00:00
Hide_D
48001772aa
merge: 최신 main을 토너먼트 전투 로그 복원에 통합한다
2026-08-22 04:52:24 +00:00
Hide_D
0c75b96908
merge: 첫 모병 예약 후방 발령 교정을 반영한다
2026-08-22 04:51:59 +00:00
Hide_D
e7fed61fb3
feat: 토너먼트 조별 전투 로그를 복원한다
...
예선과 본선 조별 경기의 최신 전투 로그를 저장하고 화면에 여덟 조 모두 표시한다. 결선은 최근 완료 경기와 종료 후 결승 로그를 유지하며 기존 대진 난수 순서를 보존한다.
2026-08-22 04:51:46 +00:00
Hide_D
0cc50bcd66
fix: 첫 모병 예약도 후방 발령에 반영한다
...
Ref의 che_모병 extends che_징병 상속 의미를 예약턴 문자열 경계에서 복원하고 두 명령을 함께 회귀한다.
2026-08-22 04:51:06 +00:00
Hide_D
093bf67394
merge: 최신 main을 토너먼트 동적 메뉴에 통합한다
2026-08-22 04:50:46 +00:00
Hide_D
f5630ebf13
merge: NPC 사용자 장수 인사 호환을 main에 반영한다
2026-08-22 04:44:00 +00:00
Hide_D
8b5fe4e72c
fix: NPC 사용자 장수 인사 조건을 Ref와 맞춘다
...
첫 예약턴과 부대장 턴 순서, 징집 가능 점수, 후방 도시 조건을 반영한다.
징집 후 준비도를 갖춘 뒤 전방 발령하고 구출·포상·몰수 후보와 RNG 순서를 회귀 테스트로 고정한다.
2026-08-22 04:42:08 +00:00
Hide_D
377c8f28b6
fix: 화면 설정의 불필요한 안내 문구를 제거한다
2026-08-22 04:35:24 +00:00
Hide_D
a41eb16bb9
merge: 1분 페이지 부하 최적화를 main에 반영한다
2026-08-21 23:19:34 +00:00
Hide_D
e475cb1212
merge: 최신 main을 1분 부하 최적화에 통합한다
2026-08-21 23:17:38 +00:00
Hide_D
7716b2cc7c
perf(game-api): 사령부 예약턴 조회를 일괄화한다
...
관직 8개의 턴과 revision을 16개 개별 query 대신 두 번의 findMany로 읽고 기존 응답 기본값을 회귀 검증한다.
2026-08-21 23:17:32 +00:00
Hide_D
e67a40e51d
test(load): 1분 페이지 동시 부하 계측을 추가한다
...
국가 권한 사용자 10명과 800 NPC fixture를 만들고 Chromium 화면 순환, SSE, wall-clock 턴을 같은 시각에 측정한다.
2026-08-21 23:17:24 +00:00
Hide_D
bd894398b5
feat(game-ui): 토너먼트와 베팅 메뉴를 합치고 화면 설정을 분리한다
...
토너먼트 기본 동작과 베팅 선택을 split 메뉴로 묶고 빈 국가 메뉴 칸에 화면 설정을 배치한다. 내 정보 화면에는 게임 상태 설정만 남기며 화면 폭, 모바일 패널 순서, 개인 CSS는 기기별 전용 화면에서 관리한다.
2026-08-21 23:09:07 +00:00
Hide_D
6537bcc5c1
merge: 부대편성 장수 패널 재사용을 main에 반영한다
2026-08-21 23:04:59 +00:00
Hide_D
ccbf67c613
merge: 최신 main을 부대편성 장수 패널 재사용에 통합한다
2026-08-21 23:04:25 +00:00
Hide_D
f95699aeda
fix(game-ui): 부대편성 장수 패널을 공통화한다
...
부대원 hover가 내 정보와 감찰부의 GeneralInformationPanel을 재사용하도록 연결한다.\n\n부대 조회 read model은 rank_data와 장수 상태를 공통 panel source로 투영하고 권한 0에서는 상세 자료를 노출하지 않는다.
2026-08-21 23:01:59 +00:00
Hide_D
25bd173164
merge: 모바일 턴 입력 native select 갱신 격리를 main에 반영한다
2026-08-21 22:52:23 +00:00
Hide_D
a2e9ac5754
merge: 최신 main을 모바일 턴 입력 수정에 통합한다
2026-08-21 22:50:54 +00:00
Hide_D
b04f7b5534
fix(game-ui): 모바일 턴 입력의 native select 갱신을 격리한다
2026-08-21 22:50:21 +00:00
Hide_D
9d8823a502
merge: 동적 한국어 조사 처리 변경을 main에 반영한다
2026-08-21 22:47:21 +00:00
Hide_D
21f27f2a79
fix(game-ui): 동적 한국어 조사 처리를 통일한다
...
세력도시 임명 toast와 접근성 이름, 아이템 파기 확인 문구를 JosaUtil로 조립한다. 받침 유무를 production Chromium 회귀로 고정하고 작업 지침에 병기 조사 금지 규칙을 추가한다.
2026-08-21 22:46:15 +00:00