תכונות, ועד כמה הפורט התקדם

‏Mila על macOS היא קו הבסיס: כל תכונה למטה היא תכונה שלה, והעמוד הזה מציין עד כמה OpenMila התקדמה ב-Linux וב-Windows. גרסה 1.9.5-beta.2+port.5, בעקבות Mila v1.9.5-beta.2.

במבט חטוף

Headline capabilities. Mila on macOS is the baseline for every row.
CapabilityMila
macOS
OpenMila
Linux
OpenMila
Windows
Record mic / system / meetingbaselinedonewritten
Per-app audio capturebaselinedonewritten
Hebrew and English transcriptionbaselinedonewritten
GPU acceleration (Vulkan)baselinedonewritten
Speaker names (diarization)baselinedonewritten
Dictation hotkeysbaselinedonewritten
AI summaries and action itemsbaselinedonewritten
Local AI setup (Ollama)n/adonewritten
MCP server for AI toolsbaselinedonewritten
Auto-updatebaselinepartialpartial
Native installer / packagebaselinedonewritten

done נבדק בפועל על אותה מערכת; partial עובד עם מגבלה מוצהרת; written נבנה ועובר ב-CI אך עדיין לא רץ על שולחן עבודה אמיתי של Windows; n/a היא תכונה של הפורט בלבד ש-Mila לא כוללת. הדרישות נמצאות בעמוד ההורדה.

כל תכונה, בפירוט

שורה אחת לכל תכונה של Mila, נוצרת מתוך docs/port/PARITY.md. ‏Mila על macOS היא קו הבסיס בכל שורה, מוצהר כאן פעם אחת ולא נטען מחדש בכל שורה: הפרויקט הזה לא בונה, בודק או מפיץ את Mila עבור macOS, כך שהקריאה הכנה של כל שורה היא "Mila עושה את זה, והנה עד כמה כל פורט התקדם". done דורש ראיה על אותה מערכת: בדיקה, CI, הבדיקה העצמית חסרת הממשק, או הרצה של האפליקציה. אף שורת Windows לא מסומנת done, כי אף אחד עדיין לא הריץ אף אחד מהם על שולחן עבודה של Windows. איפה זה עדיין חסר היום מפרט את הפריטים הפתוחים.

הקלטה ולכידה

הקלטה ולכידה
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
1 Microphone recording, device picker, pinned input, live input level בסיס בוצע
miniaudio, openmila-cli devices and record
נכתב
same capture code, WASAPI backend
2 System audio from one chosen app בסיס בוצע
PipeWire links a capture stream to the chosen application's output (pw-record --target), with whole-system monitors still offered; verified with openmila-cli app-audio (3.07 s captured from one player, peak 0.78)
נכתב
WASAPI process loopback binds a capture client to the chosen process tree, with the whole-system monitors still offered. It compiles in CI and nothing has run it: no Windows machine has been available to this port
3 Meeting mode: mic + app audio mixed to one mono 16 kHz WAV בסיס בוצע
Port/Recording/RecordingSession.swift, RecordingTests
נכתב
4 Independent mic / app-audio toggles בסיס בוצע נכתב
5 Pause and resume with the paused span absent from audio and timer בסיס בוצע
RecordingTests
נכתב
6 Folder and meeting name chosen at record start בסיס בוצע נכתב
7 Adaptive gain control for quiet mics בסיס בוצע
upstream's AdaptiveGainController, vDSP calls behind the Accelerate shim
נכתב
8 Mic stall watchdog and app-audio restart with backoff בסיס בוצע
the session watches the frame count every second and restarts a capture that stops moving, with upstream's timeout and its backoff, and reports it when the device cannot be reopened. Upstream's policy types were not compiled off macOS at all before this (CaptureWatchdogTests)
בוצע
the same code, one watchdog for both systems
9 Mic bring-up timeout with an error that names the device בסיס בוצע נכתב
10 Refuse to transcribe an empty capture, duration read from the file בסיס בוצע נכתב
11 AAC .m4a recordings בסיס בוצע
ffmpeg where it is installed, GStreamer otherwise, which a GNOME or KDE install almost always has. Proven by a round trip: WAV to AAC and back transcribes to the same sentence
חלקי
the same two routes are tried, but neither ships in the zip, so it depends on what the machine has
12 Configurable recordings directory בסיס בוצע
plain paths, no security-scoped bookmarks
נכתב
13 Storage cap, respected by dictation בסיס בוצע
upstream code, unchanged
נכתב
14 Auto-discard accidental clips בסיס בוצע
upstream code, unchanged
נכתב
15 Sleep and screen-lock guard while recording בסיס בוצע
gnome-session-inhibit, systemd-inhibit fallback
נכתב
SetThreadExecutionState
16 Crash-recovered WAV header repair בסיס בוצע
upstream WAVHeaderRepair, WAVHeaderRepairTests runs off macOS
נכתב
17 Meeting detection (Zoom, Teams, Meet, Proton Meet) with prompts to start and stop בסיס בוצע
native apps come from /proc on every session. A meeting in a browser tab is found by window title, from X11 where a display answers and from the accessibility bus on a Wayland session, where the display protocol refuses by design. Verified live: the accessibility walk reads Wayland-native window titles on GNOME 26.04 with the desktop switch still off. Firefox and Chromium publish their windows only once accessibility is on (gsettings set org.gnome.desktop.interface toolkit-accessibility true), and the app says so rather than finding nothing quietly
נכתב
process names via CreateToolhelp32Snapshot, window captions via EnumWindows; Windows places no Wayland-style restriction on reading them, so a tab meeting is detectable on every session. MeetingTitleTests covers the shared patterns on both systems
18 Live level meters and elapsed clock without re-rendering the app בסיס בוצע
RecordingMeters, observed by the leaf view only
נכתב

