콘텐츠로 이동

변경 로그

모든 주요 변경 사항은 여기에 기록됩니다. 형식은 Keep a Changelog를 따르며, 이 프로젝트는 Semantic Versioning을 준수합니다.


Unreleased

main에 있지만 아직 태그된 릴리스에 포함되지 않은 변경 사항입니다.


1.3.1 - 2026-05-19

수정됨

  • 정규식 내보내기의 100,000개 레코드 상한을 제거하고 커서 기반 페이지네이션으로 대용량 내보내기를 완전히 지원.
  • 정규식 히스토리 검색 중 UI 응답 불가 문제 해결; 스캔 처리를 백그라운드 스레드로 이동.
  • 월간 시간 범위 계산이 DST(서머타임) 전환 시 더 이상 어긋나지 않음.
  • 숨겨진 도메인 필터가 도메인 이름의 LIKE 와일드카드 문자를 올바르게 이스케이프 처리.
  • URL 접두사별 레코드 집계에서 중복되는 접두사의 이중 계산 문제 해결.
  • WebDAV 정리 실패가 무시되지 않고 보고되도록 수정; 매니페스트 타임스탬프를 업로드 시간과 일치시킴.
  • HTML 내보내기 템플릿에 주입 마커가 없을 경우 손상된 출력 대신 오류를 발생시키도록 수정.
  • 종료 시 설정 저장을 억제하여 데이터 손상 방지; 실패한 설정 승격이 이제 올바르게 롤백됨.
  • 설정 백업 순환 수정; 마이그레이션 오탐지 방어 로직 추가.
  • 배지 데이터 로딩 중 데이터베이스 오류를 충돌 없이 올바르게 처리.
  • 익스트랙터 백업 스레드가 종료 시 메인 프로세스를 암묵적으로 차단하지 않음.
  • FTS 제거 데이터베이스 내보내기 중 발생 가능한 교착 상태 해결.

빌드

  • PyInstaller spec의 WebDAV 숨겨진 임포트를 webdav4에서 webdav3로 수정하여 패키지 빌드의 모듈 누락 오류 해결.

1.3.0 - 2026-05-14

추가됨

  • 기본 테마가 Dark에서 System으로 변경되어, 앱이 처음부터 OS 모양을 따라가도록 했습니다.
  • 블랙리스트 및 숨김 도메인 관리 대화상자에 레코드 수 미리보기를 추가해, 적용 전 영향을 확인할 수 있습니다.
  • 정규식 모드의 최근 검색 기록을 분리해 고급 검색 워크플로를 더 깔끔하게 유지합니다.
  • 정적 트레이 자산을 대체하는 SVG 기반 애니메이션 트레이 렌더러로 앱 아이콘을 새롭게 디자인했습니다.
  • 다국어 MkDocs 문서 사이트를 추가했습니다.

수정됨

  • 프로세스 충돌 후 조용히 사라질 수 있던 FTS 트리거를 모든 기록 쓰기 경로 전에 복구하도록 했습니다.
  • title:url: 검색 토큰이 더 이상 서로를 덮어쓰지 않으며, 여러 단어 필드 쿼리도 올바르게 AND 조건으로 분리됩니다.
  • 숨김 도메인이 오버레이 빠른 검색에서 올바르게 필터링되도록 수정했습니다.
  • Safari 증분 추출의 시간 경계 조건을 수정했습니다.
  • 비표준 설치를 제외하던 browser scanner의 잘못된 경로 필터를 제거했습니다.
  • 설정 로드 시 복호화에 실패해도 WebDAV 비밀번호 암호문을 유지하도록 했습니다.
  • 단일 인스턴스 시작 시 토큰 파일 쓰기에 실패해도 안전하게 폴백하도록 했습니다.
  • 이전 장치 ID를 채택할 때 기록 레코드가 올바르게 마이그레이션되도록 수정했습니다.
  • 워커 스레드에서 잘못된 인수 타입이 전달되어도 sync_progress 시그널이 보호되도록 했습니다.
  • 실시간 동기화 진행률을 복원했고, QThread 래퍼 수명을 강화해 destroyed-while-running 크래시를 방지했습니다.
  • 백업 스레드 수명 주기를 수정하고 자동 백업 예외를 동기화 흐름과 분리했습니다.
  • 동기화 중 크로스 스레드 시그널 경쟁과 QThread 수명 문제를 해결했습니다.
  • upsert 예외 발생 시 FTS 트리거를 즉시 복원해 쓰기 윈도우를 닫도록 했습니다.
  • get_records의 두 쿼리 단계 전체에서 _ro_lock을 유지해 연결 경쟁을 제거했습니다.
  • 충돌 시 오래된 매니페스트가 남지 않도록, 오래된 백업 정리 전에 WebDAV 동기화 매니페스트를 업로드하도록 했습니다.
  • TOCTOU 경쟁을 방지하기 위해 도메인 캐시 쓰기를 잠금으로 보호했습니다.
  • 정규식 load-more 경로에서 오래된 페이지 캐시를 제거해 빈 행이 생기지 않도록 했습니다.
  • 첫 열기 시 대화상자가 좌측 상단에서 번쩍이는 현상을 제거했습니다.
  • Linux에서 자동완성 글꼴 크기를 유효 범위로 제한했습니다.
  • 시스템 트레이를 사용할 수 없을 때 트레이 최소화를 막도록 했습니다.

성능

  • O(N) vt_cache 정리를 페이지 단위 LRU 제거로 대체했습니다.
  • export_without_fts에서 VACUUM INTO 전에 쓰기 잠금을 해제하도록 했습니다.
  • extractor manager의 공유 레지스트리와 필터 집합을 잠금으로 보호해 데이터 경쟁을 방지했습니다.

빌드

  • Linux용 Qt 플랫폼 폴백을 추가했고, 즉시 실행 가능하도록 xcb 의존성을 패키징했습니다.
  • 줄바꿈과 바이너리 파일을 위한 포괄적인 .gitattributes 규칙을 추가했습니다.

1.2.2 - 2026-04-29

수정됨

  • CLI restore가 사용자가 선택한 백업 대신 항상 최신 백업을 복원하던 문제를 수정했습니다.
  • CLI restore가 파비콘 복원 플래그를 반영하지 않던 문제를 수정했습니다.
  • CLI restore --replace가 안전하지 않은 데이터베이스 교체를 사용하던 문제를 수정했습니다.
  • 스케줄러 선행 타이머가 취소되지 않아, 재예약 후 오래된 콜백이 실행되던 문제를 수정했습니다.
  • 터미널 크기 API 사용을 바로잡아, 모든 CLI 명령의 출력 포맷이 정상 동작하도록 했습니다.

1.2.1 - 2026-04-23

추가됨

  • 북마크 카드에 "기록에서 찾기" 버튼을 추가해 빠르게 이동할 수 있습니다.
  • 북마크 카드의 태그 영역이나 메모 영역을 클릭하면 바로 편집기가 열리도록 했습니다.

수정됨

  • Ctrl+F / Ctrl+R 전역 단축키 충돌을 해결해, 기록 보기에서 안정적으로 작동하도록 했습니다.
  • 날짜 구분선 방문 수가 현재 필터와 숨김 레코드 보기 모드를 올바르게 반영하도록 수정했습니다.

1.2.0 - 2026-04-23

추가됨

  • 전역 및 앱 내에서 사용할 수 있는 14개의 설정 가능한 키보드 단축키와 전용 설정 패널을 추가했습니다.
  • 소프트 숨김 레코드를 위한 전용 보기인 Hidden Records 보기 모드를 추가했습니다.
  • 도메인 단위 소프트 숨김 기능을 추가해, 삭제하지 않고 해당 도메인의 모든 레코드를 숨길 수 있으며 전용 관리 UI를 제공합니다.
  • 휴대용 모드를 추가해 앱 루트의 .portable 마커 파일을 자동 감지하고 모든 데이터를 data/ 하위 디렉터리로 저장합니다.
  • 빠른 접근 오버레이와 자동완성 드롭다운에 "Search the Web" 항목을 추가했고, 설정 가능한 검색 엔진 프리셋을 지원합니다.
  • "트레이로 최소화하여 시작" 시작 옵션을 추가했습니다.
  • 지연 GUI 트레이 최소화 모드를 추가해, 첫 열기 전까지 창과 하위 시스템 초기화를 미룹니다.
  • 열 표시 전환이나 재정렬 후에도 날짜 구분선이 복원되도록 했습니다.
  • 시스템 Dark/Light 모드 실시간 추적을 추가했습니다.

변경됨

  • WebDAV 업로드를 chunked 방식에서 atomic streamed 방식으로 전환해 신뢰성을 크게 높이고 Windows의 임시 파일 디스크립터 누수를 제거했습니다.
  • 헤드리스 모드가 GUI 하위 시스템을 건너뛰고 더 낮은 SQLite 캐시를 사용해 백그라운드 메모리 사용량을 줄입니다.
  • 도메인 및 아이콘 캐시 제거 방식을 전체 clear()에서 FIFO popitem()으로 변경해 주기적인 제거 스파이크를 없앴습니다.
  • 열 표시 전환을 하위 메뉴로 이동해 도구 모음을 더 깔끔하게 정리했습니다.

수정됨

  • 연결 수명 주기 잠금 순서를 통일해 WAL read-after-write 불일치를 해결했습니다.
  • _vacuuming=True 동안 prune_tombstones가 실행되어 VACUUM이 충돌하던 문제를 수정했습니다.
  • VACUUM 중 tombstone을 정리해 테이블이 무한히 커지는 것을 방지했습니다.
  • 삭제/숨김/숨김 해제 후 스크롤이 튀는 문제를 수정했고, 맨 위로 점프하지 않고 스크롤 위치를 유지합니다.
  • 긴 제목이 설정 카드의 작업 버튼을 화면 밖으로 밀어내지 않도록 수정했습니다.
  • 테마 전환 후 나타나던 불필요한 가로 스크롤바를 제거했습니다.
  • 북마크와 주석 읽기가 쓰기 직후에도 즉시 최신 데이터를 보도록 수정했고, 오래된 WAL 스냅샷 문제를 해결했습니다.
  • BFS browser scan 중 Windows Junction을 더 이상 따라가지 않습니다.
  • 매우 긴 간격에서 정수 오버플로를 막기 위해 QTimer 간격을 INT32_MAX로 제한했습니다.
  • BrowserMonitor가 애플리케이션 종료 시 올바르게 종료되도록 했습니다.
  • 여러 단어의 CLI 검색 쿼리를 따옴표 없이 허용하도록 했습니다.
  • CLI의 긴 표 출력은 줄 넘침을 막기 위해 말줄임표로 잘라 표시합니다.
  • encrypt_text 실패를 조용히 무시하지 않고 WebDAV 비밀번호 관련 오류를 전파하도록 했습니다.
  • get_bookmarked_urlsDISTINCT를 사용해 중복 URL 결과를 방지합니다.

성능

  • get_records의 2단계 keyset pagination으로 대규모 기록에서 O(N) offset scan을 제거했습니다.
  • 정규식 검색 페이지네이션을 SQL 계층으로 내려 전체 테이블 O(N) 스캔을 제거했습니다.
  • paint, data(), URL 파싱, eventFilter의 핫패스를 최적화해 빠른 스크롤 지연을 줄였습니다.
  • DashboardPage는 창이 숨겨져 있을 때 브라우저 상태 업데이트를 건너뜁니다.

