3 Commits

Author SHA1 Message Date
8f2af73ed4 fix(ci): release 워크플로에 contents: write 권한 추가
DMG asset 업로드 시 softprops/action-gh-release가
"Resource not accessible by integration" 오류로 실패. 기본 GITHUB_TOKEN에
release 수정 권한이 없어 발생.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:04:47 +09:00
a469c666fe fix(build): electron-builder publish 비활성화 및 explicit 플래그 적용
- package.json: "publish": "never" → null (이전 값은 "never" 이름의
  publisher provider를 찾으려 해 v2.0.0/v2.0.1 release 빌드가 실패함)
- release.yml: electron-builder에 --publish never 플래그를 명시적으로
  전달해 git tag 기반 implicit publishing(v27에서 제거 예정) 경고 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:02:02 +09:00
4cbc044d15 perf(watcher): chokidar awaitWriteFinish 제거로 idle CPU 절감
100ms 주기 stat 폴링이 누적 CPU를 점유했음. 파일 이름만 다루는
정규화 도구이므로 안정화 대기가 불필요하며, recentlyRenamed TTL
맵이 이미 중복 이벤트를 막아준다.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 13:48:28 +09:00
4 changed files with 52 additions and 11 deletions

View File

@@ -4,6 +4,9 @@ on:
release:
types: [published]
permissions:
contents: write
jobs:
build-and-release:
runs-on: macos-latest
@@ -21,7 +24,7 @@ jobs:
run: npm ci
- name: Build
run: npm run build
run: npm run build:cli && npm run build:lib && npm run build:app -- --publish never
env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"

51
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@pieroot/nfd2nfc",
"version": "2.0.0",
"version": "2.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@pieroot/nfd2nfc",
"version": "2.0.0",
"version": "2.0.1",
"license": "MIT",
"dependencies": {
"chokidar": "^3.6.0",
@@ -23,7 +23,7 @@
"@typescript-eslint/eslint-plugin": "^7.7.0",
"@typescript-eslint/parser": "^7.7.0",
"@vitejs/plugin-react": "^4.3.4",
"electron": "^39.8.5",
"electron": "^35.1.5",
"electron-builder": "^26.0.12",
"electron-vite": "^2.3.0",
"eslint": "^8.57.0",
@@ -1601,6 +1601,9 @@
"arm"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1615,6 +1618,9 @@
"arm"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1629,6 +1635,9 @@
"arm64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1643,6 +1652,9 @@
"arm64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1657,6 +1669,9 @@
"loong64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1671,6 +1686,9 @@
"loong64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1685,6 +1703,9 @@
"ppc64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1699,6 +1720,9 @@
"ppc64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1713,6 +1737,9 @@
"riscv64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1727,6 +1754,9 @@
"riscv64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1741,6 +1771,9 @@
"s390x"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1755,6 +1788,9 @@
"x64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -1769,6 +1805,9 @@
"x64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -3810,9 +3849,9 @@
}
},
"node_modules/electron": {
"version": "39.8.5",
"resolved": "https://registry.npmjs.org/electron/-/electron-39.8.5.tgz",
"integrity": "sha512-q6+LiQIcTadSyvtPgLDQkCtVA9jQJXQVMrQcctfOJILh6OFMN+UJJLRkuUTy8CZDYeCIBn1ZycqsL1dAXugxZA==",
"version": "35.7.5",
"resolved": "https://registry.npmjs.org/electron/-/electron-35.7.5.tgz",
"integrity": "sha512-dnL+JvLraKZl7iusXTVTGYs10TKfzUi30uEDTqsmTm0guN9V2tbOjTzyIZbh9n3ygUjgEYyo+igAwMRXIi3IPw==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",

View File

@@ -1,6 +1,6 @@
{
"name": "@pieroot/nfd2nfc",
"version": "2.0.0",
"version": "2.0.1",
"description": "macOS 한글 파일명 NFD→NFC 실시간 변환 트레이 앱 + CLI + 라이브러리",
"main": "out/lib/index.js",
"types": "out/lib/index.d.ts",
@@ -46,7 +46,7 @@
"@typescript-eslint/eslint-plugin": "^7.7.0",
"@typescript-eslint/parser": "^7.7.0",
"@vitejs/plugin-react": "^4.3.4",
"electron": "^39.8.5",
"electron": "^35.1.5",
"electron-builder": "^26.0.12",
"electron-vite": "^2.3.0",
"eslint": "^8.57.0",
@@ -104,6 +104,6 @@
"buildResources": "resources",
"output": "dist"
},
"publish": "never"
"publish": null
}
}

View File

@@ -50,7 +50,6 @@ export async function startDir(dir: WatchedDir): Promise<void> {
ignoreInitial: false,
persistent: true,
depth: dir.recursive ? undefined : 0,
awaitWriteFinish: { stabilityThreshold: 500, pollInterval: 100 },
ignored: /(^|[/\\])\../,
});