Features found in source
All promised features found 100 / 100
App specification source review: 24 of 24 features (100%); partial features count half. Source review based on your App specification (24 features).
AI Meeting Assistant — Transcribe, Capture, Keep. · Version 01a18425-4157-7bef-96a5-814bfd181dfb
Checked: 2026-11-01T12:29:09.197Z · Report generation 6
Status: complete · Analysis: live
Source check ✓ 2026-10-28T20:15:38.107Z
All promised features found 100 / 100
App specification source review: 24 of 24 features (100%); partial features count half. Source review based on your App specification (24 features).
Good, small improvements suggested 82 / 100
3 security issue(s) found; serious issues reduce this score most. No scan guarantees safety.
Some setup steps missing 57 / 100
Present: known install command, run entry point, App specification or AGENTS. Missing: README, environment example. Static check in .; code was not executed. Checks README, environment example, install and run scripts, app specification or AGENTS, confirmed How to run it (confirmed) and run manifest (absent). The app was not executed.
Mostly up to date, some updates suggested 73 / 100
19 known issues, 19 have a fix (for example, npm audit fix); 2 production, 17 dev-only, 0 scope unknown. Licenses: 373 permissive, 15 copyleft, 10 unknown; 0 confirmed conflicts. Unknown licenses need review. Freshness and abandonment: not checked.
The AI read 136 of 298 source files.
App specification source review: 24 of 24 features found in source (100%)
Files checked: src/renderer/audio/liveCaptureStarter.ts, src/renderer/audio/microphoneCapture.ts, src/main/sessions/liveCaptureBridge.ts
Microphone and loopback capture feed a 16 kHz PCM bridge that transcribes chunks into timestamped segments.
Evidence: src/renderer/audio/liveCaptureStarter.ts:1, src/renderer/audio/microphoneCapture.ts:1, src/main/sessions/liveCaptureBridge.ts:1Files checked: src/renderer/audio/liveCaptureStarter.ts, src/main/sessions/liveCapture.ts, src/main/sessions/sessionLiveScreen.ts
Pause, resume and stop are implemented in the starter, pipeline and live screen.
Evidence: src/renderer/audio/liveCaptureStarter.ts:1, src/main/sessions/liveCapture.ts:1, src/main/sessions/sessionLiveScreen.ts:1Files checked: src/main/sessions/uploadRecordingScreen.ts, src/main/sessions/uploadTranscription.ts, src/renderer/views/localTranscriptionView.ts
Upload start probes the file, copies it, transcribes in chunks and publishes progress updates.
Evidence: src/main/sessions/uploadRecordingScreen.ts:1, src/main/sessions/uploadTranscription.ts:1Files checked: src/main/sessions/uploadRecordingScreen.ts, src/main/sessions/uploadTranscription.ts, src/renderer/audio/recordingPlayer.ts
Cancel confirmation path and retryUpload for failed sessions are both implemented.
Evidence: src/main/sessions/uploadRecordingScreen.ts:1, src/main/sessions/uploadTranscription.ts:1Files checked: src/main/sessions/sessionDetailScreen.ts, src/main/chat/chatSessionManager.ts, src/main/sessions/transcriptRepository.ts
SessionDetailScreen.open reloads transcript, chat, context and audio; chat manager reopens per-session screens.
Evidence: src/main/sessions/sessionDetailScreen.ts:1, src/main/chat/chatSessionManager.ts:1Files checked: src/main/titles/sessionTitles.ts, src/renderer/views/sessionTitleView.ts, src/renderer/views/sessionFoldersView.ts
Manual rename and periodic auto-title interval found in title service and view.
Evidence: src/main/titles/sessionTitles.ts:1, src/renderer/views/sessionTitleView.ts:1Files checked: src/renderer/views/sessionFoldersView.ts, src/main/folders/foldersRepository.ts, src/main/sessions/sessionsListScreen.ts
Drag-and-drop and folder selector move found in folders view and repository.
Evidence: src/renderer/views/sessionFoldersView.ts:1, src/main/folders/foldersRepository.ts:1Files checked: src/renderer/audio/recordingPlayer.ts, src/main/sessions/recordingPlayback.ts, src/renderer/index.html
Seek slider, 10s skip buttons and speed select found in player and playback.
Evidence: src/renderer/audio/recordingPlayer.ts:1, src/main/sessions/recordingPlayback.ts:1Files checked: src/renderer/audio/recordingPlayer.ts, src/renderer/audio/playbackTimeline.ts, src/main/sessions/transcriptRepository.ts
Seek method and segmentAtTime timeline support timestamp jumps.
Evidence: src/renderer/audio/recordingPlayer.ts:1, src/renderer/audio/playbackTimeline.ts:1Files checked: src/main/sessions/transcriptRepository.ts, src/renderer/views/transcriptSelection.ts, src/shared/reportFormats.ts
Segment text update and rich-text selection editing found.
Evidence: src/main/sessions/transcriptRepository.ts:1, src/renderer/views/transcriptSelection.ts:1Files checked: src/main/chat/chatScreen.ts, src/main/chat/chatSessionManager.ts, src/main/chat/chatMessageRepository.ts
Grounded request includes transcript, notes, bookmarks and retained history.
Evidence: src/main/chat/chatScreen.ts:5, src/main/chat/chatSessionManager.ts:5, src/main/chat/chatMessageRepository.ts:5Files checked: src/shared/meetingPrompts.ts, src/renderer/renderer.ts, src/main/notes/requestedNote.ts
Meeting prompt shortcuts for topics, actions and highlights wired to send.
Evidence: src/shared/meetingPrompts.ts:3, src/renderer/renderer.ts:3Files checked: src/renderer/renderer.ts, src/renderer/views/chatView.ts, src/main/chat/chatMessageRepository.ts
Per-message retention toggle calls overrideChatRetention; repository persists retained flag.
Evidence: src/renderer/renderer.ts:6, src/renderer/views/chatView.ts:6, src/main/chat/chatMessageRepository.ts:6Files checked: src/renderer/views/notesView.ts, src/main/notes/notesRepository.ts, src/main/notes/requestedNote.ts
Notes view saves, edits inline and deletes; repository save/delete implemented.
Evidence: src/renderer/views/notesView.ts:3, src/main/notes/notesRepository.ts:3Files checked: src/renderer/views/transcriptSelection.ts, src/renderer/renderer.ts, src/main/notes/notesRepository.ts
Selection save-note and assistant Save as note both persist notes.
Evidence: src/renderer/views/transcriptSelection.ts:8, src/renderer/renderer.ts:8, src/main/notes/notesRepository.ts:8Files checked: src/renderer/views/bookmarksView.ts, src/renderer/views/transcriptSelection.ts, src/main/bookmarks/bookmarksRepository.ts
Bookmark save/list/delete and Go to transcript scroll/focus found.
Evidence: src/renderer/views/bookmarksView.ts:1, src/renderer/views/transcriptSelection.ts:1, src/main/bookmarks/bookmarksRepository.ts:1Files checked: src/shared/reportFormats.ts, src/main/reports/exportReport.ts, src/renderer/index.html
Markdown, docx, html and xlsx report generation and file save found.
Evidence: src/shared/reportFormats.ts:1, src/main/reports/exportReport.ts:1Files checked: src/main/sessions/subtitleExport.ts, src/main/sessions/sessionDetailScreen.ts, src/main/sessions/transcriptRepository.ts
Plain-text timestamped export and SRT rendering found.
Evidence: src/main/sessions/subtitleExport.ts:1, src/main/sessions/sessionDetailScreen.ts:1Files checked: src/main/subtitles/subtitleWindows.ts, src/renderer/subtitle.html, src/renderer/subtitle-chat.html
Floating always-on-top overlay window and separate chat window found.
Evidence: src/main/subtitles/subtitleWindows.ts:1, src/renderer/subtitle.html:1Files checked: src/main/sessions/audioRecordingRepository.ts, src/main/sessions/sessionDetailScreen.ts, src/main/sessions/uploadTranscription.ts
Discard audio marks retained=false, deletes file, keeps transcript.
Evidence: src/main/sessions/audioRecordingRepository.ts:1, src/main/sessions/sessionDetailScreen.ts:1Files checked: src/main/sessions/sessionsListScreen.ts, src/renderer/views/sessionDeleteDialog.ts, src/main/sessions/audioRecordingRepository.ts
Delete flow removes session rows via cascade and deletes the audio file; confirm dialog present.
Evidence: src/main/sessions/sessionsListScreen.ts:20, src/renderer/views/sessionDeleteDialog.ts:1, src/main/sessions/audioRecordingRepository.ts:1Files checked: src/renderer/workspaceAppearance.ts, src/renderer/views/panelLayout.ts, src/renderer/richText.ts
Reading font/size/spacing controls, panel layout toggles and split resizing implemented.
Evidence: src/renderer/workspaceAppearance.ts:1, src/renderer/views/panelLayout.ts:1, src/renderer/richText.ts:1Files checked: src/main/settings/defaults.ts, src/renderer/audio/liveCaptureStarter.ts, src/main/sessions/liveRecording.ts
Settings defaults define STT/chat/classifier models, capture mode and keepAudio retention.
Evidence: src/main/settings/defaults.ts:1, src/renderer/audio/liveCaptureStarter.ts:1, src/main/sessions/liveRecording.ts:1Files checked: src/main/chat/chatScreen.ts, src/main/reports/reportsRepository.ts, src/main/reports/exportReport.ts
Chat detects report requests, stores report from assistant answer, exports md/docx/html/xlsx.
Evidence: src/main/chat/chatScreen.ts:1, src/main/reports/reportsRepository.ts:1, src/main/reports/exportReport.ts:1Actual run verification: Not tested. Source review does not prove the app works. Dependency warnings permit publishing; harmful content and unresolved rights or license blockers prevent it. Checks do not guarantee safety.
High — could seriously affect users or their data; fix promptly.
undici vulnerable to TLS certificate validation bypass via dropped tls options in Agent
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-2m5v-pch6-74hx · package-lock.jsonHigh — could seriously affect users or their data; fix promptly.
undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
Fix hint: Update undici from 7.30.0 to 7.30.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-4w7w-5xrc-9h26 · package-lock.jsonHigh — could seriously affect users or their data; fix promptly.
launch-editor: `fs.existsSync()` existence check can be bypassed on Windows
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-587h-7wmj-h5pm · package-lock.jsonHigh — could seriously affect users or their data; fix promptly.
undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-xjj6-f33q-929c · package-lock.jsonHigh — could seriously affect users or their data; fix promptly.
Electron: Mitigation for compromised eMudhra intermediate certificates
Fix hint: Update electron from 44.5.1 to 45.0.0-beta.6 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-jr5w-w6x2-84p9 · package-lock.jsonHigh — could seriously affect users or their data; fix promptly.
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: high
GHSA-qrxm-fqhp-jwvm · package-lock.jsonMedium — could affect users in some situations; plan a fix.
undici vulnerable to Denial of Service via unbounded memory in the EventSource parser
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-4qv8-2p9j-2685 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
undici WebSocket client vulnerable to Denial of Service via unbounded automatic PONG buffering
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-9fm3-97px-rjf6 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
undici vulnerable to Denial of Service via unhandled exception in the decompress interceptor
Fix hint: Update undici from 7.30.0 to 7.30.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-55wc-3pg8-jfw6 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
minimatch has potential denial of service via globparts amplification
Fix hint: Update minimatch from 5.1.9 to 11.0.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-g3hv-75wg-m249, GHSA-g3hv-75wg-m249, GHSA-g3hv-75wg-m249 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
launch-editor: escapeCmdArgs() omits % escaping on Windows
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-698v-4r3x-3vcv · package-lock.jsonMedium — could affect users in some situations; plan a fix.
Glob: AbortSignal cancellation bypass allows post-timeout filesystem traversal
Fix hint: Update glob from 13.0.6 to 14.0.2 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-3g3m-2fjr-6pw4 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens
Fix hint: Update undici from 7.30.0 to 7.30.1 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-f72v-6w45-q472 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
Vite: First 4 bytes of files outside of `server.fs` setting is exposed by `?vite-wasm-instance`
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-vfpm-58rq-9qcg · package-lock.jsonMedium — could affect users in some situations; plan a fix.
Vite: Files outside `server.fs.allow` could be served when project paths match system paths on non-Windows machine
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-rq7h-c2jc-7f22 · package-lock.jsonMedium — could affect users in some situations; plan a fix.
launch-editor: Editor CLI flag misinterpretation causing arbitrary command execution for some editors
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: medium
GHSA-r825-w8mm-5pxw · package-lock.jsonMedium — could affect users in some situations; plan a fix.
A crafted audioPath could make the helper read arbitrary files on disk and return their transcribed content to the caller.
Fix hint: Validate the audioPath against the allowed data directory and reject paths outside it before calling transcribe; do not trust renderer-supplied paths.
open · Review finding
ai-security · native/local-transcription/Sources/ListenLocalTranscription/main.swiftMedium — could affect users in some situations; plan a fix.
Model-generated links could use javascript: or data: URLs; clicking them in the renderer may execute script in the app context.
Fix hint: Restrict ALLOWED_ATTR to safe values and add a hook to force rel=noopener noreferrer and block javascript:/data: hrefs, or drop 'a' from allowed tags.
open · Review finding
ai-security · src/renderer/richText.tsLow — limited impact; fix during routine maintenance.
Vite: Cross origin script execution through Vite custom middleware
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
open · Dependency warning — does not block publishing · Scanner severity: low
GHSA-9jrq-w75r-8gcw · package-lock.jsonLow — limited impact; fix during routine maintenance.
A manipulated export destination could overwrite application data files or write outside the user's intended folder.
Fix hint: Compare resolved real paths (fs.realpath) of the destination against the app data directory and refuse writes inside it, and validate the format against an allowlist before opening the dialog.
open · Review finding
ai-security · docs/ARCHITECTURE.mdLow — an improvement hint for the developer, with no confirmed user harm.
Fix hint: Review the platforms in your listing Basics. This information does not affect the score or publication.
open · Review finding
platform-check · package.jsonLow — an improvement hint for the developer, with no confirmed user harm.
Fix hint: Review the platforms in your listing Basics. This information does not affect the score or publication.
open · Review finding
platform-check · package.jsonImprovement hints only; excluded from buyer headline scores.
Code cleanliness: 78 / 100 (AI maintainability review). Architecture: 76 / 100 (AI structure review). Test presence: 80 test files (presence signal only). Coverage: Not checked.
Source coverage: Sampled. Build not run by CookThisApp.