תמלול

תמלול
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
19 On-device whisper.cpp, ivrit.ai large-v3 (Hebrew) and large-v3-turbo (English) בסיס בוצע
built with the Vulkan backend; a real GPU is used, a software Vulkan device is refused because it is slower than the CPU backend, and a machine with neither runs on the CPU. openmila-cli gpu reports what was found. Not yet measured on real GPU hardware
נכתב
the same code, and CI installs the Vulkan SDK so the backend is compiled into the release zip. Never run on a Windows machine, with or without a GPU
20 CoreML / ANE encoder and its banner בסיס לא רלוונטי
no ANE; .mlmodelc downloads skipped
לא רלוונטי
21 First-launch model download with progress and SHA-256 verification בסיס בוצע
verified by downloading both models
נכתב
22 Model deletion frees the whole install and keeps the choice sane בסיס בוצע
upstream ModelManager
נכתב
23 Recording language Hebrew or English, model routed per language בסיס בוצע נכתב
24 Remote transcription on any OpenAI-compatible endpoint בסיס בוצע
upstream code with the port's SecretStore; exercised against scripts/mock-openai-transcription-server.py
נכתב
25 Neural VAD (Silero) and hallucination reduction בסיס בוצע
TranscriptionCore as-is, weights bundled
נכתב
26 Live transcription while recording, mic and app audio בסיס בוצע נכתב
27 Live transcript editing, copy, mid-recording SRT export בסיס בוצע
Port/App/Sources/Views
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
28 Hardware gate for Live AI on weak machines בסיס בוצע
SystemCapabilities twin reads RAM and activeProcessorCount
נכתב
29 Transcription queue with no stuck items after relaunch בסיס בוצע
upstream TranscriptionService
נכתב
30 Re-transcribe a recording, speaker names re-attached בסיס בוצע נכתב
31 Import and transcribe existing audio files בסיס בוצע
FileTranscriber twin; watched-folder import verified word for word
נכתב
32 audio_ctx speed-up and beam search 5 בסיס בוצע
TranscriptionCore unchanged
נכתב

דוברים

דוברים
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
33 Speaker diarization with pyannote, bundled Python runtime, torch on first enable בסיס בוצע
diarization/build-bundle-linux.sh, proven by openmila-selftest diarize (torch 2.2.2 installed at runtime, turns returned)
נכתב
build-bundle-windows.ps1 builds the runtime in CI (run 35546341637, the first time it has ever been run). Nothing has loaded that runtime or diarized with it
34 Live speaker labels during recording בסיס בוצע
upstream LiveSpeakerDiarizer
נכתב
35 A colour per speaker בסיס בוצע
port theme palette
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
36 Speaker directory: name, rename, merge, un-name, naming mid-recording בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
37 Cross-recording voice recognition, opt-in, deletable בסיס בוצע
upstream OfflineVoiceEmbedder, SpeakerProfileStore
נכתב
38 Diarization toggle mid-recording takes effect immediately בסיס בוצע נכתב

הכתבה

הכתבה
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
39 Global hotkeys for English and Hebrew, configurable, conflict-checked בסיס בוצע
XGrabKey where an X display answers (including XWayland), the XDG GlobalShortcuts portal on a pure Wayland session. Both paths pick themselves and were exercised with openmila-cli hotkey; a key press through the portal still needs a human at a Wayland desktop to confirm
נכתב
RegisterHotKey on a dedicated message thread
40 Dictation overlay pill with live text, level and busy state בסיס בוצע
app window; no layer-shell, so it is an ordinary always-on-top window
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
41 Paste at the cursor into the previous app, with clipboard fallback בסיס בוצע
xdotool or wtype where they are installed, the RemoteDesktop portal on a Wayland session once the user grants it (openmila-cli grant-typing, or the Settings button), and the clipboard with a notification otherwise. Dictation never waits on the consent dialog: without permission it falls back in 0.1 s
נכתב
clipboard plus SendInput Ctrl+V
42 Dictations saved under History בסיס בוצע נכתב

