T9 code-quality reviewer flagged 6 NITs (all severity NIT, non-blocking). Filed for batched cleanup before v0.7.x.
1. `apps/desktop/src/components/TranscribeButton.tsx:2`
Module docstring claims "3 visual states" but component renders 6 branches (Idle-disabled, Idle, Queued, Running, Completed, Cancelled, Failed). Update count or list states.
2. `apps/desktop/src/tests/TranscribeButton.test.tsx:4`
Header says "7 scenarios" but file now has 8 tests after the T9 fix added the null-source case. Renumber or relabel.
3. `crates/core/src/ports/metadata_repo.rs:62`
`MetadataRepository::list_with_metadata` rustdoc still says "triples" but returns 4-tuples. The shape doc on `FileWithMetadataRow` (lines 7-28) is correct; the method-level doc drifted.
4. `crates/db/src/metadata_repo.rs:264-266` — soft-delete invariant untested
Comment promises soft-deleted mount rows are filtered (`deleted_at IS NULL`) but no test asserts it; the SQL WHERE filter exists, so this is documentation drift, not a code bug. A 5-line additional test would lock the invariant.
5. `crates/desktop/src/payloads.rs:250` — `to_string_lossy` WHY
`to_string_lossy().into_owned()` on the absolute_path is fine for display + the IPC string contract, but worth a one-line WHY: lossy conversion only affects non-UTF-8 mount paths (rare on Linux/macOS, never on Windows post-WTF-8).
6. 4-tuple destructure repetition
`crates/cli/src/cmd/ls.rs` + `crates/desktop/src/commands.rs` — the 4-tuple destructure pattern `(loc, _, _, _)` / `(loc, meta, quick_hash, mount_path)` is repeated 6+ times across crates. Not refactor-worthy yet (each call site does subtly different things), but if a 5th element ever lands, extract a Row struct.
Filed under ASR v2 milestone for batched cleanup.
T9 code-quality reviewer flagged 6 NITs (all severity NIT, non-blocking). Filed for batched cleanup before v0.7.x.
1. `apps/desktop/src/components/TranscribeButton.tsx:2`
Module docstring claims "3 visual states" but component renders 6 branches (Idle-disabled, Idle, Queued, Running, Completed, Cancelled, Failed). Update count or list states.
2. `apps/desktop/src/tests/TranscribeButton.test.tsx:4`
Header says "7 scenarios" but file now has 8 tests after the T9 fix added the null-source case. Renumber or relabel.
3. `crates/core/src/ports/metadata_repo.rs:62`
`MetadataRepository::list_with_metadata` rustdoc still says "triples" but returns 4-tuples. The shape doc on `FileWithMetadataRow` (lines 7-28) is correct; the method-level doc drifted.
4. `crates/db/src/metadata_repo.rs:264-266` — soft-delete invariant untested
Comment promises soft-deleted mount rows are filtered (`deleted_at IS NULL`) but no test asserts it; the SQL WHERE filter exists, so this is documentation drift, not a code bug. A 5-line additional test would lock the invariant.
5. `crates/desktop/src/payloads.rs:250` — `to_string_lossy` WHY
`to_string_lossy().into_owned()` on the absolute_path is fine for display + the IPC string contract, but worth a one-line WHY: lossy conversion only affects non-UTF-8 mount paths (rare on Linux/macOS, never on Windows post-WTF-8).
6. 4-tuple destructure repetition
`crates/cli/src/cmd/ls.rs` + `crates/desktop/src/commands.rs` — the 4-tuple destructure pattern `(loc, _, _, _)` / `(loc, meta, quick_hash, mount_path)` is repeated 6+ times across crates. Not refactor-worthy yet (each call site does subtly different things), but if a 5th element ever lands, extract a Row struct.
Filed under ASR v2 milestone for batched cleanup.