@fastagent-sh/voicenote 0.18.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -242,7 +242,7 @@ git push --follow-tags
242
242
 
243
243
  The workflow lives at `.github/workflows/release.yml`: CI explicitly runs typecheck/test/build + an artifact smoke test, then `npm publish --ignore-scripts` (deterministic publishing, no lifecycle dependence). Publishing uses **npm trusted publishing (OIDC)**: no long-lived token (`id-token: write` + a Trusted Publisher configured on npmjs.com), with provenance attached automatically. A bare local `npm publish` is still guarded by `prepublishOnly` (typecheck+test+build).
244
244
 
245
- > **First-release exception**: npm has no pending-publisher, so trusted publishing cannot publish a package's very first version. Publish once manually with `npm login` + `npm publish --ignore-scripts`, then add a Trusted Publisher on the package settings page at npmjs.com (repo `fastagent-sh/voicenote`, workflow `release.yml`); CI takes over afterwards (the npm account needs 2FA).
245
+ > Both are already done for this package (Trusted Publisher configured, CI publishing since 0.18.0 with provenance), so a routine release needs nothing but the tag. Kept for forks: npm has no pending-publisher, so trusted publishing cannot publish a package's *very first* version publish once manually with `npm login` + `npm publish --ignore-scripts`, then add a Trusted Publisher on the package settings page at npmjs.com (repo, workflow `release.yml`); CI takes over afterwards (the npm account needs 2FA).
246
246
 
247
247
  ## Desktop app (GUI, `app/`)
248
248
 
package/README.zh-CN.md CHANGED
@@ -242,7 +242,7 @@ git push --follow-tags
242
242
 
243
243
  workflow 位于 `.github/workflows/release.yml`:CI 显式跑 typecheck/test/build + 产物冒烟,再 `npm publish --ignore-scripts`(确定发布,不依赖 lifecycle)。发布走 **npm trusted publishing(OIDC)**:免长期 token(`id-token: write` + npmjs.com 上配好 Trusted Publisher),自动带 provenance。本地裸 `npm publish` 则由 `prepublishOnly`(typecheck+test+build)兼底。
244
244
 
245
- > **首发例外**:npm 无 pending-publisher,trusted publishing 发不了包的第一个版本。先本机 `npm login` 后手动 `npm publish --ignore-scripts` 发一次,再到 npmjs.com 包设置页加 Trusted Publisher(repo `fastagent-sh/voicenote`、workflow `release.yml`),之后 CI 自动接管(需 npm 账号开 2FA)。
245
+ > 本包这两步都已完成(Trusted Publisher 已配置,自 0.18.0 起由 CI 发布并带 provenance),常规发版只需打 tag。以下保留给 fork 者:npm 无 pending-publisher,trusted publishing 发不了包的**第一个**版本 —— 先本机 `npm login` 后手动 `npm publish --ignore-scripts` 发一次,再到 npmjs.com 包设置页加 Trusted Publisher(repoworkflow `release.yml`),之后 CI 自动接管(需 npm 账号开 2FA)。
246
246
 
247
247
  ## 桌面客户端(GUI,`app/`)
248
248
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastagent-sh/voicenote",
3
- "version": "0.18.0",
3
+ "version": "0.18.1",
4
4
  "description": "Voice recordings → diarized transcripts → integrated semantic Markdown notes. Currently optimized for the PHILIPS VTR6500 recorder, but the workflow is generic.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/cli.ts CHANGED
@@ -12,7 +12,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url'
12
12
  import { spawn, spawnSync } from 'node:child_process'
13
13
  import os from 'node:os'
14
14
 
15
- const VERSION = '0.18.0'
15
+ const VERSION = '0.18.1'
16
16
  const LAUNCH_AGENT_LABEL = 'sh.fastagent.voicenote'
17
17
  const LAUNCH_AGENT_LABEL_LEGACY = 'com.kid7st.voicenote' // pre-fastagent installs; cleaned up on install
18
18
  const TASK_NAME = 'VoiceNote' // Windows Task Scheduler name (mac uses LAUNCH_AGENT_LABEL)
@@ -2718,6 +2718,11 @@ async function collectDoctor() {
2718
2718
  // still route the updater.
2719
2719
  proxy: { url: process.env.https_proxy || process.env.HTTPS_PROXY || process.env.http_proxy || process.env.HTTP_PROXY || null },
2720
2720
  identity: { self: config.speakers.self.name || null, aliases: config.speakers.self.aliases, knownCount: config.speakers.known.length },
2721
+ // The thresholds that silently decide what never gets processed. Without
2722
+ // them here, confirming a change to VOICENOTE_MAX_AGE_HOURS meant planting
2723
+ // a test recording and watching the scan — not a reasonable way to check
2724
+ // a setting.
2725
+ filters: { maxAgeHours: config.maxAgeHours, minBytes: config.minBytes, minDurationSeconds: config.minDurationSeconds },
2721
2726
  deps: { ffprobe: ff.code === 0 },
2722
2727
  agent: await agentStatus(),
2723
2728
  }
@@ -2763,6 +2768,7 @@ async function doctor(opts: { json?: boolean } = {}): Promise<void> {
2763
2768
  console.log(`node=${s.node}`)
2764
2769
  console.log(`recordDir=${s.recorder.dir} exists=${s.recorder.exists}`)
2765
2770
  console.log(`workspace=${s.workspace}`)
2771
+ console.log(`filters=maxAge:${s.filters.maxAgeHours > 0 ? `${s.filters.maxAgeHours}h` : 'none'} minSize:${(s.filters.minBytes / 1000).toFixed(0)}KB minDuration:${s.filters.minDurationSeconds}s`)
2766
2772
  if (s.volcano.configured) {
2767
2773
  console.log(`volcano.auth=${s.volcano.auth}`)
2768
2774
  console.log(`volcano.resourceId=${s.volcano.resourceId}`)