Skip to content

docs: update documentation to match current codebase#423

Open
pasrom wants to merge 1 commit into
mainfrom
docs/auto-update
Open

docs: update documentation to match current codebase#423
pasrom wants to merge 1 commit into
mainfrom
docs/auto-update

Conversation

@pasrom

@pasrom pasrom commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add two plan files to the CLAUDE.md file tree that exist in docs/plans/ but were missing from the listing:
    • 2026-05-04-diagnostic-logging.md — diagnostic logging end-to-end implementation plan
    • 2026-05-05-persistent-diagnostic-log.md — persistent diagnostic log implementation plan

Both files were committed to the repo before the last documentation update (d1dbf68) but were not picked up in that pass.

No other discrepancies were found: all source files in app/MeetingTranscriber/Sources/, tools/audiotap/Sources/, scripts/, and .github/workflows/ match their documentation exactly. README.md, CONTRIBUTING.md, and docs/architecture-macos.md are accurate.


Generated by Claude Code

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Jun 12, 2026
@pasrom
pasrom force-pushed the docs/auto-update branch from 5f3ba5f to d7c1361 Compare June 13, 2026 07:07

pasrom commented Jun 13, 2026

Copy link
Copy Markdown
Owner Author

Updated (2026-06-13 run):

Two additional fixes on top of the previous pass:

  1. ci.yml job count — the description said "3 parallel jobs" but ci.yml has had 4 since the StreamingMonoResampler commit (36dba5c): lint, analyze, test, and audiotap-coverage (AudioTapLib tests + Codecov upload). Updated to "4 parallel jobs".

  2. Missing plan files — two committed plan files in docs/plans/ were absent from the CLAUDE.md file tree: 2026-05-04-diagnostic-logging.md and 2026-05-05-persistent-diagnostic-log.md. Both were added in the same commit as the audiotap-coverage job and were missed by both previous doc passes. Added with brief descriptions.

Everything else (README.md, CONTRIBUTING.md, docs/architecture-macos.md, all source/script/workflow listings) remains accurate.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch 2 times, most recently from 3f1a5bb to 5377fd7 Compare June 15, 2026 07:05

pasrom commented Jun 15, 2026

Copy link
Copy Markdown
Owner Author

Documentation maintenance run — 2026-06-15

Updated by force-push on docs/auto-update. Changes from this run:

CLAUDE.md + docs/architecture-macos.md:

  • Added EngineModelState.swift to both file trees — added in commit aa1ba2d (own app-level model lifecycle state, drop WhisperKit vendor type leak) but absent from all docs
  • Added SpeakerNamingStore.swift to both file trees — added in commit 37e1829 (extract naming-sidecar I/O from PipelineQueue) but absent from all docs
  • Corrected TranscribingEngine.swift description: mergeDualSourceSegments was moved to DiarizationProcess (d9e2c34); providesTimestamps capability flag was added (dced1c2) so the pipeline skips diarization for engines without per-utterance timestamps (Qwen3)
  • Corrected DiarizationProcess.swift description to reflect it now owns mergeDualSourceSegments
  • Fixed the Transcription → Modes section in architecture-macos.md: mergeDualSourceSegments is now a static method on DiarizationProcess, not a protocol extension on TranscribingEngine

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 5377fd7 to 95718a4 Compare June 16, 2026 07:04

pasrom commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

Updated by doc-maintenance run (2026-06-16).

Changes in this pass:

  • 4 new source files added to both CLAUDE.md and docs/architecture-macos.md:

    • EngineModelState.swift — app-owned model lifecycle state enum, decoupled from WhisperKit's ModelState (added in aa1ba2d)
    • SpeakerNamingStore.swift — speaker-naming sidecar persistence extracted from PipelineQueue (added in 37e1829)
    • StageTimingStats.swift — stage timing model + stage_timing.jsonl log (added in fadf1aa)
    • ProcessingStatsView.swift — per-stage processing averages view in Settings (added in a7f7a27)
  • mergeDualSourceSegments location corrected: moved from TranscribingEngine (protocol extension) to DiarizationProcess (static function) in d9e2c34. Updated both the file-tree descriptions and the architecture prose in docs/architecture-macos.md.

  • 2 new scripts added to CLAUDE.md:

    • scripts/build_perf_report.py — Python analysis module extracted from build_perf_report.sh (added in 4c45180)
    • scripts/tests/test_build_perf_report.sh — unit tests for the above

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 95718a4 to 9efdf52 Compare June 17, 2026 07:05

pasrom commented Jun 17, 2026

Copy link
Copy Markdown
Owner Author

2026-06-17 docs update — picked up changes from 20 commits since the last pass:

New source files added to both CLAUDE.md and docs/architecture-macos.md:

  • EngineModelState.swift — app-owned model lifecycle enum, decoupled from WhisperKit's vendor type (all three engines now use it)
  • SpeakerNamingStore.swift — naming-sidecar I/O extracted from PipelineQueue
  • StageTimingStats.swift — stage timing model + StageTimingLog actor writing stage_timing.jsonl
  • ProcessingStatsView.swift — per-stage processing averages shown in Settings

Updated stale descriptions:

  • TranscribingEngine.swift: removed mergeDualSourceSegments (moved out in d9e2c34)
  • DiarizationProcess.swift: added dual-source segment merging (mergeDualSourceSegments moved here)

