resourcesfeat: working v1 granola, schema not testedMar 26, 2026, 5:07 PMsrcfeat(desktop): put meeting recording behind a build flag, off by default The Mac app is meant to be the web app in a native shell. Meeting recording — the detection popup, the in-call UI, calendar auto-join and the global flag shortcuts — is now inert unless CEDAR_RECORDING=1 at build time. Nothing is deleted; the flag turns all of it back on. This is also what unblocks releasing. @recallai/desktop-sdk bundles a ~335MB GStreamer.framework whose nested Mach-O binaries afterPack has to hand-sign, and which forces mergeASARs off. With the flag clear the package is excluded from the bundle entirely, so the standard signing path handles the whole app and those two workarounds drop out. The SDK therefore must never be imported at module scope — a top-level import would crash a disabled build on launch. services/recallSdk.ts loads it lazily instead, and every caller already sits behind the flag. The preload change does the rest of the work: the renderer decides whether recording exists purely by probing electronAPI.meetingRecorder and .callUI, so withholding those two keys disables every recording surface in the web app with no changes to apps/mail. Verified: disabled build drops @recallai from the bundle and takes preload from 5.95kB to 0.91kB; the app runs with no recall/calendar/popup activity and no native binary spawned, while tray, menu, deep links and the updater are unaffected. CEDAR_RECORDING=1 reproduces the previous bundle byte-for-byte in size, with the require inside a function body. tsc and oxlint clean. Co-Authored-By: Claude Opus 5 (1M context) <<email>>Aug 27, 2026, 9:35 PMelectron-builder.config.jsfeat(desktop): put meeting recording behind a build flag, off by default The Mac app is meant to be the web app in a native shell. Meeting recording — the detection popup, the in-call UI, calendar auto-join and the global flag shortcuts — is now inert unless CEDAR_RECORDING=1 at build time. Nothing is deleted; the flag turns all of it back on. This is also what unblocks releasing. @recallai/desktop-sdk bundles a ~335MB GStreamer.framework whose nested Mach-O binaries afterPack has to hand-sign, and which forces mergeASARs off. With the flag clear the package is excluded from the bundle entirely, so the standard signing path handles the whole app and those two workarounds drop out. The SDK therefore must never be imported at module scope — a top-level import would crash a disabled build on launch. services/recallSdk.ts loads it lazily instead, and every caller already sits behind the flag. The preload change does the rest of the work: the renderer decides whether recording exists purely by probing electronAPI.meetingRecorder and .callUI, so withholding those two keys disables every recording surface in the web app with no changes to apps/mail. Verified: disabled build drops @recallai from the bundle and takes preload from 5.95kB to 0.91kB; the app runs with no recall/calendar/popup activity and no native binary spawned, while tray, menu, deep links and the updater are unaffected. CEDAR_RECORDING=1 reproduces the previous bundle byte-for-byte in size, with the require inside a function body. tsc and oxlint clean. Co-Authored-By: Claude Opus 5 (1M context) <<email>>Aug 27, 2026, 9:35 PMelectron.vite.config.tsfeat(desktop): put meeting recording behind a build flag, off by default The Mac app is meant to be the web app in a native shell. Meeting recording — the detection popup, the in-call UI, calendar auto-join and the global flag shortcuts — is now inert unless CEDAR_RECORDING=1 at build time. Nothing is deleted; the flag turns all of it back on. This is also what unblocks releasing. @recallai/desktop-sdk bundles a ~335MB GStreamer.framework whose nested Mach-O binaries afterPack has to hand-sign, and which forces mergeASARs off. With the flag clear the package is excluded from the bundle entirely, so the standard signing path handles the whole app and those two workarounds drop out. The SDK therefore must never be imported at module scope — a top-level import would crash a disabled build on launch. services/recallSdk.ts loads it lazily instead, and every caller already sits behind the flag. The preload change does the rest of the work: the renderer decides whether recording exists purely by probing electronAPI.meetingRecorder and .callUI, so withholding those two keys disables every recording surface in the web app with no changes to apps/mail. Verified: disabled build drops @recallai from the bundle and takes preload from 5.95kB to 0.91kB; the app runs with no recall/calendar/popup activity and no native binary spawned, while tray, menu, deep links and the updater are unaffected. CEDAR_RECORDING=1 reproduces the previous bundle byte-for-byte in size, with the require inside a function body. tsc and oxlint clean. Co-Authored-By: Claude Opus 5 (1M context) <<email>>Aug 27, 2026, 9:35 PMentitlements.mac.plistMeeting Recording (Phase 1) - v0 CommitMar 4, 2026, 8:58 PMnotarize.cjsrefactor: consolidate CEDAR_ENV into NODE_ENV CEDAR_ENV (local/staging/prod) and NODE_ENV (development/staging/production) carried the same information with different vocabulary. This removes CEDAR_ENV and standardizes on NODE_ENV, the Node.js ecosystem convention that third-party tools (Vite, React, better-auth) already depend on. Value mapping: local→development, staging→staging, prod→production. CEDAR_AWS_ENV (CI/deploy-time CDK variable) is unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) <<email>>Apr 6, 2026, 6:14 PMpackage.jsonfix(deps): resolve all medium/high/critical Dependabot vulnerabilities Bumps ~40 packages across pnpm overrides, direct deps, and the better-auth catalog entry to close ~100 open Dependabot alerts, including major bumps to electron-builder (25→26, fixes app-builder-lib and builder-util-runtime advisories), the @tiptap/* family (3.26→3.31, ReDoS/prototype-pollution fixes), and @faker-js/faker in scripts/. better-auth is pinned to ~1.6.33 rather than the newer 1.7.x line: 1.7.x drops MCP-plugin exports @zero/server depends on. extract-zip (transitive, via electron-builder) has two high-severity symlink-traversal advisories with no patched version published upstream (still 2.0.1) — left as an accepted, build-time-only risk since there's nothing to bump to. Co-Authored-By: Claude Sonnet 5 <<email>>Sep 15, 2026, 7:27 AMsign-gstreamer.cjsfix: add keychain to github sign cjsApr 1, 2026, 1:20 PMtsconfig.jsonfeat: electron workingFeb 28, 2026, 5:21 PM