diff --git a/CHANGELOG.md b/CHANGELOG.md index 8302f3d..ba66250 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,30 @@ 본 파일은 Inkling 의 버전별 사용자 영향 변경 사항을 기록한다. 형식은 [Keep a Changelog](https://keepachangelog.com/) 를 느슨하게 따른다. +## [0.3.10] — 2026-05-12 + +macOS fullscreen 환경에서 QuickCapture 핫키 (Cmd+Shift+J) 가 작동하지만 강제로 홈 데스크탑으로 Space 전환 후 표시되던 버그 fix. + +### 수정 + +- **macOS fullscreen Space 위에 QuickCapture 표시 (P1).** 기본 BrowserWindow 는 첫 생성된 Space (홈 데스크탑) 에만 표시 → 사용자가 다른 앱 fullscreen 중에 핫키 누르면 macOS 가 강제로 Space 전환 → 사용자 흐름 단절. `quickCaptureWindow.ts` 에 darwin 분기 추가: + - `type: 'panel'` — fullscreen Space 위에 floating 가능한 macOS native panel + - `setAlwaysOnTop(true, 'screen-saver')` — fullscreen app 위에 띄울 수 있는 가장 높은 level + - `setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true })` — 현재 Space (fullscreen 포함) 에 함께 표시, Space 전환 차단 + +Windows / Linux 동작은 변경 없음 (darwin 분기만). + +### 게이트 + +- 단위 750 PASS (변경 없음 — main window 코드는 단위 테스트 대상 아님) +- typecheck 0 errors (src) +- 신규 npm dependency 0 +- macOS 사용자 수동 검증 완료 + +### 업그레이드 + +v0.3.9 인스톨러 위에 v0.3.10 인스톨러를 같은 위치에 실행하면 in-place 업그레이드. 데이터/마이그레이션 변경 없음. + ## [0.3.9] — 2026-05-11 v0.3.8 audit 의 미수정 edge case 3건 완료. AI 처리 흐름의 사용자 unblock path + FTS5 query 안전성. diff --git a/package-lock.json b/package-lock.json index 33fa91f..b899aec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "inkling", - "version": "0.3.9", + "version": "0.3.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "inkling", - "version": "0.3.9", + "version": "0.3.10", "dependencies": { "better-sqlite3": "12.9.0", "electron-log": "5.2.0", diff --git a/package.json b/package.json index a1da093..162e742 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "inkling", - "version": "0.3.9", + "version": "0.3.10", "private": true, "description": "Inkling — local-first 한 줄 보관 도구", "author": "altair823 ", diff --git a/src/main/windows/quickCaptureWindow.ts b/src/main/windows/quickCaptureWindow.ts index 1cf8cee..f2e4651 100644 --- a/src/main/windows/quickCaptureWindow.ts +++ b/src/main/windows/quickCaptureWindow.ts @@ -16,16 +16,29 @@ export function createQuickCaptureWindow(): BrowserWindowType { const x = Math.round((primary.workArea.width - W) / 2 + primary.workArea.x); const y = Math.round((primary.workArea.height - H) / 3 + primary.workArea.y); + // v0.3.10 — macOS fullscreen Space 위에 quick capture 띄우기. + // 기본 BrowserWindow 는 첫 생성된 Space (홈 데스크탑) 에만 표시되므로 + // 사용자가 다른 앱 fullscreen 중일 때 macOS 가 강제 Space 전환 → 사용자 경험 깨짐. + // 'panel' 타입 + 'screen-saver' level + visibleOnFullScreen 조합으로 현재 Space 위에 overlay. + const isMac = process.platform === 'darwin'; win = new BrowserWindow({ width: W, height: H, x, y, frame: false, show: false, alwaysOnTop: true, skipTaskbar: true, resizable: false, + ...(isMac ? { type: 'panel' as const } : {}), webPreferences: { preload: join(__dirname, '../preload/index.js'), contextIsolation: true, nodeIntegration: false, sandbox: false } }); + if (isMac) { + // 'screen-saver' level — fullscreen app 위에 띄울 수 있는 가장 높은 level. + // visibleOnFullScreen: true — 현재 fullscreen Space 에 함께 표시 (Space 전환 안 함). + win.setAlwaysOnTop(true, 'screen-saver'); + win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); + } + if (process.env.ELECTRON_RENDERER_URL) { win.loadURL(`${process.env.ELECTRON_RENDERER_URL}/quickcapture/index.html`); } else {