feat(x): popup countdown line, arrival chime, faster call-end

- 2px progress line drains toward auto-dismiss (now 30s); hovering the
  popup freezes both the line and the dismissal. The renderer owns the
  countdown; main keeps only a 3-min crash-safety fallback
- soft synthesized arrival chime (WebAudio — no asset, no spawn)
- close button in the top-left corner, hover-revealed
- call-end grace 3s → 1s with a 1s detector poll: notes flow starts
  within ~2s of hang-up
This commit is contained in:
Gagan 2026-07-14 13:42:03 +05:30
parent 786382c840
commit 827bd4df5e
3 changed files with 72 additions and 10 deletions

View file

@ -31,7 +31,9 @@ import { isNotificationCategoryEnabled } from "../config/notification_config.js"
* means the call ended.
*/
const POLL_INTERVAL_MS = 2_000;
// 1s so call-end lands within ~2s of hang-up; all tick work is in-memory
// (the helper pushes owner updates, nothing is spawned).
const POLL_INTERVAL_MS = 1_000;
// Mic must be in use continuously this long before we prompt — filters out
// Siri, dictation bursts, and app mic-permission probes.
const MIC_DEBOUNCE_MS = 5_000;
@ -43,7 +45,7 @@ const CALENDAR_MERGE_LEAD_MS = 15 * 60_000;
// While recording, the meeting app must be off the mic this long before we
// call the meeting over. Kept short so notes arrive right after hang-up;
// only guards against sub-poll device churn, not full reconnects.
const CALL_END_GRACE_MS = 3_000;
const CALL_END_GRACE_MS = 1_000;
const CALENDAR_SYNC_DIR = path.join(WorkDir, "calendar_sync");
const HELPER_MAX_RESTARTS = 3;