Public Kitchen Report
Back to appScores
Score details and supporting evidence for each check.
All promised features found
Features found in source
App specification source review: 24 of 24 features (100%); partial features count half. Source review based on your App specification (24 features).
The AI read 136 of 298 source files.
Features found in the code
App specification source review: 24 of 24 features found in source (100%)
Show the 24 features
- ✓ Transcribe live microphone audio, computer audio or both into timestamped text. — found
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:1
- ✓ Pause, resume and stop live recording. — found
Files 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:1
- ✓ Import supported audio recordings and follow transcription progress. — found
Files 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:1
- ✓ Cancel an active recording import or retry an eligible failed transcription. — found
Files 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:1
- ✓ Reopen saved sessions with their transcripts and chat history. — found
Files 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:1
- ✓ Rename sessions manually or enable periodic automatic titles. — found
Files 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:1
- ✓ Organize sessions into folders using drag and drop or a folder selector. — found
Files 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:1
- ✓ Play retained recordings with seeking, ten-second skips and adjustable playback speed. — found
Files 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:1
- ✓ Jump to audio passages using transcript timestamps. — found
Files 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:1
- ✓ Edit and format transcript text. — found
Files 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:1
- ✓ Ask the assistant questions using session transcripts, notes, bookmarks and retained chat history. — found
Files 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:5
- ✓ Request meeting topics, action items and highlights through assistant shortcuts. — found
Files 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:3
- ✓ Choose whether individual chat messages inform future assistant answers. — found
Files 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:6
- ✓ Create, edit and delete meeting notes. — found
Files 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:3
- ✓ Save transcript excerpts and assistant answers as notes. — found
Files 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:8
- ✓ Bookmark transcript excerpts and return to their original passages. — found
Files 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:1
- ✓ Generate meeting reports for download as Markdown, Word, HTML or Excel documents. — found
Files 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:1
- ✓ Export timestamped transcripts as plain text or SRT subtitles. — found
Files 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:1
- ✓ Display live subtitles in a floating overlay with a separate chat window. — found
Files 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:1
- ✓ Discard retained audio while keeping session text. — found
Files 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:1
- ✓ Permanently delete sessions and their saved content. — found
Files 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:1
- ✓ Customize colours, text appearance and panel layout. — found
Files 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:1
- ✓ Choose AI models, a default audio source and whether to retain live recordings. — found
Files 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:1
- ✓ Create downloadable report with using ai agent as result of discussion with it — found
Files 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:1
Static AI review of the source. Partial features count half. Actual run verification: Not tested; source presence and a responding demo do not prove the features work.
Good, small improvements suggested
Security screening
3 security issue(s) found; serious issues reduce this score most. No scan guarantees safety.
- medium · Native helper transcribes any filesystem path supplied over stdin · native/local-transcription/Sources/ListenLocalTranscription/main.swift
What to do: Validate the audioPath against the allowed data directory and reject paths outside it before calling transcribe; do not trust renderer-supplied paths.
- medium · Sanitized rich text still permits arbitrary href schemes · src/renderer/richText.ts
What to do: 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.
- low · Report export path handling relies on documentation, not visible validation · docs/ARCHITECTURE.md
What to do: 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.
Some setup steps missing
Setup files
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.
- ✕ README
- ✕ Environment example
- ✓ Install command
- ✓ Run entry point
- ✓ App specification or AGENTS — AGENTS.md, Saved App specification
- ✓ Confirmed How to run it
- ✕ Run manifest
Mostly up to date, some updates suggested
Dependency & license health
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.
- electron — 1 known issues (1 high) · dev-only
- glob — 1 known issues (1 moderate) · dev-only
- minimatch — 3 known issues (3 moderate) · scope unknown
- undici — 8 known issues (4 high, 4 moderate) · dev-only
- vite — 6 known issues (1 high, 4 moderate, 1 low) · dev-only
- buffers — unknown licence
- chainsaw — unknown licence (MIT/X11)
- codec-parser — copyleft licence (LGPL-3.0-or-later)
- dompurify — copyleft licence ((MPL-2.0 OR Apache-2.0))
- glob — unknown licence (BlueOak-1.0.0)
- jszip — copyleft licence ((MIT OR GPL-3.0-or-later))
- lightningcss — copyleft licence (MPL-2.0)
- lightningcss-android-arm64 — copyleft licence (MPL-2.0)
- lightningcss-darwin-arm64 — copyleft licence (MPL-2.0)
- lightningcss-darwin-x64 — copyleft licence (MPL-2.0)
- lightningcss-freebsd-x64 — copyleft licence (MPL-2.0)
- lightningcss-linux-arm-gnueabihf — copyleft licence (MPL-2.0)
- lightningcss-linux-arm64-gnu — copyleft licence (MPL-2.0)
- lightningcss-linux-arm64-musl — copyleft licence (MPL-2.0)
- lightningcss-linux-x64-gnu — copyleft licence (MPL-2.0)
- lightningcss-linux-x64-musl — copyleft licence (MPL-2.0)
- lightningcss-win32-arm64-msvc — copyleft licence (MPL-2.0)
- lightningcss-win32-x64-msvc — copyleft licence (MPL-2.0)
- lru-cache — unknown licence (BlueOak-1.0.0)
- minimatch — unknown licence (BlueOak-1.0.0)
- minipass — unknown licence (BlueOak-1.0.0)
- pako — unknown licence ((MIT AND Zlib))
- path-scurry — unknown licence (BlueOak-1.0.0)
- sax — unknown licence (BlueOak-1.0.0)
- serdar-live-transcript — unknown licence
Source coverage: Sampled — some eligible source files were omitted
Dependency vulnerability check: Complete
Build not run by CookThisApp.
Suggestions (22)
Most serious first · Page 1
undici 7.30.0: undici vulnerable to TLS certificate validation bypass via dropped tls options in Agent
High — could seriously affect users or their data; fix promptly.
undici vulnerable to TLS certificate validation bypass via dropped tls options in Agent
Dependency warning — does not block publishing. Review before use. Scanner severity: high.
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
Open
GHSA-2m5v-pch6-74hx · package-lock.jsonundici 7.30.0: undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
High — could seriously affect users or their data; fix promptly.
undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
Dependency warning — does not block publishing. Review before use. Scanner severity: high.
Fix hint: Update undici from 7.30.0 to 7.30.1 or newer (check compatibility).
Open
GHSA-4w7w-5xrc-9h26 · package-lock.jsonvite 8.3.2: launch-editor: `fs.existsSync()` existence check can be bypassed on Windows
High — could seriously affect users or their data; fix promptly.
launch-editor: `fs.existsSync()` existence check can be bypassed on Windows
Dependency warning — does not block publishing. Review before use. Scanner severity: high.
Fix hint: Update vite from 8.3.2 to 8.3.3 or newer (check compatibility).
Open
GHSA-587h-7wmj-h5pm · package-lock.jsonundici 7.30.0: undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
High — could seriously affect users or their data; fix promptly.
undici vulnerable to Denial of Service via unhandled error on excessive content-encodings
Dependency warning — does not block publishing. Review before use. Scanner severity: high.
Fix hint: Update undici from 7.30.0 to 6.29.1 or newer (check compatibility).
Open
GHSA-xjj6-f33q-929c · package-lock.jsonelectron 44.5.1: Electron: Mitigation for compromised eMudhra intermediate certificates
High — could seriously affect users or their data; fix promptly.
Electron: Mitigation for compromised eMudhra intermediate certificates
Dependency warning — does not block publishing. Review before use. Scanner severity: high.
Fix hint: Update electron from 44.5.1 to 45.0.0-beta.6 or newer (check compatibility).
Open
GHSA-jr5w-w6x2-84p9 · package-lock.json
Kitchen Report
Current run: generation 6
AI Meeting Assistant — Transcribe, Capture, Keep. · Version 01a18425-4157-7bef-96a5-814bfd181dfb
Report complete.
Live provider analysis
Ordinary dependency advisories are disclosed warnings and allow publication. Harmful source, malicious packages and unresolved rights or license blockers prevent publication.
Features found in source are not proof the app works. Actual run verification: Not tested. License and rights eligibility requires the seller’s declarations; dependency license compatibility: Not checked. Checks do not guarantee safety or production readiness.
Download reportView findings and fixesOur estimate: $33–57 in AI usage, plus your own time.
How we estimate
We estimate AI usage for repeated edits and context reads, priced at Claude Sonnet 5.5 rates. Repeated reads use the provider's cached-input price.
The developer sets the price; this estimate is guidance only.
Formula v4 · AI usage estimate · 5 rework iterations · 16× context · claude-sonnet-5-5 · Price table 2
Source checks
Source check ✓ 28/10/2026
- 1. Unpacking · ✓ Done
- 2. Secret scan · ✓ Done
- 3. Safety scan (S1) · ✓ Done
- 4. Dependency scan (S2) · ✓ Done
- GHSA-2m5v-pch6-74hx · undici · package-lock.json
- GHSA-4qv8-2p9j-2685 · undici · package-lock.json
- GHSA-4w7w-5xrc-9h26 · undici · package-lock.json
- GHSA-55wc-3pg8-jfw6 · undici · package-lock.json
- GHSA-587h-7wmj-h5pm · vite · package-lock.json
- GHSA-698v-4r3x-3vcv · vite · package-lock.json
- GHSA-9fm3-97px-rjf6 · undici · package-lock.json
- GHSA-9jrq-w75r-8gcw · vite · package-lock.json
- GHSA-f72v-6w45-q472 · undici · package-lock.json
- GHSA-jr5w-w6x2-84p9 · electron · package-lock.json
- GHSA-qrxm-fqhp-jwvm · undici · package-lock.json
- GHSA-r825-w8mm-5pxw · vite · package-lock.json
- GHSA-rq7h-c2jc-7f22 · vite · package-lock.json
- GHSA-vfpm-58rq-9qcg · vite · package-lock.json
- GHSA-xjj6-f33q-929c · undici · package-lock.json
For developers: code quality
Improvement hints only; these do not contribute to buyer headline scores.
Architecture / structure: 76 / 100 (AI structure review)
Code cleanliness: 78 / 100 (AI maintainability review)
Test presence: 80 test files found (presence signal only). Coverage: Not checked.
Source size: 40978 LOC (metric, not a scored check).
- Swift helper emits JSON lines and maps failures to user-facing messages; good separation of protocol from logic. native/local-transcription/Sources/ListenLocalTranscription/main.swift
- Shared esbuild options extracted so build and tests use one worker configuration; reduces drift. scripts/build-lib.mjs
- Strict TypeScript with noUnusedLocals/Parameters is enabled, supporting the typing score. tsconfig.json