보안

  • 암호화를 V2 형식으로 업그레이드해, 암호화와 인증에 독립적인 HKDF 하위 키를 사용합니다.
  • 재생 공격을 방지하기 위해 단일 인스턴스 IPC에 nonce 기반 인증을 추가했습니다.
  • HTML 내보내기의 XSS 취약점을 수정해, 포함 전 SVG 아이콘을 정제하도록 했습니다.
  • 마스터 비밀번호 유휴 타임아웃이 시스템 절전 중에도 올바르게 계산되도록 time.time()을 사용합니다.
  • 마스터 비밀번호 우회 틈새를 막고, 오래된 세션 UI 문제를 수정했습니다.

빌드

  • macOS 독립 실행형 tar.gz 아티팩트를 추가했습니다.
  • Windows 휴대용 ZIP과 설치 프로그램을 추가했습니다.
  • CI에서 Windows 독립 실행형 Python 런타임을 캐시해 빌드 시간을 줄였습니다.

1.1.1 - 2026-04-12

수정됨

  • 오버레이 (Ctrl+Shift+H)를 다시 열 때 세로로 밀리는 문제를 수정했습니다.
  • 기록 테이블에 무작위로 가로 스크롤바가 나타나는 문제를 수정했습니다.
  • 기록 페이지에서 북마크를 수정한 뒤 북마크 페이지가 갱신되지 않던 문제를 수정했습니다.
  • 충돌 시 bookmarked_at 타임스탬프가 갱신되지 않던 문제를 수정했습니다.
  • WebDAV 클라이언트 초기화 중 발생할 수 있는 잠재적 경쟁 조건을 수정했습니다.
  • 연결 재설정 후 _excl_cache가 비워지지 않아 오래된 필터 결과가 남는 문제를 수정했습니다.

성능

  • 기록 쿼리와 북마크/주석 배지 로딩을 백그라운드 스레드로 옮겨 UI를 막지 않도록 했습니다.
  • 표시용 도메인을 렌더링 경로에서 URL 파싱으로 매번 계산하는 대신 domains 테이블 JOIN으로 해결하도록 했습니다.
  • export_without_fts의 중복된 두 번째 VACUUM을 제거했습니다.
  • hidden_recordsNOT IN 하위 쿼리를 더 효율적인 NOT EXISTS 상관 조회로 대체했습니다.

1.1.0 - 2026-04-11