יכולות בינה מלאכותית

יכולות בינה מלאכותית
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
43 Providers: Claude, Cursor, Gemini CLIs and any OpenAI-compatible endpoint בסיס בוצע
real claude CLI produced a summary in 8 s
נכתב
.cmd shims run through cmd /c
44 Managed Claude install with checksum and signature checks בסיס בוצע
as the platform allows - the linux-x64 manifest key and the published SHA-256 are verified before anything runs. There is no signature to check: Anthropic signs the macOS binary through Apple's notary service and ships the Linux one unsigned, so the port's SignatureVerifier fails closed rather than pretending to verify
חלקי
win32-x64 key, Authenticode verified with the signer's name checked; browser sign-in needs a real terminal until a ConPTY path replaces the POSIX pseudo-terminal
45 Suggested recording names בסיס בוצע נכתב
46 Automatic summary after each recording, backfill, regenerate, .summary.txt בסיס בוצע נכתב
47 Send to LLM with a custom prompt בסיס בוצע נכתב
48 Live AI rolling summary and action items with a per-recording context box בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
49 AI output language, per-feature prompts with an undo stack בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
50 Every CLI invocation logged with credentials redacted בסיס בוצע
OpenMilaLogging redacts unless OPENMILA_LOG_PRIVATE=1
נכתב

ספרייה וממשק

ספרייה וממשק
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
51 Sidebar: Home, All Transcriptions, folders with drag-and-drop, Dictations, watched folders, Recently Deleted בסיס בוצע
SwiftCrossUI + GTK4
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
52 Detail view: playback, click to seek, 0.5x-2x speed, transcript follows playback בסיס בוצע
speed goes through a WSOLA time stretcher, so pitch is preserved (StretchTests); the stretched audio also transcribes to the same words at 0.75x and 1.5x, which is the intelligibility check a frequency test cannot give
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
53 Post-recording popup and rename sheet with summary and action items בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
54 Right-click context menu on recordings בסיס בוצע
GTK GtkPopover via a button-3 gesture
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
55 Copy and share transcript with speaker labels, SRT export, timestamps בסיס בוצע נכתב
core only
56 Hebrew RTL rendering per section בסיס בוצע
Pango handles bidi; direction decided per block by upstream's HebrewDetection
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
57 Hide recents toggle בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
58 Settings with all nine sections בסיס בוצע נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
59 "What's New" before an update בסיס בוצע
notes from the GitHub release body
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
60 Main menu commands and keyboard shortcuts בסיס בוצע
as the platform allows - every command has its keyboard shortcut in the app. There is no menu bar to put them in: GNOME removed the global menu, and a Mac-style menu bar is not a thing a Linux application can have. The shortcuts are listed in Settings instead
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it
61 Diagnostic report export, credentials redacted, logs attached בסיס בוצע
DiagnosticSnapshotProvider twin over the port's own log files
נכתב
62 Sidebar material chrome בסיס בוצע
as the platform allows - layered translucent surfaces stand in for .regularMaterial. The blur behind them is the compositor's to give, and GTK 4 cannot ask for it; the look is close, not identical, and that is where it stops
נכתב
the app builds on Windows with the WinUI backend (CI packages a zip); nothing has run it

אינטגרציות

אינטגרציות
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
63 iPhone Voice Memos sync בסיס בוצע
as watched folders - the same start-date and destination rules over any synced directory (iCloud discovery is macOS-only); inotify watcher, per-folder toggles
נכתב
ReadDirectoryChangesW
64 .milaconfig one-click team setup בסיס בוצע
the packages declare application/x-milaconfig with a *.milaconfig glob and refresh the MIME database on install and removal, so a double-click opens OpenMila; update-mime-database accepts the definition
חלקי
the app reads a path from argv; the installer has no file association yet
65 Obsidian export and vault git sync בסיס בוצע
git from PATH
נכתב
66 MCP server with the consent gate בסיס בוצע
openmila-mcp through Claude Code: refused with consent off, listed recordings with it on
נכתב
builds and ships in the Windows zip; nothing has run it there
67 Self-hosted server docs בסיס בוצע
docs/self-hosted-server, docs/openmila/REMOTE_SERVER.md
בוצע
same docs

עדכונים, הרשאות ומערכת