New script entries added to CLAUDE.md:

  • scripts/build_perf_report.py — Python slowdown-detection module extracted from the shell script
  • scripts/tests/test_build_perf_report.sh — unit tests for that module

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 9efdf52 to 1f2d884 Compare June 18, 2026 07:05

pasrom commented Jun 18, 2026

Copy link
Copy Markdown
Owner Author

Documentation sync — 2026-06-18

Added 5 new source files to both CLAUDE.md and docs/architecture-macos.md that exist in the codebase but were missing from the docs:

File Description
EngineModelState.swift App-owned model lifecycle state enum (unloaded/downloading/loading/loaded); RPC wire contract for engines.*.modelState
ProcessingStatsView.swift Per-stage processing duration stats from stage_timing.jsonl (embedded in Settings → Speakers)
SpeakerNamingStore.swift Disk persistence for per-job speaker-naming sidecars, extracted from PipelineQueue
StageTimingStats.swift Stage timing types + StageTimingLog actor + per-config aggregates that back ProcessingStatsView
IdempotencyStore.swift Bounded FIFO map for /v1 idempotency-key dedup (#if !APPSTORE)

Also added build_perf_report.py to the scripts section (Python port of build_perf_report.sh, consumed by build-perf-tracking.yml).

No changes to README.md or CONTRIBUTING.md — both are current.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 1f2d884 to c2aa5c0 Compare June 19, 2026 07:08

pasrom commented Jun 19, 2026

Copy link
Copy Markdown
Owner Author

Updated (2026-06-19): this pass found more discrepancies than the previous one. Changes now include:

CLAUDE.md — new source files added to project structure:

  • EngineModelState.swift — app-owned model lifecycle state enum decoupling TranscribingEngine from WhisperKit's vendor type
  • ProcessingStatsView.swift — per-stage processing time averages view (embedded in SpeakersSettingsView)
  • StageTimingStats.swift — pipeline stage timing log model backing ProcessingStatsView
  • SpeakerNamingStore.swift — disk persistence for per-job speaker-naming sidecars, extracted from PipelineQueue
  • IdempotencyStore.swift — FIFO idempotency-key map for /v1 automation API deduplication

CLAUDE.md — new script:

  • build_perf_report.py — Python port of the build performance trend report, consumed by build-perf-tracking.yml

CLAUDE.md — docs/ tree:

  • automation-api.md — was referenced in the text but missing from the file tree
  • 2026-05-04-diagnostic-logging.md and 2026-05-05-persistent-diagnostic-log.md — both carried over from previous pass

docs/architecture-macos.md — source file tables:

  • AppPickerView.swift added to App Entry & UI (was in CLAUDE.md but missing from arch doc tables)
  • ProcessingStatsView.swift, EngineModelState.swift, SpeakerNamingStore.swift, StageTimingStats.swift, IdempotencyStore.swift added to their respective sections

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from c2aa5c0 to 32f669b Compare June 20, 2026 07:04

pasrom commented Jun 20, 2026

Copy link
Copy Markdown
Owner Author

Updated by doc-maintenance run (2026-06-20).

Changes in this push — 5 new source files and 1 new script were added to the codebase after the last doc pass but were missing from both CLAUDE.md and docs/architecture-macos.md:

File What it does
EngineModelState.swift App-owned model lifecycle enum (unloaded/downloading/loading/loaded), decoupled from WhisperKit's ModelState; RPC wire contract
IdempotencyStore.swift Bounded FIFO map of Idempotency-Key → job IDs for sequential retry dedup in DebugRPCServer (#if !APPSTORE)
ProcessingStatsView.swift Per-stage processing duration stats view backed by stage_timing.jsonl — embedded in SpeakersSettingsView
SpeakerNamingStore.swift Disk persistence for per-job speaker-naming sidecars; extracted from PipelineQueue
StageTimingStats.swift Stage timing events, append-only JSONL log (StageTimingLog), and per-config aggregation (StageAggregate with avg wall-clock + RTF)
scripts/build_perf_report.py Python CI timing analyser (parses per-job timing JSONL → Markdown trend report, consumed by build-perf-tracking.yml)

Also updated the SpeakersSettingsView comment in CLAUDE.md to include "Processing Stats".


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 32f669b to e7035e9 Compare June 21, 2026 07:08

pasrom commented Jun 21, 2026

Copy link
Copy Markdown
Owner Author

Updated in this run (2026-06-21). The branch was reset onto current main and the following additional gaps were found and closed:

New source files added to CLAUDE.md and docs/architecture-macos.md:

  • EngineModelState.swift — app-owned model lifecycle state (unloaded/downloading/loading/loaded), decoupled from WhisperKit's vendor enum; RPC wire contract for engines.*.modelState
  • IdempotencyStore.swift — bounded FIFO map of Idempotency-Key → job IDs for the /v1 automation API (#if !APPSTORE)
  • ProcessingStatsView.swift — Settings view surfacing average per-stage processing durations from stage_timing.jsonl
  • SpeakerNamingStore.swift — disk persistence for per-job speaker-naming sidecars (slug-keyed; naming.json, audio clips, segments.json)
  • StageTimingStats.swift — per-stage pipeline duration model + stage_timing.jsonl log (transcribing / diarizing / protocol)

New script added to CLAUDE.md:

  • build_perf_report.py — Python module for build-perf report analysis, extracted from build_perf_report.sh in 4c45180

Docs section updated in CLAUDE.md:

  • Added docs/automation-api.md to the project structure (file existed since 18f5aa1 but was not listed)
  • Added the two plan files from the previous run (carried forward)

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e7035e9 to 8f21d07 Compare June 22, 2026 07:04

pasrom commented Jun 22, 2026

Copy link
Copy Markdown
Owner Author

Doc-update run — 2026-06-22

Found 7 items missing from the previous pass:

New source files (added to CLAUDE.md + docs/architecture-macos.md):

  • EngineModelState.swift — app-owned model lifecycle enum (unloaded/downloading/loading/loaded), decoupled from WhisperKit's ModelState
  • IdempotencyStore.swift — bounded FIFO idempotency-key → job-ID map for the automation API (#if !APPSTORE)
  • ProcessingStatsView.swift — per-stage pipeline duration stats view (reads stage_timing.jsonl)
  • SpeakerNamingStore.swift — disk persistence for per-job speaker-naming sidecars, extracted from PipelineQueue
  • StageTimingStats.swift — stage timing model + JSONL log (StageKind, StageTimingEvent, StageTimingLog)

New script (added to CLAUDE.md):

  • build_perf_report.py — Python CI timing analysis (per-job JSONL → Markdown trend report)

New plan files (added to CLAUDE.md):

  • docs/plans/2026-05-04-diagnostic-logging.md
  • docs/plans/2026-05-05-persistent-diagnostic-log.md (these were present in a prior run but got missed from the architecture doc)

README.md and CONTRIBUTING.md remain accurate — no changes needed.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 8f21d07 to e6f1885 Compare June 23, 2026 07:06

pasrom commented Jun 23, 2026

Copy link
Copy Markdown
Owner Author

2026-06-23 doc-sync update — branch force-pushed with 7 new entries across CLAUDE.md and docs/architecture-macos.md:

New source files added to both docs:

  • EngineModelState.swift — app-owned ASR model lifecycle state enum (decouples TranscribingEngine from WhisperKit's ModelState)
  • SpeakerNamingStore.swift — disk persistence for per-job speaker-naming sidecars, extracted from PipelineQueue
  • ProcessingStatsView.swift — per-stage processing-time averages UI backed by stage_timing.jsonl
  • StageTimingStats.swift — stage timing event model + aggregation helpers (StageKind/StageTimingEvent/StageConfig/StageTimingLog)
  • IdempotencyStore.swift — bounded FIFO for /v1 automation API idempotency-key deduplication (#if !APPSTORE)

New scripts added to CLAUDE.md:

  • scripts/build_perf_report.py — Python analyser called by build_perf_report.sh / build-perf-tracking.yml
  • scripts/tests/test_build_perf_report.sh — regression test for the slowdown-gate absolute-floor guard

All other source files, workflows, and architecture notes were verified accurate.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e6f1885 to e4d9788 Compare June 24, 2026 07:04

pasrom commented Jun 24, 2026

Copy link
Copy Markdown
Owner Author

Doc update — 2026-06-24

Added 8 new source files and 2 new scripts that were introduced since the last pass:

New source files:

  • NemotronStreamingCaptionSession.swift + NemotronAsrManager.swift — Nemotron multilingual streaming caption pipeline
  • LiveTranscriptionController+Nemotron.swift — factory seam split from LiveTranscriptionController
  • EngineModelState.swift — app-owned model lifecycle enum (RPC wire contract)
  • IdempotencyStore.swiftIdempotency-Key dedup store for DebugRPCServer
  • SpeakerNamingStore.swift — speaker-naming sidecar persistence (extracted from PipelineQueue)
  • StageTimingStats.swift + ProcessingStatsView.swift — per-stage timing log + Settings UI

New scripts:

  • e2e-permission-health.sh — E2E permission health probe test
  • build_perf_report.py — Python helper called by build_perf_report.sh

Description updates:

  • LiveCaptionPipeline.swift and LiveCaptionsGate.swift now mention Nemotron multilingual routing (English → Parakeet EOU, non-English explicit → Nemotron streaming)

Both CLAUDE.md and docs/architecture-macos.md updated.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e4d9788 to 5cd8740 Compare June 25, 2026 07:05

pasrom commented Jun 25, 2026

Copy link
Copy Markdown
Owner Author

Doc update — 2026-06-25

Added 8 new source files (introduced by the Nemotron live-captions feature and supporting refactors) to both CLAUDE.md and docs/architecture-macos.md:

File What it is
EngineModelState.swift App-owned engine model lifecycle state enum; decoupled from vendor ASR enums; RPC wire contract
ProcessingStatsView.swift Per-stage processing duration view backed by stage_timing.jsonl
NemotronStreamingCaptionSession.swift Nemotron-based streaming caption session (language-driven routing for non-EOU languages)
NemotronAsrManager.swift Production Nemotron ASR + Silero VAD wrappers extracted for testability
LiveTranscriptionController+Nemotron.swift Injectable Nemotron pipeline factory split from LiveTranscriptionController for file-length
SpeakerNamingStore.swift Speaker-naming sidecar persistence extracted from PipelineQueue
StageTimingStats.swift Per-stage wall-clock duration tracking (writes stage_timing.jsonl)
IdempotencyStore.swift Bounded FIFO idempotency-key dedup for DebugRPCServer (#if !APPSTORE)

Also updated the LiveCaptionPipeline.swift description to list Nemotron streaming as a third captioning backend alongside WhisperKit word-level and EOU streaming.

README.md and CONTRIBUTING.md remain accurate — no changes needed.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 5cd8740 to e339cae Compare June 26, 2026 07:06

pasrom commented Jun 26, 2026

Copy link
Copy Markdown
Owner Author

2026-06-26 docs update — branch force-pushed with new changes:

New source files added to CLAUDE.md and docs/architecture-macos.md:

  • EngineModelState.swift — app-owned model lifecycle state, decoupled from WhisperKit's ModelState
  • NemotronStreamingCaptionSession.swift / NemotronAsrManager.swift — Nemotron multilingual live captions backend
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction (line-cap split)
  • ProcessingStatsView.swift / StageTimingStats.swift — per-stage timing display backed by stage_timing.jsonl
  • SpeakerNamingStore.swift — slug-keyed naming sidecar persistence, decoupled from PipelineQueue
  • IdempotencyStore.swift — bounded FIFO idempotency-key store for the /v1 automation API

Updated file descriptions:

  • LiveCaptionPipeline.swift: added Nemotron multilingual as a third strategy variant
  • LiveCaptionsGate.swift: documented nemotronStreaming / englishStreaming / reTranscribe routing

New scripts added:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python CI timing analysis called by build_perf_report.sh

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e339cae to 50260e2 Compare June 27, 2026 07:05

pasrom commented Jun 27, 2026

Copy link
Copy Markdown
Owner Author

2026-06-27 update: Branch force-pushed with new documentation changes to cover recent additions:

8 new source files added to CLAUDE.md and docs/architecture-macos.md:

  • EngineModelState.swift — app-owned model lifecycle enum decoupled from WhisperKit's ModelState
  • ProcessingStatsView.swift — per-stage processing duration stats UI (stage_timing.jsonl)
  • StageTimingStats.swiftstage_timing.jsonl writer/reader + StageKind enum
  • SpeakerNamingStore.swift — naming sidecar persistence extracted from PipelineQueue
  • NemotronStreamingCaptionSession.swift — Nemotron multilingual streaming captions
  • NemotronAsrManager.swift — production FluidAudio Nemotron + Silero VAD seam implementations
  • LiveTranscriptionController+Nemotron.swift — injectable Nemotron pipeline factory
  • IdempotencyStore.swiftIdempotency-Key FIFO for /v1 automation API dedup

2 new scripts:

  • e2e-permission-health.sh — permission-health probe E2E driver
  • build_perf_report.py — JSONL-based build perf trend analysis

1 description update:

  • LiveCaptionPipeline.swift — mention Nemotron as a third captioning strategy alongside WhisperKit word-level and EOU streaming

Generated by Claude Code

pasrom commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

2026-07-07 documentation update

This run found 13 new source files and 1 new script that were present in the codebase but missing from CLAUDE.md and docs/architecture-macos.md:

New source files added to both docs:

  • AppSettings+RPC.swift — read-only settings projection for RPC /state (#if !APPSTORE)
  • EngineModelState.swift — vendor-agnostic model lifecycle state enum for TranscribingEngine
  • IdempotencyStore.swift — FIFO idempotency-key deduplication for automation API (#if !APPSTORE)
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction (line-cap split)
  • NemotronAsrManager.swift — production FluidAudio Nemotron + Silero VAD seams
  • NemotronStreamingCaptionSession.swift — per-channel Nemotron streaming caption session
  • NotificationRingBuffer.swift — bounded notification log for RPC /state (#if !APPSTORE)
  • ProcessingStatsView.swift — per-stage duration stats view (reads stage_timing.jsonl)
  • SpeakerNamingData.swift — naming value types extracted from PipelineQueue
  • SpeakerNamingSession.swift — naming session extracted from PipelineQueue (CheckedContinuation-based)
  • SpeakerNamingSession+Late.swift — late-rerun logic (line-cap split)
  • SpeakerNamingStore.swift — disk persistence for speaker-naming sidecars
  • StageTimingStats.swift — model backing ProcessingStatsView

New script added to CLAUDE.md:

  • scripts/e2e-permission-health.sh — E2E test for permission-health probes

README.md, CONTRIBUTING.md, and all workflow/audiotap entries remain accurate.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 2862293 to a9530d1 Compare July 8, 2026 07:08

pasrom commented Jul 8, 2026

Copy link
Copy Markdown
Owner Author

2026-07-08 docs update — 13 new source files + 2 new scripts

Branch force-pushed with a fresh single commit on top of current main.

New source files added to CLAUDE.md and docs/architecture-macos.md:

  • AppSettings+RPC.swift — RPC settings snapshot helper (#if !APPSTORE)
  • EngineModelState.swift — app-owned model lifecycle state enum; decouples TranscribingEngine from WhisperKit's internal ModelState
  • NemotronAsrManager.swift + NemotronStreamingCaptionSession.swift + LiveTranscriptionController+Nemotron.swift — Nemotron multilingual streaming ASR for live captions (non-English languages via FluidAudio)
  • SpeakerNamingSession.swift + SpeakerNamingSession+Late.swift + SpeakerNamingData.swift + SpeakerNamingStore.swift — speaker-naming concern extracted from PipelineQueue
  • StageTimingStats.swift + ProcessingStatsView.swift — per-stage processing duration tracking (stage_timing.jsonl)
  • IdempotencyStore.swift — idempotency-key dedup for DebugRPCServer (#if !APPSTORE)
  • NotificationRingBuffer.swift — bounded ring buffer of recent notifications for /state snapshot (#if !APPSTORE)

Description updates:

  • LiveCaptionPipeline.swift and LiveCaptionsGate.swift updated to mention Nemotron as a third live-caption strategy

New scripts:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python build-perf analyzer alongside the existing .sh

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from a9530d1 to e061066 Compare July 9, 2026 07:08

pasrom commented Jul 9, 2026

Copy link
Copy Markdown
Owner Author

2026-07-09 auto-update: Added 13 new source files and 2 new scripts that were missing from the docs.

New source files added to CLAUDE.md and docs/architecture-macos.md:

  • Nemotron live-captions pipeline: NemotronStreamingCaptionSession.swift, NemotronAsrManager.swift, LiveTranscriptionController+Nemotron.swift
  • Pipeline speaker-naming split (extracted from PipelineQueue): SpeakerNamingData.swift, SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift
  • Stage timing: StageTimingStats.swift, ProcessingStatsView.swift
  • RPC/support: AppSettings+RPC.swift, EngineModelState.swift, IdempotencyStore.swift, NotificationRingBuffer.swift

New scripts added: e2e-permission-health.sh, build_perf_report.py

Updated: LiveCaptionPipeline.swift description to mention Nemotron streaming as a third captioning strategy.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e061066 to 0cbc2f1 Compare July 10, 2026 07:09

pasrom commented Jul 10, 2026

Copy link
Copy Markdown
Owner Author

2026-07-10 doc-update run — force-pushed with 30 new lines across CLAUDE.md and docs/architecture-macos.md.

What was added:

13 source files that exist on main but were missing from both docs:

  • AppSettings+RPC.swift, EngineModelState.swift — RPC settings snapshot and vendor-neutral engine model-state enum
  • NemotronStreamingCaptionSession.swift, NemotronAsrManager.swift, LiveTranscriptionController+Nemotron.swift — Nemotron multilingual ASR as a third live-caption strategy; updated LiveCaptionPipeline.swift comment to reflect the new option
  • SpeakerNamingData.swift, SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift — speaker-naming concern extracted from PipelineQueue into dedicated types and a pure-I/O sidecar store
  • StageTimingStats.swift, ProcessingStatsView.swift — per-stage timing log and the Settings view backed by stage_timing.jsonl
  • IdempotencyStore.swift, NotificationRingBuffer.swift — idempotency map and notification ring for the debug RPC layer

Two scripts also added: e2e-permission-health.sh and build_perf_report.py.

README.md and CONTRIBUTING.md are accurate — no changes needed.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 0cbc2f1 to 2d953a3 Compare July 11, 2026 07:09

pasrom commented Jul 11, 2026

Copy link
Copy Markdown
Owner Author

Updated via force-push (2026-07-11 run). Changes from this pass:

13 new source files added to CLAUDE.md and docs/architecture-macos.md:

  • AppSettings+RPC.swift — RPC settings projection helper (#if !APPSTORE)
  • EngineModelState.swift — app-owned model lifecycle state enum
  • ProcessingStatsView.swift — per-stage pipeline duration display (stage_timing.jsonl)
  • NemotronStreamingCaptionSession.swift — Nemotron multilingual streaming caption session
  • NemotronAsrManager.swift — production seam implementations (FluidAudio Nemotron + VAD)
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction (line-cap split)
  • NotificationRingBuffer.swift — bounded notification log for /state (#if !APPSTORE)
  • IdempotencyStore.swift — Idempotency-Key dedup for DebugRPCServer (#if !APPSTORE)
  • SpeakerNamingData.swift — speaker-naming value types extracted from PipelineQueue
  • SpeakerNamingSession.swift — session collaborator for the naming flow
  • SpeakerNamingSession+Late.swift — late-confirm and re-diarization paths (line-cap split)
  • SpeakerNamingStore.swift — disk persistence for naming sidecars
  • StageTimingStats.swift — stage duration tracking (backs ProcessingStatsView)

2 new scripts added to CLAUDE.md:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python build-perf trend report

1 description updated: LiveCaptionPipeline.swift now mentions Nemotron streaming as a third live-captioning strategy.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 2d953a3 to cde146f Compare July 12, 2026 11:00

pasrom commented Jul 12, 2026

Copy link
Copy Markdown
Owner Author

Doc sync run — 2026-07-12

Added 13 new source files that existed in the codebase but were missing from CLAUDE.md and docs/architecture-macos.md:

Nemotron live-caption pipeline (new 3rd strategy alongside WhisperKit word-level and EOU streaming):

  • NemotronStreamingCaptionSession.swift — live captions via StreamingNemotronMultilingualAsrManager + FluidVAD boundary detection
  • NemotronAsrManager.swift — production seam implementations (real CoreML model + VAD, split for testability)
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction split from LiveTranscriptionController (line-cap split)

Speaker-naming refactor (split out of PipelineQueue):

  • SpeakerNamingSession.swift + SpeakerNamingSession+Late.swift — owns naming dialog, sidecars, late re-diarization
  • SpeakerNamingStore.swift — disk persistence for naming sidecars
  • SpeakerNamingData.swift — naming value types

Pipeline timing & stats:

  • StageTimingStats.swift — stage-timing model + log writer (stage_timing.jsonl)
  • ProcessingStatsView.swift — UI view surfacing per-stage durations

Engine abstraction:

  • EngineModelState.swift — app-owned model lifecycle enum; decouples TranscribingEngine from WhisperKit's ModelState

RPC / support:

  • AppSettings+RPC.swift — settings projection for /state endpoint
  • NotificationRingBuffer.swift — bounded notification FIFO for /state
  • IdempotencyStore.swift — idempotency key FIFO for /v1 automation

New scripts:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python build perf trend reporter (used by build-perf-tracking.yml)

Also updated the LiveCaptionPipeline.swift comment to list Nemotron as the third captioning strategy.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from cde146f to ae14b02 Compare July 13, 2026 07:09

pasrom commented Jul 13, 2026

Copy link
Copy Markdown
Owner Author

Docs update — 2026-07-13

This run found and documented the following new source files and scripts that were missing from CLAUDE.md and docs/architecture-macos.md:

New source files (app/MeetingTranscriber/Sources/)

  • AppSettings+RPC.swift — RPC settings projection helper for /state endpoint
  • EngineModelState.swift — vendor-neutral model lifecycle state enum for TranscribingEngine
  • NemotronStreamingCaptionSession.swift + NemotronAsrManager.swift + LiveTranscriptionController+Nemotron.swift — Nemotron live-captions pipeline (third strategy alongside WhisperKit word-level and EOU streaming)
  • SpeakerNamingData.swift / SpeakerNamingSession.swift / SpeakerNamingSession+Late.swift / SpeakerNamingStore.swift — speaker-naming flow line-cap splits from PipelineQueue
  • IdempotencyStore.swift — idempotency key store for the /v1 automation API
  • NotificationRingBuffer.swift — bounded ring of recent notification events for RPC /state
  • ProcessingStatsView.swift + StageTimingStats.swift — per-stage processing duration stats UI

New scripts (scripts/)

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python implementation of the build performance trend report

LiveCaptionPipeline.swift description updated to mention Nemotron as a third captioning strategy.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from ae14b02 to e24ef4d Compare July 14, 2026 07:07

pasrom commented Jul 14, 2026

Copy link
Copy Markdown
Owner Author

Documentation sync — 2026-07-14

Updated CLAUDE.md and docs/architecture-macos.md to match the current codebase. 13 new source files and 2 new scripts were missing from both docs:

New source files:

  • AppSettings+RPC.swift, EngineModelState.swift — settings RPC projection and vendor-agnostic engine model state enum
  • NemotronStreamingCaptionSession.swift, NemotronAsrManager.swift, LiveTranscriptionController+Nemotron.swift — FluidAudio Nemotron multilingual ASR as a third live-caption pipeline strategy (alongside WhisperKit word-level and EOU streaming); LiveCaptionPipeline.swift description updated to list all three
  • SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift, SpeakerNamingData.swift — speaker naming refactored out of PipelineQueue into a dedicated actor + disk persistence layer
  • StageTimingStats.swift, ProcessingStatsView.swift — per-stage timing statistics and Settings → Speakers view
  • IdempotencyStore.swift, NotificationRingBuffer.swift — debug RPC idempotency dedup and notification log for E2E assertions (#if !APPSTORE)

New scripts:

  • e2e-permission-health.sh — E2E test for permission health probes
  • build_perf_report.py — Python build performance trend analysis (companion to the existing .sh)

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from e24ef4d to 23a6faa Compare July 15, 2026 07:08

pasrom commented Jul 15, 2026

Copy link
Copy Markdown
Owner Author

Updated 2026-07-15: Added 13 new source files and 2 new scripts that were missing from the previous pass.

New source files documented:

  • AppSettings+RPC.swift, EngineModelState.swift — RPC/engine layer
  • NemotronStreamingCaptionSession.swift, NemotronAsrManager.swift, LiveTranscriptionController+Nemotron.swift — Nemotron multilingual streaming live captions (new third LiveCaptionPipeline strategy alongside EOU and re-transcribe)
  • SpeakerNamingSession.swift + +Late.swift, SpeakerNamingStore.swift, SpeakerNamingData.swift — speaker-naming concern extracted from PipelineQueue
  • StageTimingStats.swift, ProcessingStatsView.swift — per-stage wall-clock timing JSONL + stats view
  • IdempotencyStore.swift, NotificationRingBuffer.swiftDebugRPCServer request dedup + notification ring

New scripts documented:

Updated descriptions:

  • LiveCaptionPipeline.swift and LiveCaptionsGate.swift entries now mention the Nemotron streaming strategy

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 23a6faa to 427cc10 Compare July 16, 2026 07:07

pasrom commented Jul 16, 2026

Copy link
Copy Markdown
Owner Author

Doc update — 2026-07-16

This run found 13 new source files and 2 new scripts not yet reflected in CLAUDE.md or docs/architecture-macos.md. Both files updated.

New source files added to docs:

  • AppSettings+RPC.swift, EngineModelState.swift — engine/RPC layer additions
  • NemotronStreamingCaptionSession.swift, NemotronAsrManager.swift, LiveTranscriptionController+Nemotron.swift — Nemotron live-caption engine
  • SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift, SpeakerNamingData.swift — speaker naming refactor (extracted from PipelineQueue)
  • StageTimingStats.swift, ProcessingStatsView.swift — stage timing tracking and display
  • NotificationRingBuffer.swift, IdempotencyStore.swift — RPC support infrastructure

New scripts added to docs:

  • e2e-permission-health.sh — E2E for permission-health probes
  • build_perf_report.py — Python build-perf analysis (alongside existing .sh version)

No changes to README.md, CONTRIBUTING.md, or CI workflow listings — those were already accurate.


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 427cc10 to 431f91e Compare July 17, 2026 07:08

pasrom commented Jul 17, 2026

Copy link
Copy Markdown
Owner Author

Updated via force-push (2026-07-17). This run found 14 new source files and 2 new scripts added since the previous doc pass, none of which were documented.

New source files added to CLAUDE.md and docs/architecture-macos.md:

  • AppSettings+RPC.swift / EngineModelState.swift — RPC settings snapshot + vendor-neutral engine model state
  • NemotronStreamingCaptionSession.swift / NemotronAsrManager.swift / LiveTranscriptionController+Nemotron.swift — new Nemotron multilingual live-caption path; LiveCaptionPipeline.swift description updated to list Nemotron alongside WhisperKit/EOU
  • NamingWindowPolicy.swift — pins the "Name Speakers" window (issue [Bug] Speaker-naming window closes as soon as it loses focus #504)
  • SpeakerNamingData.swift / SpeakerNamingSession.swift / SpeakerNamingSession+Late.swift / SpeakerNamingStore.swift — speaker-naming concern extracted from PipelineQueue
  • StageTimingStats.swift / ProcessingStatsView.swift — per-stage processing duration tracking + display
  • IdempotencyStore.swift / NotificationRingBuffer.swift — RPC support files

New scripts:


Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 431f91e to 99470d0 Compare July 18, 2026 07:07

pasrom commented Jul 18, 2026

Copy link
Copy Markdown
Owner Author

Documentation updated by this run (2026-07-18). Changes vs. the previous pass:

New source files added to CLAUDE.md project structure:

  • AppSettings+RPC.swift — RPC settings projection for /state (#if !APPSTORE)
  • EngineModelState.swift — App-owned model lifecycle enum, decoupled from WhisperKit's vendor type
  • IdempotencyStore.swift — Bounded FIFO map for Idempotency-Key dedup (#if !APPSTORE)
  • LiveTranscriptionController+Nemotron.swift — Nemotron streaming-pipeline factory (line-cap split)
  • NamingWindowPolicy.swift — Pins the naming window floating/canJoinAllSpaces (issue [Bug] Speaker-naming window closes as soon as it loses focus #504)
  • NemotronAsrManager.swift — FluidAudio Nemotron model wrappers
  • NemotronStreamingCaptionSession.swift — Nemotron-based streaming caption session
  • NotificationRingBuffer.swift — Recent-notifications log surfaced at /state.notifications (#if !APPSTORE)
  • ProcessingStatsView.swift — Per-stage processing duration view (Settings → Speakers)
  • SpeakerNamingData.swift / SpeakerNamingSession.swift / SpeakerNamingSession+Late.swift / SpeakerNamingStore.swift — Speaker-naming concern split out of PipelineQueue
  • StageTimingStats.swift — Wall-clock stage timing tracking (stage_timing.jsonl)
  • Settings/HelpBadge.swift + Settings/SettingsHelp.swift — Clickable ⓘ help popovers (issue Add clickable info/help descriptions for settings options #505)

New scripts:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python build performance analysis implementation

Updated descriptions:

  • LiveCaptionPipeline.swift — now lists Nemotron streaming as a third strategy (in CLAUDE.md and docs/architecture-macos.md)

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 99470d0 to 18319ea Compare July 19, 2026 07:09

pasrom commented Jul 19, 2026

Copy link
Copy Markdown
Owner Author

Documentation sync update — 2026-07-19

Added 16 new source files and 2 new scripts to CLAUDE.md and docs/architecture-macos.md that existed in the codebase but were missing from the docs:

New source files:

  • EngineModelState.swift — app-owned TranscribingEngine model lifecycle state (decoupled from vendor enums)
  • AppSettings+RPC.swift — read-only settings projection for the debug RPC /state (#if !APPSTORE)
  • IdempotencyStore.swift — FIFO idempotency-key store for the automation API (#if !APPSTORE)
  • NamingWindowPolicy.swift — floating-window policy for the "Name Speakers" panel
  • NotificationRingBuffer.swift — bounded thread-safe notification log (#if !APPSTORE)
  • ProcessingStatsView.swift — per-stage processing duration display from stage_timing.jsonl
  • Settings/HelpBadge.swift + Settings/SettingsHelp.swift — inline settings help popovers
  • NemotronStreamingCaptionSession.swift + NemotronAsrManager.swift — Nemotron-based live caption session (alongside existing EOU session)
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction (line-cap split)
  • SpeakerNamingData.swift, SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift — speaker-naming value types and session logic extracted from PipelineQueue
  • StageTimingStats.swift — stage timing stats reader/writer for stage_timing.jsonl

New scripts:

  • scripts/e2e-permission-health.sh — E2E test for permission-health probes
  • scripts/build_perf_report.py — Python build performance trend report

Generated by Claude Code

@pasrom
pasrom force-pushed the docs/auto-update branch from 18319ea to 33e4b4c Compare July 20, 2026 07:08

pasrom commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

Doc sync update — 2026-07-20

Branch force-pushed with a new pass that caught 16 source files and 2 scripts added since the previous run:

Sources/ additions:

  • AppSettings+RPC.swift — read-only settings projection for /state (#if !APPSTORE)
  • EngineModelState.swift — vendor-agnostic model lifecycle state enum
  • NemotronStreamingCaptionSession.swift + NemotronAsrManager.swift — FluidAudio Nemotron multilingual streaming captions with injectable seams
  • LiveTranscriptionController+Nemotron.swift — Nemotron pipeline construction (line-cap split)
  • NamingWindowPolicy.swift — pure logic for pinning the speaker-naming window above other apps
  • ProcessingStatsView.swift — per-stage timing stats UI (reads stage_timing.jsonl)
  • SpeakerNamingData.swift, SpeakerNamingSession.swift, SpeakerNamingSession+Late.swift, SpeakerNamingStore.swift — speaker naming logic split out of PipelineQueue
  • StageTimingStats.swiftstage_timing.jsonl reader + aggregate computation + overrun detection
  • IdempotencyStore.swiftIdempotency-Key → job ID FIFO map for POST /v1/jobs (#if !APPSTORE)
  • NotificationRingBuffer.swift — bounded thread-safe notification history (#if !APPSTORE)

Settings/ additions:

  • HelpBadge.swift + SettingsHelp.swift — in-settings help popovers (always-visible ⓘ badges)

scripts/ additions:

  • e2e-permission-health.sh — E2E test for permission-health probes
  • build_perf_report.py — Python CI timing analysis (companion to build_perf_report.sh)

Both CLAUDE.md (file tree) and docs/architecture-macos.md (source file tables) updated.


Generated by Claude Code

Add 14 new source files introduced since the last doc update:
- EngineModelState: app-owned engine lifecycle enum (RPC wire contract)
- AppSettings+RPC: settings projection helper for /state snapshot
- NamingWindowPolicy: floating-window pin for naming dialog (issue #504)
- ProcessingStatsView + StageTimingStats: per-stage timing UI and log
- SpeakerNamingSession / +Late / SpeakerNamingData / SpeakerNamingStore:
  speaker naming concern unbundled from PipelineQueue
- NemotronStreamingCaptionSession + NemotronAsrManager: Nemotron live-
  caption pipeline (third LiveCaptionPipeline strategy alongside WhisperKit
  word-level and EOU streaming)
- LiveTranscriptionController+Nemotron: Nemotron factory split out (line-cap)
- NotificationRingBuffer + IdempotencyStore: debug RPC support types
- Settings/HelpBadge + Settings/SettingsHelp: visible ⓘ badge for settings

Add e2e-permission-health.sh script and build_perf_report.py (Python
analysis helper called by build_perf_report.sh).

Update LiveCaptionPipeline / LiveCaptionsGate descriptions to reflect the
three-way routing (WhisperKit / EOU / Nemotron).

Co-Authored-By: pasrom <pasrom@users.noreply.github.com>
@pasrom
pasrom force-pushed the docs/auto-update branch from 33e4b4c to 8e8206e Compare July 21, 2026 07:09

pasrom commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

2026-07-21 doc-sync run — branch force-updated with 39 new lines across CLAUDE.md and docs/architecture-macos.md.

14 new source files added to the file trees:

  • EngineModelState.swift — app-owned engine lifecycle enum (RPC wire contract for engines.*.modelState)
  • AppSettings+RPC.swift — settings projection helper split out of AppState+RPC.swift
  • NamingWindowPolicy.swift — floating-window pin for the naming dialog (issue [Bug] Speaker-naming window closes as soon as it loses focus #504)
  • ProcessingStatsView.swift + StageTimingStats.swift — per-stage timing UI and stage_timing.jsonl log
  • SpeakerNamingSession.swift + SpeakerNamingSession+Late.swift + SpeakerNamingData.swift + SpeakerNamingStore.swift — speaker naming concern unbundled from PipelineQueue
  • NemotronStreamingCaptionSession.swift + NemotronAsrManager.swift + LiveTranscriptionController+Nemotron.swift — Nemotron live-caption pipeline (third LiveCaptionPipeline strategy)
  • NotificationRingBuffer.swift + IdempotencyStore.swift — debug RPC support types

2 new Settings/ files: HelpBadge.swift, SettingsHelp.swift

2 new scripts: e2e-permission-health.sh, build_perf_report.py

Description updates: LiveCaptionPipeline and LiveCaptionsGate now mention three-way routing (WhisperKit / EOU / Nemotron).


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants