You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a sandboxed build fails with `ccache: error: Read-only file system`, treat
90
108
that as an environment limitation rather than a repo regression and rerun the
91
109
build with `CCACHE_DISABLE=1`.
@@ -136,6 +154,9 @@ Notes:
136
154
- Use `bash scripts/check-release-hygiene.sh` when touching publication-facing files such as `README.md`, licenses, `contrib/`, CI, or helper scripts
137
155
- Use `cmake --build "$BUILD_DIR" --target docs` when touching repo-owned public headers, Doxygen config, the Doxygen main page, or CI/docs wiring
138
156
- If install rules or licensing files change, confirm the temporary install contains the expected files under `share/licenses/mutterkey`
157
+
- If a task changes runtime selection, native model loading, or legacy-whisper
158
+
build toggles, validate at least one `MUTTERKEY_ENABLE_LEGACY_WHISPER=OFF`
159
+
build in addition to the normal default build
139
160
- If you add or change public methods in repo-owned headers, expect `cmake --build "$BUILD_DIR" --target docs` to fail until the new API is documented; treat that as part of the normal implementation loop, not follow-up polish
140
161
- Newly added repo-owned public structs and free functions in public headers also
141
162
need Doxygen comments immediately; the `docs` target treats undocumented new
@@ -158,6 +179,12 @@ Notes:
158
179
- When validating inside a restricted sandbox, be ready to disable `ccache` with `CCACHE_DISABLE=1` if the cache location is read-only; that is an execution-environment issue, not a Mutterkey build failure
159
180
- Prefer fixing the code over weakening `.clang-tidy` or the Clazy check set; only relax tool config when the warning is clearly low-value for this repo
160
181
- If `clang-tidy` flags a new small enum for `performance-enum-size`, prefer an explicit narrow underlying type such as `std::uint8_t` instead of suppressing the warning
182
+
- If `clang-tidy` flags a small fixed binary header type, prefer
183
+
`std::array<std::byte, N>` or `std::array<char, N>` plus value
184
+
initialization over C-style arrays
185
+
- When helper functions take two adjacent same-shaped parameters such as two
186
+
`QString` values, prefer a small request struct when that keeps tests and
187
+
runtime code from tripping `bugprone-easily-swappable-parameters`
161
188
- In this Qt-heavy repo, treat `misc-include-cleaner` and `readability-redundant-access-specifiers` as low-value `clang-tidy` noise unless the underlying tool behavior improves; they conflict with Qt header-provider reality and `signals` / `slots` / `Q_SLOTS` sectioning more than they improve safety
162
189
- Prefer anonymous-namespace `Q_LOGGING_CATEGORY` for file-local logging categories; `Q_STATIC_LOGGING_CATEGORY` is not portable enough across the Qt versions this repo may build against
163
190
- Do not add broad Valgrind suppressions by default; only add narrow suppressions after reproducing stable third-party noise and keep them clearly scoped
@@ -183,7 +210,15 @@ Notes:
183
210
- Keep JSON and other transport details at subsystem boundaries; prefer typed C++ snapshots/results once data crosses into app-owned control, tray, or service code
184
211
- Prefer dependency injection for tray-shell and control-surface code from the first implementation so headless Qt tests stay simple
185
212
- When preparing the transcription path for future runtime work, prefer app-owned engine/session seams and injected sessions over leaking concrete backend types into CLI, service, or worker orchestration. Keep immutable capability reporting on the engine side, keep runtime inspection data in `RuntimeDiagnostics`, and keep the session side focused on mutable decode state, warmup, chunk ingestion, finish, and cancellation
186
-
- Prefer product-owned runtime interfaces, model/session separation, and deterministic backend selection before adding new inference backends or widening cross-platform support
runtime-selection policy, and deterministic backend selection before adding
215
+
new inference backends or widening cross-platform support
216
+
- Keep runtime-selection policy in `src/transcription/runtimeselector.*`
217
+
instead of burying compatibility/fallback rules inside
218
+
`createTranscriptionEngine()`
219
+
- Keep native model-format parsing and immutable model loading in
220
+
`src/transcription/cpureferencemodel.*` or similar app-owned loader code
221
+
rather than mixing artifact parsing into the mutable session implementation
187
222
- Keep model validation, metadata extraction, and compatibility checks app-owned.
188
223
`whisper.cpp` should not be the first component that tells Mutterkey whether a
189
224
model artifact is obviously malformed, incompatible, or oversized
@@ -218,6 +253,9 @@ Apply the C++ Core Guidelines selectively and pragmatically. For this repo, the
218
253
- Prefer resolving model-package, metadata, and import work entirely in app-owned
219
254
code. Raw whisper.cpp `.bin` support is now a compatibility/import concern, not
220
255
the canonical product contract
256
+
- Prefer treating `whisper.cpp` as a legacy migration/parity dependency from
257
+
here forward. If new work can land in app-owned selector, model-loader,
258
+
native-runtime, or package code instead, do that first
221
259
- Prefer keeping fake runtime tests and app-owned helpers free of vendored whisper linkage unless the test is specifically about the whisper adapter or engine factory
222
260
- Prefer fixing vendored target metadata from the top-level CMake when the issue is Mutterkey packaging or warning noise, instead of patching upstream vendored files directly
223
261
- If you must modify vendored code, document why in the final response and record the deviation in `third_party/whisper.cpp.UPSTREAM.md`
@@ -233,6 +271,9 @@ Apply the C++ Core Guidelines selectively and pragmatically. For this repo, the
233
271
separate release asset outside Git
234
272
- Do not introduce machine-specific home-directory paths, absolute local Markdown links, or generated build artifacts into tracked files
235
273
- If a task changes install layout or shipped assets, keep the CMake install rules and license installs aligned with the new behavior
274
+
- If a task changes whether legacy whisper support is installed, keep
275
+
`README.md`, `RELEASE_CHECKLIST.md`, `docs/mainpage.md`, install rules, and
276
+
license installs aligned with that choice
236
277
- The installed shared-library payload is runtime-focused; do not start installing vendored upstream public headers unless the package contract intentionally changes
0 commit comments