추가됨

  • Spotlight 스타일 전역 빠른 검색 오버레이 (Ctrl+Shift+H)를 추가해, 어떤 앱에서든 기록, 북마크, 주석을 즉시 검색할 수 있습니다.
  • domain:, after:, before:, title:, url:, browser:, device:, is:bookmarked, has:note, tag: 고급 검색 구문을 추가했습니다.
  • 검색창에 인라인 고스트 텍스트 자동완성과 퍼지 매칭 드롭다운 제안을 추가했습니다.
  • GitHub 스타일 연간 활동 히트맵, 브라우저 사용량 원형 차트, 24시간 활동 막대 차트, 원클릭 고해상도 이미지 내보내기를 포함한 통계 페이지를 추가했습니다.
  • URL에 태그를 달고 서식 있는 메모를 작성할 수 있는 북마크 및 주석 시스템을 추가했습니다.
  • sync, backup, search, export, restore, config, db, watch 모드를 포함한 헤드리스 CLI hsync를 추가했습니다.
  • argcomplete를 통한 hsync 셸 탭 완성을 추가했습니다. Bash, Zsh, Fish를 지원합니다.
  • 장치 이름 변경, 오래된 장치 삭제, OS 재설치 후 이전 ID 채택이 가능한 장치 ID 관리 기능을 추가했습니다.
  • WebDAV 복원이 파괴적 덮어쓰기 대신 로컬 데이터와 병합되도록 변경했습니다.
  • 기록 테이블에서 기본 URL 드래그 앤 드롭 내보내기를 지원합니다. Alt+드래그 또는 파비콘 드래그로 바탕화면이나 편집기로 보낼 수 있습니다.
  • 스크롤 시 날짜, 상위 도메인, 활동 밀도 막대를 보여주는 스크롤 시간 버블을 추가했습니다.
  • QQ Browser, Sogou, Twinkstar, CentBrowser, 2345 Explorer, Liebao, UC Browser (Desktop), Quark에 대한 기본 지원을 추가했습니다.
  • Waterfox, LibreWolf, Pale Moon, Basilisk, SeaMonkey 등 Firefox 계열 브라우저 지원을 추가했습니다.
  • Chrome, Edge, Brave의 Canary/Dev/Beta 채널 지원을 추가했습니다.
  • 휴대용 또는 비표준 브라우저 설치를 자동 감지하는 BFS 심층 스캔을 추가했습니다.
  • 오버레이 페이드 인/아웃 애니메이션을 추가했습니다.
  • 첫 실행 마법사를 더 간단한 초기 설정 흐름으로 개선했습니다.
  • v1.0.x 설치본에서 손실 없이 이전할 수 있는 마이그레이션 마법사를 추가했습니다.
  • 시간 버블 표시 모드를 위한 스크롤바 컨텍스트 메뉴를 추가했습니다.
  • 스크롤 시간 버블에 관성 기반 부드러운 애니메이션을 추가했습니다.

수정됨

  • Windows에서 WebDAV 백업 중 파일 잠금 문제를 해결했습니다.
  • Dark/Light 테마 전환 시 스크롤바 위치가 튀는 문제를 수정했습니다.
  • 여러 단어 FTS 쿼리가 더 높은 정확도를 위해 AND 의미론을 사용하도록 했습니다.
  • normalize_domains UPDATE를 5000행 단위로 처리해 긴 쓰기 잠금을 피하도록 했습니다.
  • 숨김 레코드를 분석 통계와 오버레이 빠른 검색에서 제외하도록 했습니다.
  • VACUUM 중 동시 접근을 방지하기 위해 _ensure_conn_vacuuming 플래그로 보호했습니다.

성능

  • SQLite 추출을 배치 삽입과 사전 컴파일된 정규식으로 다시 작성해 메모리 사용량을 줄이고 속도를 높였습니다.
  • 파비콘 렌더링을 LRU 캐시와 SVG 재색상화로 최적화해 빠른 스크롤 중 버벅임을 없앴습니다.
  • 기록 페이지 초기 로드에 점진적 초기화를 적용해 첫 화면 표시 시간을 줄였습니다.

1.0.0 - 2026-03-24

첫 안정 버전 릴리스.

추가됨

  • Chromium 계열, Firefox 계열, Safari 브라우저의 기록 집계를 지원합니다. Chrome, Edge, Brave, Opera, Vivaldi, Arc 등이 포함됩니다.
  • trigram tokenizer 기반 FTS5 전문 검색을 사용하는 로컬 SQLite 데이터베이스를 추가해 밀리초 단위 부분 문자열 검색을 제공합니다.
  • ZIP 압축 및 SHA-256 무결성 검증이 포함된 WebDAV 클라우드 백업 및 복원을 추가했습니다.
  • WAL 안전 데이터베이스 복사를 통한 다중 브라우저, 다중 프로필 지원을 추가했습니다.
  • 수백만 건 기록 목록을 부드럽게 탐색할 수 있는 가상 스크롤을 추가했습니다.
  • 동기화 상태 알림이 포함된 시스템 트레이 통합을 추가했습니다.
  • HKDF-SHA256 및 시스템 키링 통합을 통한 WebDAV 자격 증명 마스터 비밀번호 암호화를 추가했습니다.
  • Windows 및 macOS 패키지를 제공했습니다.