Tags give the ability to mark specific points in history as being important
-
v0.1.9
bd8cfc27 · ·Release v0.1.9: comprehensive documentation overhaul and GitLab project page optimization
-
-
-
-
v0.1.5
ec715e17 · ·Record the release notes in the repository and capture the manual procedures the pipeline cannot perform. Changes since v0.1.4 (3583164): - CHANGELOG.md consolidates v0.1.0 through v0.1.4 from the annotated release tags, which stay the authoritative release notes for those versions. - scripts/deploy-rtdb-rules.sh, exposed as `pnpm deploy:database-rules`, wraps the manual Realtime Database rules release. It refuses to run when CI is set, requires an interactive login, reads the target instance from firebase.json, and drops GOOGLE_APPLICATION_CREDENTIALS so the stored user login is used rather than a service account. - OPERATIONS.md 2.3 records the two active project integrations. Both are email-based and target the maintainer's address: emails-on-push sends commits and diffs, and pipelines-email reports failures only. Both are limited to the default and protected branches. Section 3.4 records the manual Realtime Database release. - The six-digit device lock passcode is masked on the onboarding, unlock, and PIN reset screens. The fields no longer use type="password" wherever -webkit-text-security is supported, because browsers treat a password field as a credential to save and autocomplete="off" does not suppress the offer; the password type remains the fallback where the property is unimplemented. Verification: - CI pipeline #2899630985 (#39): lint, test:unit, build:landing, build:web, and deploy:hosting all succeeded. deploy:hosting ran in 69s and is the only deploy job the change set could trigger. - The deployed bundle carries the masking rule: /assets/index-Bu66ELW1.css serves -webkit-text-security:disc, and the deployed script hash matches the local build. - Monorepo typecheck, Prettier check, and the 67 core unit tests pass. The deploy script passes bash -n and both of its guards exit 1 as intended. Note: on-device Web Push delivery remains unverified (SECURITY.md 5), and the Firefox fallback still uses type="password", so the save prompt can appear there. -
v0.1.4
35831642 · ·Deploy the security rules and composite indexes of every backing store from CI, so they track the repository instead of relying on manual releases. Changes since v0.1.3 (1f5ed2b): - .gitlab-ci.yml gains deploy:firestore-rules, deploy:firestore-indexes, and deploy:storage-rules. Each job authenticates with the FIREBASE_SERVICE_ACCOUNT_JSON ADC file, runs firebase-tools@15.10.1 deploy --only <target>, and is gated on main plus changes to the relevant file or firebase.json. - firebase.json names the storage bucket and the Realtime Database instance explicitly, in array form. With the previous object form the CLI queried the project default bucket and derived a <project>-default-rtdb target, so a service-account-only environment failed the defaultBucket lookup with 403 firebasestorage.defaultBucket.get and pointed at the wrong RTDB. - The custom IAM role projects/talk2nick/roles/firestoreIndexAdmin grants the datastore.indexes.* permissions, which no predefined role exposes, and is bound to the CI service account. Not automated: - Realtime Database rules remain a manual release. firebase deploy --only database writes to the legacy rules.json endpoint, which rejects service-account access tokens with 401; see OPERATIONS.md 3.4. Verification: - CI pipeline #2899224569 (#37): deploy:firestore-indexes, deploy:firestore-rules, deploy:storage-rules, deploy:functions, lint, and test:unit all succeeded. - The pipeline config parses, Prettier check passes, and no deploy:database-rules job remains. Note: on-device Web Push delivery remains unverified (SECURITY.md 5). -
v0.1.3
1f5ed2bf · ·v0.1.3 — Realtime Database presence for push dispatch Fixes duplicate push notifications to recipients who are already viewing a conversation. getPresence() read a Firestore presenceMirror collection that no function ever wrote, so the "active conversation" filter always failed and every non-muted device received a notification. Changes since v0.1.2 (1a72b2b): - Read presence directly from the Realtime Database. admin.ts gains adminRtdb(), which initializes the Admin app with databaseURL and returns getDatabase(). getPresence() now reads presence/{uid} at the RTDB URL and falls back to null (recipient treated as inactive) on failure, so a presence lookup error no longer suppresses the whole dispatch. - Remove the dead presenceMirror match block from firestore.rules. - Document the RTDB dependency of push dispatch in ARCHITECTURE.md 2.2 and OPERATIONS.md 6.4, including the [push] presence lookup failure log line. Verification: - functions build, monorepo typecheck, and core unit tests (67) pass. - CI pipeline #2899083690: all jobs succeeded; deploy:functions completed in 2m32s. - sendPushOnMessage is ACTIVE in asia-northeast3 on talk2nick; firestore:rules released manually. Note: on-device Web Push delivery remains unverified (SECURITY.md 5). -
v0.1.2
1a72b2b1 · ·Web Push notifications, end to end Deployed state: - App: https://talk2nick.web.app (Firebase Hosting) - Landing and admin: https://heroyik.gitlab.io/talk2nick/ (GitLab Pages) - 16 Cloud Functions ACTIVE in asia-northeast3 Added: - Web Push registration: pushTokens/{uid}/tokens/{token}, token as doc ID - VAPID public key distributed via the VITE_FIREBASE_VAPID_KEY CI variable - sendPushOnMessage sends and prunes invalid registration tokens - pruneStalePushTokens sweeps stale tokens via collectionGroup(tokens) - Per-device push toggle on the notifications route Fixed: - deploy:functions installed workspace dependencies before predeploy build - CI IAM gained roles/datastore.viewer and the custom firestoreDbMetaReader and schedulerJobManager roles; the Cloud Billing API was enabled Known limitations: docs/OPERATIONS.md section 6. -
v0.1.1
cf920d70 · ·v0.1.1 MIT 라이선스 도입, CI 서비스계정 키 회전. - LICENSE: MIT - README: 라이선스 항목 갱신 - docs/SECURITY.md: 키 상태 갱신, 고아 키 기록, 미해결 항목 1건 추가 CI 서비스계정 키 회전 완료. 노출되었던 키는 삭제되었고, 신규 키로 배포 파이프라인이 성공하는 것을 확인한 뒤 이전 키를 제거했다. 미완성 항목은 docs/OPERATIONS.md 6장 참조.
-
v0.1.0
b5cac537 · ·v0.1.0 talk2nIcK 최초 릴리스. 배포 상태: - 앱: https://talk2nick.web.app (Firebase Hosting) - 랜딩·어드민: https://heroyik.gitlab.io/talk2nick/ (GitLab Pages) - Firestore: asia-northeast3, 삭제 보호 활성 - Realtime Database: asia-southeast1 - Cloud Storage: talk2nick.firebasestorage.app, UBLA 활성 CI 파이프라인(lint/build/test/deploy) 전 단계 통과. 미완성 항목은 docs/OPERATIONS.md 6장을 참조: 푸시 알림 클라이언트 등록 코드, Cloud Functions 배포, 키 회전.