עדכונים, הרשאות ומערכת
#יכולתMila
macOS
OpenMila
Linux
OpenMila
Windows
68 Auto-update with a beta channel and a pre-release guard בסיס בוצע
for the AppImage - the check, the beta channel and the pre-release guard, plus an install step that verifies the published SHA-256 and replaces the running AppImage (SelfUpdateTests); a .deb install is sent to the release page, since that belongs to the package manager
חלקי
the check works; the zip has no self-install
69 Permission prompts for microphone, screen recording, accessibility בסיס לא רלוונטי
no per-app permission gates; PipeWire and portal dialogs appear where the session requires them
לא רלוונטי
the microphone privacy setting is the OS's own
70 Keychain storage for API keys בסיס בוצע
the desktop keyring through libsecret (GNOME Keyring, KWallet, KeePassXC), with 0600 files where no Secret Service answers (SecretServiceStoreTests)
נכתב
DPAPI
71 Privacy-safe logging בסיס בוצע נכתב
72 Stable code signing so permissions survive updates בסיס לא רלוונטי לא רלוונטי

איפה זה עדיין חסר היום

ב-Linux

  • זיהוי פגישות לא מזהה פגישות בדפדפן בסשן Wayland טהור. אפליקציות טבעיות מזוהות מ-/proc בכל סשן, ופגישה בכרטיסיית דפדפן נקראת מכותרת החלון, שרק X11 ו-XWayland חושפים. לקוח Wayland לא יכול לראות את החלונות של לקוח אחר מעצם התכנון, כך שאין מה לקרוא.
  • נתיב קיצור הדרך הגלובלי של Wayland עדיין לא אושר על ידי אדם. ה-portal‏ ‏‏XDG‏‏ ‏GlobalShortcuts מחובר ונבחר מעצמו כשאין תצוגת X שעונה, ונבדק עם openmila-cli hotkey, אבל לחיצת מקש בפועל בשולחן עבודה של Wayland עדיין לא נצפתה.
  • ‏Vulkan מעולם לא נמדד לזמן. הליבה מקומפלת והבדיקה נבדקת, אבל למחשב הפיתוח אין GPU, כך שאף תמלול לא נמדד על אחד כזה.
  • התקנת Claude המנוהלת מאמתת checksum, ואין חתימה לאמת. ‏Anthropic מאשרת (notarize) את הבינארי של macOS דרך Apple ומספקת את זה של Linux ללא חתימה, כך שמאמת הפורט נכשל סגור במקום להעמיד פנים.
  • אין סרגל תפריט ב-GNOME. ‏GNOME הסירה את התפריט הגלובלי, וסרגל תפריט בסגנון Mac הוא לא משהו שאפליקציית Linux יכולה לקבל, כך שלכל פקודה יש קיצור מקלדת משלה ובהגדרות מופיעה הרשימה.
  • ל-chrome של סרגל הצד אין טשטוש (blur). הטשטוש מאחורי משטח שקוף למחצה הוא תפקיד ה-compositor, ו-GTK 4 לא יכול לבקש אותו. משטחים שקופים למחצה מרובדים מתקרבים לזה, וזה איפה שזה נעצר.
  • אין Neural Engine, ולכן אין מקודד CoreML. אין מקבילה לבקש.

ב-Windows

  • שום דבר לא הורץ על שולחן עבודה אמיתי. כל מה שמסומן written נבנה ומופץ, וזה כל מה שאפשר לטעון.
  • הקלטות .m4a קומפקטיות תלויות במחשב. גם ffmpeg וגם GStreamer מנוסים, ואף אחד מהם לא מגיע בתוך ה-zip, כך שאם תקבלו .m4a או WAV תלוי במה שכבר מותקן.
  • ל-zip הנייד אין התקנה עצמית. בדיקת העדכונים עובדת; התקנת העדכון היא הורדה חדשה.
  • התחברות ל-Claude המנוהל דורשת טרמינל אמיתי. ‏Authenticode מאומת עם בדיקת שם החותם, אבל התחברות דרך דפדפן ממתינה לנתיב ConPTY שיחליף את הפסאודו-טרמינל של POSIX.
  • אין שיוך קובץ ל-.milaconfig. האפליקציה קוראת נתיב מהארגומנטים שלה; למתקין אין שיוך לרשום.

איזו גרסת Mila זה תואם

‏OpenMila נמדדת מול תג מקור אחד בכל פעם. כרגע היא עוקבת אחרי Mila v1.9.5-beta.2 (2026-09-17), כאשר v1.9.4 (2026-09-10), הגרסה היציבה האחרונה מהמקור, נשמרת כבנייה מארכיונית להשוואה זו לצד זו. גרסאות קודמות מאז v1.8.8 מקופלות לתוך הטבלאות למעלה.

כל גרסת OpenMila היא פורט של גרסת Mila אחת, בשם <mila version>+port.<n>. תכונות, מודלים והצמדות מנוע עוקבים אחרי המקור: הפורט מוסיף קוד פלטפורמה, לא תכונות. ראו את יומן השינויים.