[1/12] chore+docs: repo foundation — gitignore, license notices, parity matrix & execution plan - #10
[1/12] chore+docs: repo foundation — gitignore, license notices, parity matrix & execution plan#10Mvkd108 wants to merge 3 commits into
Conversation
|
Claude finished @Mvkd108's task in 4m 36s —— View job Claude finished @Mvkd108's task
|
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📝 WalkthroughWalkthroughThis PR expands repository ignore rules, testing workflow guidance, third-party attribution, license files, and Windows/macOS parity documentation. It records implementation status, qualification evidence, migration requirements, deferred work, and release-readiness criteria. ChangesWindows documentation and compliance
Estimated code review effort: 2 (Simple) | ~15 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR lays down repository “foundation” materials for the stacked Windows-native rebuild: expanded ignore rules for generated/secrets/artifacts, a refreshed third‑party notices file with vendored license texts, and two large planning docs that define the macOS→Windows parity contract and phased execution plan.
Changes:
- Expand
.gitignoreto prevent committing local secrets, databases, model artifacts, recordings, and packaging outputs. - Add/refresh license documentation:
THIRD-PARTY-NOTICES.mdplus vendored texts inlicenses/. - Add foundational planning docs:
docs/WINDOWS_MACOS_PARITY_MATRIX.mdanddocs/WINDOWS_EXECUTION_PLAN.md; updateAGENTS.mdworkflow guidance.
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
.gitignore |
Adds ignore patterns for local/env artifacts, models, media, secrets, and packaging outputs. |
AGENTS.md |
Updates agent workflow guidance (build/launch/log checks) for the repo. |
THIRD-PARTY-NOTICES.md |
Rewrites third-party notices with more detailed component/runtime/model attributions. |
docs/WINDOWS_EXECUTION_PLAN.md |
Adds the phased execution plan and acceptance gates for parity work. |
docs/WINDOWS_MACOS_PARITY_MATRIX.md |
Adds the authoritative parity matrix and backlog/decision ledger. |
licenses/Apache-2.0.txt |
Adds Apache 2.0 license text for applicable dependencies. |
licenses/BSD-3-Clause.txt |
Adds BSD 3‑Clause license text for applicable dependencies. |
licenses/CC-BY-4.0.txt |
Adds CC BY 4.0 license text for applicable models. |
licenses/MIT.txt |
Adds MIT license text for applicable dependencies. |
licenses/OFL-1.1.txt |
Adds SIL OFL 1.1 text for the Inter font. |
licenses/QuestPDF-2026.5.0.md |
Vendors the QuestPDF license text shipped in the referenced NuGet package. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| macOS reference: `C:/Users/madha/Downloads/muesli-main/muesli-main`. | ||
|
|
||
| Product reference: `C:/Users/madha/.codex/attachments/29153153-e376-4f1d-9d12-1e7c7808b737/pasted-text.txt`. |
| - No placeholders or fake data | ||
|
|
||
| ### Testing Workflow | ||
| - **After every project update made by Codex, automatically launch or relaunch Muesli with its dashboard visibly open and foregrounded before reporting completion. Do not wait for the user to ask, and do not use a hidden-window launch.** |
| - Launch with Start-Process so the shell does not block: | ||
| `Start-Process -FilePath "C:\Users\madha\projects\muesli\windows-native\Muesli.Windows\bin\Debug\net8.0-windows\Muesli.exe" -WorkingDirectory "C:\Users\madha\projects\muesli\windows-native\Muesli.Windows\bin\Debug\net8.0-windows"` |
| @@ -0,0 +1,21 @@ | |||
| MIT License | |||
|
|
|||
| Copyright (c) the copyright holders identified in THIRD-PARTY-NOTICES.md | |||
| @@ -0,0 +1,29 @@ | |||
| BSD 3-Clause License | |||
|
|
|||
| Copyright (c) the copyright holders identified in THIRD-PARTY-NOTICES.md | |||
|
|
||
| - Creator and attribution: NVIDIA Corporation, `nvidia/nemotron-3.5-asr-streaming-0.6b`. | ||
| - Source/model card: https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b | ||
| - Converted artifact source: https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models | ||
| - Use: opt-in local live meeting transcription through sherpa-onnx. The artifact downloads only after an explicit user action and is not bundled in the installer. The upstream model-card license terms apply. |
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/WINDOWS_MACOS_PARITY_MATRIX.md (1)
456-463: 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy liftSynchronize the status roll-ups with the finalization evidence.
The later finalization section records session-journal schema 3, 195 tests, and fresh multi-speaker CUDA evidence. Earlier sections still report schema 2, 165 tests, no fresh diarization run, and several implemented features as missing.
docs/WINDOWS_MACOS_PARITY_MATRIX.md#L456-L463: distinguish Missing, Partial, and Implemented but insufficiently verified; report 195 tests.docs/WINDOWS_EXECUTION_PLAN.md#L178-L178: report session-journal schema 3 or scope schema 2 to the pre-finalization state.docs/WINDOWS_MACOS_PARITY_MATRIX.md#L97-L99: update LIVE-03 to schema 3 and replace the stale DIA-01 evidence statement.docs/WINDOWS_EXECUTION_PLAN.md#L376-L378: change 165/165 to 195/195 and preserve the remaining physical qualification gaps.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/WINDOWS_MACOS_PARITY_MATRIX.md` around lines 456 - 463, Synchronize the finalization evidence across all listed documentation sites: in docs/WINDOWS_MACOS_PARITY_MATRIX.md lines 456-463, distinguish Missing, Partial, and Implemented-but-insufficiently-verified items and report 195 tests; in docs/WINDOWS_EXECUTION_PLAN.md line 178, report session-journal schema 3 or explicitly scope schema 2 to pre-finalization; in docs/WINDOWS_MACOS_PARITY_MATRIX.md lines 97-99, update LIVE-03 to schema 3 and replace stale DIA-01 evidence; and in docs/WINDOWS_EXECUTION_PLAN.md lines 376-378, change 165/165 to 195/195 while retaining the remaining physical qualification gaps.
🧹 Nitpick comments (2)
AGENTS.md (1)
22-34: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove duplicated guidance and the hardcoded user path.
Lines 24-26 and lines 27-32 give the same instructions twice: kill the running process, build, then launch. The second block adds more detail, but readers cannot tell which instruction is authoritative if the two blocks ever diverge (for example,
dotnet build --no-restoreon line 25 versus the explicit.csprojcommand on lines 29-30).Line 32 hardcodes the path
C:\Users\madha\projects\muesli\windows-native\Muesli.Windows\bin\Debug\net8.0-windows\Muesli.exe. This path is specific to one contributor's machine and username. Another developer or agent with a different clone location cannot use this command as written.Merge the two blocks into one, and use a repo-relative path for the
Start-Processcommand instead of an absolute per-user path.✏️ Proposed consolidation
-- **After every project update made by Codex, automatically launch or relaunch Muesli with its dashboard visibly open and foregrounded before reporting completion. Do not wait for the user to ask, and do not use a hidden-window launch.** -- For source or project-file changes, rebuild first; for documentation or workflow-only changes, reuse the current successful build unless a rebuild is relevant. -- Kill running `Muesli.exe` before building when needed -- Build with `dotnet build --no-restore` -- Run executable directly from `bin/Debug/net8.0-windows/` -- After any code fix that affects the WPF app, build and launch Muesli before reporting completion. -- Kill existing `Muesli.exe` before build/launch when needed. -- Use: - `dotnet build windows-native\Muesli.Windows\Muesli.Windows.csproj --no-restore` -- Launch with Start-Process so the shell does not block: - `Start-Process -FilePath "C:\Users\madha\projects\muesli\windows-native\Muesli.Windows\bin\Debug\net8.0-windows\Muesli.exe" -WorkingDirectory "C:\Users\madha\projects\muesli\windows-native\Muesli.Windows\bin\Debug\net8.0-windows"` +- **After every project update made by Codex, automatically launch or relaunch Muesli with its dashboard visibly open and foregrounded before reporting completion. Do not wait for the user to ask, and do not use a hidden-window launch.** +- For source or project-file changes, rebuild first; for documentation or workflow-only changes, reuse the current successful build unless a rebuild is relevant. +- Kill running `Muesli.exe` before building when needed. +- Build with: `dotnet build windows-native\Muesli.Windows\Muesli.Windows.csproj --no-restore` +- Launch with Start-Process (from the repository root) so the shell does not block: + `Start-Process -FilePath "windows-native\Muesli.Windows\bin\Debug\net8.0-windows\Muesli.exe" -WorkingDirectory "windows-native\Muesli.Windows\bin\Debug\net8.0-windows"`Based on learnings, the executable should be run from
windows-native\Muesli.Windows\bin\Debug\net8.0-windows\usingStart-Processwith that directory as the working directory, not from a hardcoded per-user absolute path.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@AGENTS.md` around lines 22 - 34, Consolidate the duplicated Muesli build-and-launch guidance in AGENTS.md into one authoritative sequence, retaining the explicit project build command and required process/log checks. Update the Start-Process executable and working-directory arguments to use repo-relative paths under windows-native\Muesli.Windows\bin\Debug\net8.0-windows instead of the hardcoded user-specific path.Source: Learnings
docs/WINDOWS_EXECUTION_PLAN.md (1)
59-61: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winMake the visible-launch gate reproducible.
Set
windows-native\Muesli.Windows\bin\Debug\net8.0-windows\as theStart-Processworking directory. Record a marker in the newest%APPDATA%\muesli\logs\muesli-*.logfile before launch. Inspect only bytes written after that marker. The current text leaves the working directory and log-file selection implicit.Based on learnings, run the executable directly from its output directory and inspect the latest log slice after launch.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/WINDOWS_EXECUTION_PLAN.md` around lines 59 - 61, Update the visible-launch procedure in the execution plan to run Start-Process with windows-native\Muesli.Windows\bin\Debug\net8.0-windows\ as its working directory, select the newest %APPDATA%\muesli\logs\muesli-*.log file, and record a launch marker in that file before starting Muesli.exe. Restrict post-launch inspection to bytes written after that marker while preserving the existing UI and error-entry checks.Source: Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/WINDOWS_EXECUTION_PLAN.md`:
- Around line 301-309: The migration table’s session-journal row uses an
ambiguous duplicate “P5” phase label. Rename the `P5 (finalization)` row to `P4
(finalization)` or a clearly named cross-phase migration track, while keeping
the calendar settings row labeled `P5`.
In `@docs/WINDOWS_MACOS_PARITY_MATRIX.md`:
- Around line 178-180: Align the “Actionable parity backlog for every Partial or
Missing item” section with its stated scope by removing entries for MOD-02,
MOD-03, HOT-02, HOOK-01, and AUTO-01 unless the section contract is explicitly
broadened to include verification debt. Keep those rows governed by the
appropriate verification-debt section when they are already complete or
implemented.
- Around line 13-15: Update the “How to read this document” section in
WINDOWS_MACOS_PARITY_MATRIX.md to bind the matrix and the qualification evidence
to a reproducible source commit or worktree hash, as required by the references
around Lines 328-339. Identify any uncommitted inputs separately, or remove the
claim that the matrix is authoritative for existing uncommitted changes.
In `@THIRD-PARTY-NOTICES.md`:
- Around line 122-127: Add an “Included text” reference to licenses/MIT.txt
within the Silero VAD entry, alongside its existing source and license details,
matching the format used by other MIT-licensed entries such as NAudio and
SharpCompress.
- Around line 115-121: Update the “NVIDIA Nemotron 3.5 ASR Streaming 0.6B” entry
to include an explicit License field naming the upstream model-card license; if
it corresponds to a vendored file, also add the matching Included text
reference, otherwise state that the license is unconfirmed rather than omitting
the field.
---
Outside diff comments:
In `@docs/WINDOWS_MACOS_PARITY_MATRIX.md`:
- Around line 456-463: Synchronize the finalization evidence across all listed
documentation sites: in docs/WINDOWS_MACOS_PARITY_MATRIX.md lines 456-463,
distinguish Missing, Partial, and Implemented-but-insufficiently-verified items
and report 195 tests; in docs/WINDOWS_EXECUTION_PLAN.md line 178, report
session-journal schema 3 or explicitly scope schema 2 to pre-finalization; in
docs/WINDOWS_MACOS_PARITY_MATRIX.md lines 97-99, update LIVE-03 to schema 3 and
replace stale DIA-01 evidence; and in docs/WINDOWS_EXECUTION_PLAN.md lines
376-378, change 165/165 to 195/195 while retaining the remaining physical
qualification gaps.
---
Nitpick comments:
In `@AGENTS.md`:
- Around line 22-34: Consolidate the duplicated Muesli build-and-launch guidance
in AGENTS.md into one authoritative sequence, retaining the explicit project
build command and required process/log checks. Update the Start-Process
executable and working-directory arguments to use repo-relative paths under
windows-native\Muesli.Windows\bin\Debug\net8.0-windows instead of the hardcoded
user-specific path.
In `@docs/WINDOWS_EXECUTION_PLAN.md`:
- Around line 59-61: Update the visible-launch procedure in the execution plan
to run Start-Process with
windows-native\Muesli.Windows\bin\Debug\net8.0-windows\ as its working
directory, select the newest %APPDATA%\muesli\logs\muesli-*.log file, and record
a launch marker in that file before starting Muesli.exe. Restrict post-launch
inspection to bytes written after that marker while preserving the existing UI
and error-entry checks.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1cd3c070-1ef4-4007-961d-cd1b8b8b867a
📒 Files selected for processing (11)
.gitignoreAGENTS.mdTHIRD-PARTY-NOTICES.mddocs/WINDOWS_EXECUTION_PLAN.mddocs/WINDOWS_MACOS_PARITY_MATRIX.mdlicenses/Apache-2.0.txtlicenses/BSD-3-Clause.txtlicenses/CC-BY-4.0.txtlicenses/MIT.txtlicenses/OFL-1.1.txtlicenses/QuestPDF-2026.5.0.md
| | Phase | Expected migration surface | Required invariant | | ||
| |---|---|---| | ||
| | P1 | Model catalog/version/readiness metadata if persisted; cleanup model metadata. | Existing selected Parakeet/default settings remain valid; missing/removed model becomes an explicit unresolved selection, never a hidden fallback. | | ||
| | P2 | Settings schema 3 adds persisted filler-word removal; existing dictionary records retain their fields while matching becomes more conservative. | Existing selected model roles and settings persist; filler removal defaults on for migrated users and can be disabled; dictionary records preserve exact phrase/replacement data. | | ||
| | P3 | Meeting schema: manual notes, raw/edited transcript provenance, session status/journal, track metadata, folder parent/order, retranscription state. | Existing meetings/folders load losslessly; flat folders become roots; failed migration restores backup; generated and manual notes never merge implicitly. | | ||
| | P4 | Live model IDs, ownership enum, final model ID, VAD/checkpoint/gap/reconciliation metadata. | Legacy meetings are marked offline-final; no inferred live owner; raw contributions remain available. | | ||
| | P5 (finalization) | Session-journal schema 3 adds `MicrophonePartOffsetsMs`/`SystemPartOffsetsMs`, the meeting-time anchor of each captured part. | Schema 2 journals load unchanged and migrate to contiguous anchors, which is exactly the placement they already assumed; a missing or short anchor list falls back to contiguous rather than dropping parts; a recorded anchor can never rewind into previously captured audio. | | ||
| | P5 | Calendar settings, event cache cursor, dismissal/tombstone state; tokens only in Credential Manager. | No token in JSON/logs; disabled calendar performs no network work; stale dismissals prune deterministically. | | ||
| | P6 | Provider endpoints/nonsecret options, hook settings, auto-export destination/format/idempotency state. | Secrets stay protected; invalid executable/path disables with visible error; existing meetings do not retroactively run automation. | |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Disambiguate the P5 (finalization) migration row.
The plan defines Phase 5 as meeting detection and calendar work at Lines [202-204]. The migration table uses P5 (finalization) for session-journal schema 3, then uses P5 again for calendar settings. Rename the finalization row to P4 (finalization) or to a named cross-phase migration track. Keep the calendar row under Phase 5.
🧰 Tools
🪛 LanguageTool
[style] ~307-~307: Consider an alternative for the overused word “exactly”.
Context: ...migrate to contiguous anchors, which is exactly the placement they already assumed; a m...
(EXACTLY_PRECISELY)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/WINDOWS_EXECUTION_PLAN.md` around lines 301 - 309, The migration table’s
session-journal row uses an ambiguous duplicate “P5” phase label. Rename the `P5
(finalization)` row to `P4 (finalization)` or a clearly named cross-phase
migration track, while keeping the calendar settings row labeled `P5`.
| ## How to read this document | ||
|
|
||
| This matrix is authoritative for the audited working tree, including its existing uncommitted changes. It supersedes feature-status statements in older roadmap and historical qualification documents where the code has moved on. The current operational model documentation is `WINDOWS_TRANSCRIPTION_MODELS.md`; older retained qualification reports may still describe the Parakeet-only build they tested. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Bind the matrix to a reproducible revision.
Line [15] calls the matrix authoritative for existing uncommitted changes. A later merge commit can omit those changes, so readers cannot reproduce the statuses or qualification evidence from the committed tree. Record the source commit or worktree hash required by Lines [328-339]. Identify uncommitted inputs separately, or remove the authority claim.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/WINDOWS_MACOS_PARITY_MATRIX.md` around lines 13 - 15, Update the “How to
read this document” section in WINDOWS_MACOS_PARITY_MATRIX.md to bind the matrix
and the qualification evidence to a reproducible source commit or worktree hash,
as required by the references around Lines 328-339. Identify any uncommitted
inputs separately, or remove the claim that the matrix is authoritative for
existing uncommitted changes.
| ## Actionable parity backlog for every Partial or Missing item | ||
|
|
||
| This section is the implementation contract for all matrix rows marked **Partial** or **Missing**. Rows marked “implemented but insufficiently verified” are governed by the verification debt section after this backlog. Blocked and platform-equivalent items are governed by the decision/equivalence ledgers. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Make the actionable backlog match its stated scope.
The section says it covers every Partial or Missing row. It includes MOD-02 and MOD-03, which are Complete and verified, plus HOT-02, HOOK-01, and AUTO-01, which are already implemented. This duplicates or contradicts the verification-debt section. Remove those entries or change the section contract to include verification debt explicitly.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/WINDOWS_MACOS_PARITY_MATRIX.md` around lines 178 - 180, Align the
“Actionable parity backlog for every Partial or Missing item” section with its
stated scope by removing entries for MOD-02, MOD-03, HOT-02, HOOK-01, and
AUTO-01 unless the section contract is explicitly broadened to include
verification debt. Keep those rows governed by the appropriate verification-debt
section when they are already complete or implemented.
| ### NVIDIA Nemotron 3.5 ASR Streaming 0.6B | ||
|
|
||
| - Creator and attribution: NVIDIA Corporation, `nvidia/nemotron-3.5-asr-streaming-0.6b`. | ||
| - Source/model card: https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b | ||
| - Converted artifact source: https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models | ||
| - Use: opt-in local live meeting transcription through sherpa-onnx. The artifact downloads only after an explicit user action and is not bundled in the installer. The upstream model-card license terms apply. | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Add an explicit license field for Nemotron 3.5 ASR.
Every other component entry in this document states a License field explicitly (for example Parakeet at Line 110, Silero VAD at Line 125). The Nemotron 3.5 ASR entry only says "The upstream model-card license terms apply" without naming the license or referencing an included license text. State the specific license and, if it maps to one of the vendored texts in licenses/, add an "Included text" reference. If the license is not yet confirmed, note this explicitly instead of omitting the field silently.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@THIRD-PARTY-NOTICES.md` around lines 115 - 121, Update the “NVIDIA Nemotron
3.5 ASR Streaming 0.6B” entry to include an explicit License field naming the
upstream model-card license; if it corresponds to a vendored file, also add the
matching Included text reference, otherwise state that the license is
unconfirmed rather than omitting the field.
| ### Silero VAD | ||
|
|
||
| - Creator and attribution: Silero Team, `snakers4/silero-vad`. | ||
| - Source and license: https://github.com/snakers4/silero-vad (MIT). | ||
| - Use: opt-in local speech-boundary detection for live meeting transcription. The pinned ONNX artifact downloads only with the live model and is not bundled in the installer. | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Add "Included text" reference for Silero VAD.
The Silero VAD entry states an MIT license but does not reference licenses/MIT.txt the way other MIT-licensed entries do (for example NAudio at Line 37, SharpCompress at Line 45). Add the "Included text" line for consistency, since the PR's stated goal is complete offline attribution.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@THIRD-PARTY-NOTICES.md` around lines 122 - 127, Add an “Included text”
reference to licenses/MIT.txt within the Silero VAD entry, alongside its
existing source and license details, matching the format used by other
MIT-licensed entries such as NAudio and SharpCompress.
fe8b52a to
a1a0829
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@licenses/QuestPDF-2026.5.0.md`:
- Around line 3-5: The file licenses/QuestPDF-2026.5.0.md contains a preamble
and diverges from the upstream QuestPDF 2026.5.0 license, most notably changing
"QUESTPDF OR ITS LICENSORS" to "QUESTPDF AND ITS LICENSORS" in the liability
clause. Either replace the entire file with the exact upstream LICENSE.md text
from the QuestPDF 2026.5.0 tagged release, or if keeping the preamble as a
summary, ensure the actual license text below it matches the upstream version
exactly and explicitly mark the file as a summary to clarify that the preamble
is not part of the official license.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: bff10b44-f068-49e8-a9ca-20eef5780e5f
📒 Files selected for processing (11)
.gitignoreAGENTS.mdTHIRD-PARTY-NOTICES.mddocs/WINDOWS_EXECUTION_PLAN.mddocs/WINDOWS_MACOS_PARITY_MATRIX.mdlicenses/Apache-2.0.txtlicenses/BSD-3-Clause.txtlicenses/CC-BY-4.0.txtlicenses/MIT.txtlicenses/OFL-1.1.txtlicenses/QuestPDF-2026.5.0.md
🚧 Files skipped from review as they are similar to previous changes (6)
- licenses/MIT.txt
- licenses/OFL-1.1.txt
- docs/WINDOWS_MACOS_PARITY_MATRIX.md
- .gitignore
- AGENTS.md
- licenses/BSD-3-Clause.txt
| This is the license text shipped in the QuestPDF 2026.5.0 NuGet package used by | ||
| this build. QuestPDF's current upstream terms may change; consult | ||
| https://www.questpdf.com/license/ before distribution. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
curl -fsSL \
https://raw.githubusercontent.com/QuestPDF/QuestPDF/2026.5.0/LICENSE.md \
-o /tmp/QuestPDF-2026.5.0-LICENSE.md
diff -u /tmp/QuestPDF-2026.5.0-LICENSE.md licenses/QuestPDF-2026.5.0.mdRepository: Muesli-HQ/muesli-windows
Length of output: 13853
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import difflib
repo = '/tmp/QuestPDF-2026.5.0-LICENSE.md'
license_file = 'licenses/QuestPDF-2026.5.0.md'
try:
with open(repo, 'r', encoding='utf-8') as f:
upstream = f.read()
with open(license_file, 'r', encoding='utf-8') as f:
local = f.read().splitlines(True)
except FileNotFoundError as e:
print(f'FILE_NOT_FOUND: {e}')
raise SystemExit(0)
print('UPSTREAM_LINE_COUNT', len(upstream.splitlines()))
print('LOCAL_LINE_COUNT', len(local))
print('PREFIX_MATCH', local[:8] == upstream.splitlines(True)[:8])
print('LOCAL_INTRO_LINES', [str(i + 1) for i, line in enumerate(local) if i < 10])
print('OR_VS_AND_OCCURRENCES')
for phrase in ['QUESTPDF AND ITS LICENSORS', 'QUESTPDF OR ITS LICENSORS']:
print(' UPSTREAM', phrase, upstream.count(phrase))
print(' LOCAL ', phrase, sum(1 for line in local if phrase in line))
for text, name in [(upstream, 'upstream'), (local, 'local')]:
lines = text.splitlines() if isinstance(text, str) else text
for i, line in enumerate(lines, 1):
if phrase := 'QUESTPDF AND ITS LICENSORS' in line or 'QUESTPDF OR ITS LICENSORS' in line:
print(f'{name} line {i}: {line.strip()}')
# Print only the first diff chunk around the intro to avoid large output.
diff = difflib.unified_diff(
upstream.splitlines(), local,
fromfile='upstream/LICENSE.md (2026.5.0)',
tofile='licenses/QuestPDF-2026.5.0.md',
lineterm=''
)
print('DIFF_CHUNK_FIRST', '---' in '\n'.join(list(diff)[:80]))
PYRepository: Muesli-HQ/muesli-windows
Length of output: 1389
🌐 Web query:
QuestPDF 2026.5.0 LICENSE.md raw.githubusercontent.com questpdf.com license
💡 Result:
As of August 4, 2026, QuestPDF operates under a hybrid licensing model governed by terms effective since July 6, 2026 (Version 3.0) [1][2]. The library is not under a single open-source license like MIT for all users; rather, it uses a dual-licensing structure [2]. The current licensing framework includes: 1. Community License: This is available for free to individuals, non-profit organizations, academic institutions, open-source projects, and businesses with annual gross revenue under USD 1,000,000 [2][3]. Public-sector entities and publicly traded companies are ineligible for the Community License regardless of their revenue [3]. 2. Professional and Enterprise Licenses: Organizations that do not qualify for the Community License must purchase a paid license for production use [2][4]. - Professional License: Covers a single legal entity or individual [4][5]. - Enterprise License: Covers the licensee and its affiliates (entities with more than 50% ownership or control) and includes additional support and procurement benefits [2][4]. License activation is handled in code rather than by license keys, requiring users to set the license type at application startup [6]: QuestPDF.Settings.License = LicenseType.Community; // or QuestPDF.Settings.License = LicenseType.Professional; // or QuestPDF.Settings.License = LicenseType.Enterprise; Users are responsible for ensuring they meet the eligibility criteria for their chosen license [6]. The full text of these terms is available on the official QuestPDF license documentation page at questpdf.com/license [7][3]. Note that while older versions of the repository on GitHub may have referenced an MIT license [8][9], the current authoritative terms as of August 2026 follow the Version 3.0 structure [2].
Citations:
- 1: https://questpdf.com/license/QuestPDF%20License%20Terms.pdf
- 2: https://github.com/QuestPDF/QuestPDF/blob/master/LICENSE.md
- 3: https://www.questpdf.com/pricing.html
- 4: https://www.questpdf.com/license/guide.html
- 5: https://www.questpdf.com/license/professional-enterprise.html
- 6: https://www.questpdf.com/license/configuration.html
- 7: https://www.questpdf.com/license/
- 8: https://github.com/QuestPDF/QuestPDF/blob/main/LICENSE.md
- 9: https://github.com/QuestPDF/QuestPDF/blob/83195ce9/LICENSE.md
Restore the exact 2026.5.0 license text.
licenses/QuestPDF-2026.5.0.md adds a preamble and deviates from the tagged QuestPDF 2026.5.0 LICENSE.md, including a change in the liability clause from QUESTPDF OR ITS LICENSORS to QUESTPDF AND ITS LICENSORS. Replace it with the exact upstream text, or keep the exact license separately and mark this file as a summary only.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@licenses/QuestPDF-2026.5.0.md` around lines 3 - 5, The file
licenses/QuestPDF-2026.5.0.md contains a preamble and diverges from the upstream
QuestPDF 2026.5.0 license, most notably changing "QUESTPDF OR ITS LICENSORS" to
"QUESTPDF AND ITS LICENSORS" in the liability clause. Either replace the entire
file with the exact upstream LICENSE.md text from the QuestPDF 2026.5.0 tagged
release, or if keeping the preamble as a summary, ensure the actual license text
below it matches the upstream version exactly and explicitly mark the file as a
summary to clarify that the preamble is not part of the official license.
Source: MCP tools
Adds ignore rules for .NET build/test/coverage output, downloaded model weights and native runtimes, local recordings and qualification results, signing material, packaged installers, and agent-local scratch files. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Adds the full license texts referenced by THIRD-PARTY-NOTICES.md so the distributed package can ship attribution offline. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Captures the phased delivery plan for the Windows native app and tracks feature parity against the macOS build. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
a1a0829 to
761a203
Compare

Muesli for Windows — native rebuild review stack
Muesli is a shipped macOS dictation + meeting-transcription app. This repository is the official Windows-native port: WPF on .NET 8, with a 1:1 behavior/design parity mandate against the macOS app. The 52 commits in this series migrate the app off the legacy Python worker onto a fully native stack:
The work is delivered as 12 sequential, stacked PRs so each chunk is reviewable in isolation: PR N's base is PR N−1's head branch, so each PR shows only its own changes. Nothing merges yet — this is for review feedback only.
This PR (1/12): repo foundation
Commits:
f3a4b3cchore: harden.gitignorefor .NET, model, capture and secret artifactsbad6f44chore: vendor third-party license texts (licenses/) and refreshTHIRD-PARTY-NOTICES.mdfe8b52adocs: adddocs/WINDOWS_EXECUTION_PLAN.mdanddocs/WINDOWS_MACOS_PARITY_MATRIX.md11 files, +1,865/−15. No product code changes.
Review focus
.gitignore— covers model caches (GGUF/sherpa), capture artifacts and secrets; captured audio and DPAPI-protected secrets must never be committable.licenses/+THIRD-PARTY-NOTICES.md— completeness for sherpa-onnx, LLamaSharp, NAudio, QuestPDF, etc.docs/WINDOWS_MACOS_PARITY_MATRIX.md— the parity contract; later PRs reference it. Review as the acceptance lens for the whole series.AGENTS.md— standing repo rules for agents (build/test/verify loop).Expected — do not flag: the docs describe the end state of all 12 PRs, so they forward-reference components that only exist from later PRs. No code changes here.
Divergence from recent main (read before reviewing the series)
After this stack was cut,
maingained 17 commits via bot/tooling PRs (#2–#7): Python-worker bundling, Velopack packaging replacing Inno, two crash fixes, and Claude review workflows. How this series relates to that work:AudioCaptureServicenormalizes 1/2/>2-channel inputs to 16 kHz mono, andRuntimeDiagnosticsServicesurfaces CUDA/runtime readiness. Reviewers: verify, don't request ports.Test evidence (whole stack, at tip
docs/native-architecture-and-roadmap)dotnet build windows-native\Muesli.Windows\Muesli.Windows.csproj --no-restore— cleandotnet test windows-native\Muesli.Windows.Tests\Muesli.Windows.Tests.csproj --no-restore— 484/484 passingDeliberately NOT in this series (please don't expect or request here)
Google Calendar / Upcoming meetings (honest "unavailable" state), ChatGPT OAuth summaries (D1), cross-device sync (D3), telemetry (D4), real auto-updater (D5), macOS-style sound feedback.
Full stack map
docs/windows-execution-planfeat/window-placement-servicefeat/model-lifecycle-managementfeat/transcription-benchmarkingfeat/dictation-hotkey-modelfeat/meeting-qualificationfeat/computer-use-plannerfeat/meeting-live-transcript-windowfeat/rebuild-app-shellrefactor/remove-python-worker-pipelinetest/import-export-and-automation-coveragedocs/native-architecture-and-roadmapPrevious: — | Next: #11
Summary by CodeRabbit
Documentation
Chores