initSignals 가 신호를 소비한 뒤 history.replaceState 로 1회성 쿼리만 제거.
POST→Redirect→GET·비-JS 폴백은 유지하고, 새로고침/공유 시 토스트 재출력도 방지.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
헤더 브랜드와 동일한 codeslash </> 글리프를 브랜드 그라디언트 타일 위에 얹어
탭에서 16px 로도 읽히게 함. 모든 화면(_header include)에 적용.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 모달 오버레이 마커를 data-open-id → data-open-pid 로 변경
(열기 감지 셀렉터 [data-open-id] 와 충돌해 모달 내부 클릭이
닫기/삭제 대신 모달 재오픈으로 잡히던 문제)
- .modal/.share-modal 에 margin:auto → 짧으면 정중앙, 길면 스크롤
- 프로젝트 삭제 버튼 앞에 휴지통 아이콘 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
public/js/{util,ui,reactions,modals,comments,feed,main}.js 로 분리하고
dashboard/project 에서 <script type="module" src="/public/js/main.js"> 로 로드.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
public/css/{tokens,base,layout,components,modal}.css 로 분리하고 _header 에서 다중 link 로드.
tokens.css 에 Pretendard @font-face(public/fonts/PretendardVariable.woff2, 없으면 시스템 폰트 폴백).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Express+EJS+Postgres 사내 개발 포털.
- Keycloak OIDC(사번 로그인), GitHub 감성 UI
- 사이트 모음 + 프로젝트 공유/코멘트/스타
- DB: OpenEverest appdb portal schema (portal_app role)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>