digimata/quill
57.5
Adequate · 30 September 2026
4k
lines of production code
Swift
with Rust
2
measurements over time
What this system is
This system is a cross-platform audio recording utility, now named Quill, that captures simultaneous microphone and system audio tracks on both macOS and Windows. It provides robust, crash-safe recording with automatic recovery from device route changes on macOS and process-tree loopback capture with checkpointing on Windows. The project includes native build scripts for both operating systems and has recently removed its legacy local two-track meeting recorder in favor of these more resilient, platform-specific implementations.
Features
Added macOS build and installation scripts
New shell scripts have been added to streamline the macOS development workflow. The \build-macos\ script now allows users to compile the project using Swift in release mode from the repository root. Additionally, the \install-macos\ script enables direct installation of the resulting binary to \/usr/local/bin\ (or a custom directory specified by \QUILL\_INSTALL\_DIR\), handling the necessary directory creation and file permissions automatically.
scripts · high confidence
Windows capture probe introduces process-tree loopback and crash-safe WAV recording
The new Windows directory adds a console capture probe that records two independent WAV tracks (system audio and microphone) using WASAPI. System audio is captured via a process-tree loopback (targeting a specific app and its children) or a fallback endpoint loopback, while the microphone is captured from the default input device. The probe enumerates candidate processes by inspecting audio render sessions and resolves capture targets to their top-level application boundary. Audio is written to 16-bit mono WAV files with a crash-tolerant checkpointing mechanism that persists headers every ten seconds to ensure data integrity on hard termination. The probe outputs session metadata (meta.json) and reports specific diagnoses such as silent tracks or target process exit.
windows · high confidence
Removals
Removal of local two-track meeting recorder
The local two-track meeting recording capability has been removed. The \MicRecorder\, \SystemAudioRecorder\, and \RecordingSession\ classes, which previously enabled simultaneous capture of microphone and system audio into separate tracks, have been deleted from the codebase.
Sources · high confidence
Behavioural changes
macOS: automatic audio capture recovery across route changes
The macOS recorder now detects and recovers from audio capture interruptions caused by system audio route changes (such as connecting or disconnecting AirPods or switching default devices). A new health-monitoring system watches both the microphone and system-audio tracks; if a track stalls, it automatically restarts capture into a new numbered segment (e.g., mic-002.caf) while preserving previously recorded data. The menu bar indicates recovery status (orange icon), and the final session metadata reports whether each track is complete, recovered, or incomplete.
macos · high confidence
Dependencies
Windows and macOS dependency updates and project restructuring
The Windows build now uses a dedicated Cargo workspace with \Cargo.toml\ and \Cargo.lock\, pinning dependencies such as \clap\ to version 4.6.5, \chrono\ to 0.4.45, and \windows\/\windows-core\ to 0.62. On macOS, the project has been renamed from 'lyrebird' to 'quill' and updated to target macOS 15, introducing a new \FluidAudio\ dependency (version 0.15.5 resolved, 0.7.0 minimum) and adding a \QuillTests\ test target.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 45 → 57 (+12.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-1.1)
- Architecture 69 → 97 (+27.6)
- Maturity 55 → 73 (+17.6)
- Readiness 15 → 26 (+10.9)
- Security 100 → 100 (+0.0)
Resolved (5)
- Documentation: no usage examples (README.md)
- No ADRs found
- No automated tests
- No tests found
- Test reliability not included
New (11)
- Coverage not measured — Swift suite
- Documentation: no project overview (README.md)
- Duplicated block (10–13 lines × 2) (windows/src/audio/loopback.rs)
- Duplicated block (12 lines × 2) (macos/Sources/quill/Audio/MicRecorder.swift)
- Duplicated block (6 lines × 2) (windows/src/audio/loopback.rs)
- Duplicated block (6 lines × 2) (windows/src/audio/loopback.rs)
- Duplicated block (7 lines × 2) (windows/src/audio/loopback.rs)
- Inconsistent constructor naming convention. LoopbackRecorder uses 'new' while MicRecorder also uses 'new', but the naming pattern is not uniform across all recorders if more are added. More importantly, 'new' is a Rust keyword convention, but in a public API surface review, it's worth noting if other types use 'create' or 'from'. However, looking at WavWriter, it uses 'create'. This is a minor inconsistency in factory method naming.
- Inconsistent factory method naming. 'create' is used for the basic case, while 'with_patch_interval' is used for a variant. This is a common pattern (Builder/With), but 'create' vs 'with_' is slightly inconsistent. Usually, it's either 'new'/'new_with_' or 'create'/'create_with_'.
- Outdated: fluidaudio
- quill::audio::process::capture_targets (cognitive 20) (windows/src/audio/process.rs)
Changes since last survey
- 5 commits — 5 feature/other, 0 fixes
By area
- (root) — 4 commits
- docs/icon.png — 1 commit
Notable commits
- change: chore(license): copyright Humanitas Labs
- change: chore(repo): stop tracking .issues/
- change: chore(repo): stop tracking .plan/
- change: docs(readme): add icon and simplify
- change: docs(readme): shrink feather icon
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
digimata/quill was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit aad60f98e680720dd24a30115580f226ae36c12c — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.