repowiserepowise
Sign in
murtaza-nasir/speakr
OverviewDocsArchitectureKnowledge GraphFilesCode HealthRefactoring

People & History

CommitsContributorsDecisions
ChatPro
Stats
repowiserepowise
ExplorePricingDocs
Sign inIndex repoIndex your repo free
repowisemurtaza-nasir/speakr

Commits

Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.

Needs review

165of 500 scored

165 commits sit in this repo's top risk tercile, which is 33% of the 500scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 7.4 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.

Fix commits10521%Commits whose subject reads as a bug fix rather than new work.Written by an agent10%Read from commit trailers, so it counts what was declared.Change diffusion1.02bitsShannon entropy of a commit's churn across its files. Zero is a single file, and every extra bit is a doubling of how widely the change spread.Review threshold7.4out of 10Score a commit has to clear to land in this repo's top tercile.

How the work changed shape

Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.

Began other-led, now leaning fix.

Feature17%
Fix22%
Refactor4%
Docs9%
Test5%
Deps4%
Chore4%
Other34%
0%of indexed commits are agent-attributed(1 of 500)
claude (1)

Review-priority queue

Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.

Commit review-priority queue
#CommitAuthorWhenLinesRiskTop driver
1
d1692f5fAdd unit tests lifting backend coverage 41% to 55% and add a CI coverage-floor gate
Murtaza Nasir
1mo ago+9.6K -6
100%Elevated
more lines added than baseline
2
3d7444ebClose mutation-sweep survivors (batch 1): SSO redirect, email-verify, webhook SSRF, group auto-share, inquire filters, recordings downloads, LLM tracking
Murtaza Nasir
1mo ago+1.1K -1
99%Elevated
more lines added than baseline
3
0bc72079Add dual local/S3 storage layer (ported from #268)
Dmitry Abramov
2mo ago+1.8K -192
99%Elevated
more lines added than baseline
4
f3ac64afTests: cover sharing/folders/groups/SSO authz holes + fix job-queue worker test isolation
Murtaza Nasir
2mo ago+1.8K -0
99%Elevated
more lines added than baseline
5
228ad15eWebhooks Phase 1: models, dispatcher with HMAC + retry + SSRF guard, v1 CRUD, lifecycle event emission (#275)
Murtaza Nasir
2mo ago+1.6K -0
99%Elevated
more lines added than baseline
6
d37cf769Add vitest unit tests for frontend utils and persistence modules (0% to 92-100%)
Murtaza Nasir
1mo ago+1.1K -0
99%Elevated
more lines added than baseline
7
033ad583Phase A: server-side recording-session backend with async ffmpeg stitch (#287 c/d)
Murtaza Nasir
2mo ago+1.5K -0
99%Elevated
more lines added than baseline
8
e45f7c43Add ASR Voice Recorder webhook integration
cybersader
4w ago+912 -85
98%Elevated
more lines added than baseline
9
7903a211Add markdown transcript export, bulk export of existing recordings to disk, and audio-level recording merge; remove orphaned bulk-action-bar template
Murtaza Nasir
1mo ago+1.3K -114
98%Elevated
more lines added than baseline
10
622e418bClose mutation-sweep survivors (batch 2a): storage guards, embeddings chunking, admin share-cleanup/usage, retention global-flag
Murtaza Nasir
1mo ago+652 -1
98%Elevated
more lines added than baseline
11
29d11fe5Tag/Folder modal Sharing empty-state + consistent height; alphabetical language dropdowns; localization sweep for Stats, Processing Queue, Reprocess modal — addresses three user-reported issues; (1) Tag/Folder edit modal Sharing tab now surfaces a role-appropriate empty state when internal sharing is on but the user has no admin groups (was just a blank tab) — site admins see a link to Admin → Groups, regular users see 'Ask your administrator to create a group and add you', applies to both tag a
Murtaza Nasir
2mo ago+759 -99
98%Elevated
more lines added than baseline
12
019a67fbAdd mobile external microphone selection
cybersader
4w ago+697 -105
97%Elevated
more lines added than baseline
13
10e1d577Recording sessions: segment-aware stitch assembly, dispatch stitch jobs, auto-finalize abandoned sessions, set title/meeting_date at finalize
Murtaza Nasir
2mo ago+669 -231
97%Elevated
more lines added than baseline
14
cb8b71ceTests: convert false guards to real assertions
Murtaza Nasir
2mo ago+452 -924
97%Elevated
more lines added than baseline
15
71d69413Fix CSRF bypass via unauthenticated API token parameter and SSO-only account takeover, preserving the safe add-password flow (CWE-287)
Murtaza Nasir
2mo ago+763 -34
97%Elevated
more lines added than baseline
16
d9803e1bfeat: configurable auto-export filename templates with rename migration for existing exports (#348)
Murtaza Nasir
2w ago+915 -18
97%Elevated
more lines added than baseline
17
2f7d5871feat: add MOSS-Transcribe-Diarize connector (Mossland API) (#330)
siva-sub
1mo ago+724 -2
97%Elevated
more lines added than baseline
18
8417fe60Upload-modal localization sweep — Linux platform hint / disable audio-processing toggle / input-device picker / Options group label / tab-audio-only tooltip / detected-virtual-device hint / mix-help / Linux pactl monitor hint / open-guide button + folderManagement keys for the next batch — addresses user-reported hard-coded English visible in the upload modal even when the rest of the UI is in Chinese/Spanish/etc.; adds 19 new recording.* keys plus upload.options plus folderManagement.* keys (tr
Murtaza Nasir
2mo ago+448 -49
97%Elevated
more lines added than baseline
19
dd34c3bcPass A foundation: primitives.css with design tokens (spacing scale 4/8/12/16/24/32/48/64, type tokens, radii, shadows, transitions) and primitive class definitions (surface, tabs, toggle, btn, field, spinner, empty, banner, float-panel, rail, t-* type scale) plus a 57-replacement sweep of hardcoded Tailwind colour utilities (bg-red-600, text-blue-500 etc.) to their CSS-variable equivalents across admin, account, and inquire so every theme + light/dark combination renders correctly
Murtaza Nasir
2mo ago+680 -45
97%Elevated
more lines added than baseline
20
02caa225Phase B: client streaming + finalize for server-side recording chunks (#287 c/d)
Murtaza Nasir
2mo ago+653 -8
97%Elevated
more lines added than baseline
21
664e8360Docs: document v0.9.0 API endpoints (folders CRUD, users/me, webhooks, connector discovery, per-request transcribe overrides, new recording fields)
Murtaza Nasir
2mo ago+475 -6
96%Elevated
more lines added than baseline
22
5afaaee9Webhooks Phase 2: account-settings tab with list/edit/test/deliveries/rotate + 16 i18n keys per locale (#275)
Murtaza Nasir
2mo ago+509 -7
96%Elevated
more lines added than baseline
23
f1016a07feat: parse meeting date from filename on upload with preset patterns, custom regex, and timezone-aware conversion (#342)
Murtaza Nasir
2w ago+617 -6
95%Elevated
more lines added than baseline
24
7b5b4166Add contextual speaker auto-labelling for connectors without voice embeddings: branch per-recording (embeddings -> voice match, none -> LLM match constrained to saved profiles), prefix-cache-friendly transcript-first prompt with an admin-editable guidance suffix, show the auto-label toggle for embedding-less connectors while hiding the confidence threshold, and clear stale embeddings on reprocess
Murtaza Nasir
1mo ago+542 -40
95%Elevated
more lines added than baseline
25
75823eefUnify transcription param resolution behind one shared resolver so merge, reprocess, share, auto-process, and stitch all honor tag/folder/env/account defaults identically to uploads
Murtaza Nasir
1mo ago+416 -215
95%Elevated
more lines added than baseline
26
72aaaca5Harden app from audit: enforce auth rate limits (was a no-op), fix bulk-toggle IDOR, re-validate webhook URLs at delivery against DNS rebinding, stop leaking exception text; bound all ffmpeg/ffprobe subprocesses with timeouts, clean up incognito/converted/extracted temp files on every path, stop post-completion side effects from corrupting finished recordings; close the recording AudioContext and display stream on stop/discard/error to fix the record-cycle leak, and unstick the incognito upload
Murtaza Nasir
1mo ago+633 -66
95%Elevated
more lines added than baseline
27
77bdebb2Add opt-in tab/window/screen video capture to system-audio recording (#303): keep the display video track through MediaRecorder, live preview, video mime support in recording sessions with probe-resolved mime after stitch, RECORDING_VIDEO_KBPS bitrate cap, docs and all-locale strings
Murtaza Nasir
1mo ago+640 -248
95%Elevated
more lines added than baseline
28
68b47392Add AssemblyAI transcription connector (async upload/poll API, diarization, speaker hints, word boost) with config docs and unit tests
Murtaza Nasir
1mo ago+490 -1
95%Elevated
more lines added than baseline
29
9d8d9acfClose mutation-sweep survivors (batch 2b): audio config flags, file-monitor admin scan, job-queue round-robin/filename, auth registration/SSO-init
Murtaza Nasir
1mo ago+327 -0
95%Elevated
more lines added than baseline
30
f8b35d5fSystem audio capture: platform detection + per-OS help modal + virtual audio device discovery — (1) new utils/platform.js exports detectPlatform() (returns {os, browser} from navigator), getAudioCapabilities() (returns supportsTabAudio / supportsWindowAudio / supportsSystemAudio flags driven by the browser+OS matrix — only Chrome/Edge on Windows or ChromeOS deliver true OS-wide capture; macOS/Linux are tab-audio-only; Firefox/Safari can't capture audio via getDisplayMedia at all) and enumerateVi
Murtaza Nasir
2mo ago+409 -42
95%Elevated
more lines added than baseline
31
1dd82964Migrate 10 modals to use modal-header / modal-title / modal-close / modal-body / modal-footer + btn primitives (add-speaker, bulk-reprocess, bulk-tag, text-editor, edit-text, duplicates, shares-list, color-scheme, edit-participants, edit-speakers, customize-summary-prompt) — each gets the unified header pattern (icon + title + subtitle + close), consistent body padding, footer with btn--ghost cancel + btn--primary action; gradient buttons replaced with btn--primary; ad-hoc input classes replaced
Murtaza Nasir
2mo ago+275 -484
95%Elevated
more lines added than baseline
32
dfcae881Pass B: right-rail tab strip rebuilt with primitives — single 40px row carrying Summary/Notes/Events tabs (with inline word/item counts) on the left and per-tab action toolbar on the right; tab content now uses .prose-flush class (no inner card chrome) so prose flows on the rail surface; editing mode replaces action icons with Cancel/Save in the same strip; summary/notes word counts exposed as Vue computeds with k-suffix formatting
Murtaza Nasir
2mo ago+371 -149
95%Elevated
more lines added than baseline
33
0f0fbc3fLocale updates: German translation backfill plus new keys for share-target, proxy 413, and recording recovery (#286, #285, #283, #297)
Murtaza Nasir
2mo ago+333 -228
95%Elevated
more lines added than baseline
34
5b9a2c35Refresh CSRF token before XHR upload and retry once on rejection (#302)
François Catuhe
2mo ago+249 -4
93%Elevated
more lines added than baseline
35
bcfec4ddMigrate group/admin/account/inquire modals to design-system header/body/footer structure (fix flush-content regression)
Murtaza Nasir
2mo ago+298 -292
93%Elevated
more lines added than baseline
36
a3ccab41In-app recording: real resume into same session, unified recovery modal, IndexedDB rolling buffer, live sidebar/queue updates, configurable chunk cadence
Murtaza Nasir
2mo ago+417 -100
93%Elevated
more lines added than baseline
37
84e01058Add per-upload Keep audio only override and larger size limit for audio-only video uploads, with admin setting max_audio_only_video_size_mb (default 4x max_file_size_mb) and a post-extraction size guard against oversized stored audio
Murtaza Nasir
2mo ago+478 -75
93%Elevated
more lines added than baseline
38
b0d9d2afFrontend resilience: failed-upload recovery, nav guard, chunking msg fix, chat partial preserve, markRaw multi-upload perf (#297, #287, #283, #282, #280)
Murtaza Nasir
2mo ago+270 -26
93%Elevated
more lines added than baseline
39
165933edLocalize prompt variables, append/replace mode, customize-summary modal, ASR editor save UX, and prompt-preview legend across all six languages
Murtaza Nasir
3mo ago+276 -54
93%Elevated
more lines added than baseline
40
5d701608feat: localize bulk-reprocess modal, toasts, and remaining hardcoded detail-view tooltips across all seven locales (supersedes #351)
Murtaza Nasir
2w ago+295 -124
91%Elevated
more lines added than baseline
41
f7bf7589Fix three reported security advisories: SSO account-takeover secure-by-default verified-email (GHSA-w4q5-3526-j82j), webhook SSRF via connect-time peer-IP pinning (GHSA-2m89-mxcv-gv93), and stored XSS via tag color with hex validation plus quote-escaping (GHSA-pp32-69wg-97h3)
Murtaza Nasir
1mo ago+390 -46
91%Elevated
more lines added than baseline
42
60a4cac8Add needs filters for recordings
Fran Fitzpatrick
1mo ago+321 -5
91%Elevated
more lines added than baseline
43
166b5a21feat: opt-in prefix-cache-friendly title/summary prompts
fcatuhe
1mo ago+320 -12
91%Elevated
more lines added than baseline
44
f92977bbAdd Transcription Prompts settings subtab and pick-from-saved picker in account/tag/folder editors (#309)
Murtaza Nasir
1mo ago+348 -2
91%Elevated
more lines added than baseline
45
1be430bbAdd transcription initial-prompt template library with CRUD API and admin default initial prompt (#309)
Murtaza Nasir
1mo ago+392 -0
91%Elevated
more lines added than baseline
46
4b2f8fa2recordings: probe-driven video MIME (stop guessing), reindex Inquire chunks on transcript/speaker edits, configurable RECORDING_CHUNK_SECONDS
Murtaza Nasir
2mo ago+329 -8
91%Elevated
more lines added than baseline
47
60100563Ship the floating dockable chat panel: new components/detail/floating-chat.html (Teleported to body) with FAB at bottom-right when collapsed, opens into a 380x520 panel docked-se by default; header drag-to-snap supports 4-corner snap (within 100px) plus free-floating; maximize toggles to fill the viewport-less-header; per-recording position persisted in localStorage; .floating-chat-* CSS primitives in primitives.css handle all 4 states + responsive (mobile hides the floating chat — mobile uses t
Murtaza Nasir
2mo ago+452 -3
91%Elevated
more lines added than baseline
48
426a0a80Add per-feature transcript timestamp toggles for summary and chat with default-or-template format selection (#304)
Murtaza Nasir
1mo ago+351 -15
90%Elevated
more lines added than baseline
49
591cdbe6Fix TransactionInactiveError when persisting failed uploads to IndexedDB
jjsmackayclaudeassisted
1mo ago+188 -23
90%Elevated
more lines added than baseline
50
23ff883fAdd Forgejo Actions CI: tests + multi-arch Docker build to Docker Hub
Murtaza Nasir
2mo ago+217 -0
90%Elevated
more lines added than baseline
  • d1692f5fAdd unit tests lifting backend coverage 41% to 55% and add a CI coverage-floor gate
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +9.6K -6
    Risk
    100%Elevated
  • 3d7444ebClose mutation-sweep survivors (batch 1): SSO redirect, email-verify, webhook SSRF, group auto-share, inquire filters, recordings downloads, LLM tracking
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +1.1K -1
    Risk
    99%Elevated
  • 0bc72079Add dual local/S3 storage layer (ported from #268)
    Author
    Dmitry Abramov
    When
    2mo ago
    Lines
    +1.8K -192
    Risk
    99%Elevated
  • f3ac64afTests: cover sharing/folders/groups/SSO authz holes + fix job-queue worker test isolation
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +1.8K -0
    Risk
    99%Elevated
  • 228ad15eWebhooks Phase 1: models, dispatcher with HMAC + retry + SSRF guard, v1 CRUD, lifecycle event emission (#275)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +1.6K -0
    Risk
    99%Elevated
  • d37cf769Add vitest unit tests for frontend utils and persistence modules (0% to 92-100%)
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +1.1K -0
    Risk
    99%Elevated
  • 033ad583Phase A: server-side recording-session backend with async ffmpeg stitch (#287 c/d)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +1.5K -0
    Risk
    99%Elevated
  • e45f7c43Add ASR Voice Recorder webhook integration
    Author
    cybersader
    When
    4w ago
    Lines
    +912 -85
    Risk
    98%Elevated
  • 7903a211Add markdown transcript export, bulk export of existing recordings to disk, and audio-level recording merge; remove orphaned bulk-action-bar template
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +1.3K -114
    Risk
    98%Elevated
  • 622e418bClose mutation-sweep survivors (batch 2a): storage guards, embeddings chunking, admin share-cleanup/usage, retention global-flag
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +652 -1
    Risk
    98%Elevated
  • 29d11fe5Tag/Folder modal Sharing empty-state + consistent height; alphabetical language dropdowns; localization sweep for Stats, Processing Queue, Reprocess modal — addresses three user-reported issues; (1) Tag/Folder edit modal Sharing tab now surfaces a role-appropriate empty state when internal sharing is on but the user has no admin groups (was just a blank tab) — site admins see a link to Admin → Groups, regular users see 'Ask your administrator to create a group and add you', applies to both tag a
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +759 -99
    Risk
    98%Elevated
  • 019a67fbAdd mobile external microphone selection
    Author
    cybersader
    When
    4w ago
    Lines
    +697 -105
    Risk
    97%Elevated
  • 10e1d577Recording sessions: segment-aware stitch assembly, dispatch stitch jobs, auto-finalize abandoned sessions, set title/meeting_date at finalize
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +669 -231
    Risk
    97%Elevated
  • cb8b71ceTests: convert false guards to real assertions
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +452 -924
    Risk
    97%Elevated
  • 71d69413Fix CSRF bypass via unauthenticated API token parameter and SSO-only account takeover, preserving the safe add-password flow (CWE-287)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +763 -34
    Risk
    97%Elevated
  • d9803e1bfeat: configurable auto-export filename templates with rename migration for existing exports (#348)
    Author
    Murtaza Nasir
    When
    2w ago
    Lines
    +915 -18
    Risk
    97%Elevated
  • 2f7d5871feat: add MOSS-Transcribe-Diarize connector (Mossland API) (#330)
    Author
    siva-sub
    When
    1mo ago
    Lines
    +724 -2
    Risk
    97%Elevated
  • 8417fe60Upload-modal localization sweep — Linux platform hint / disable audio-processing toggle / input-device picker / Options group label / tab-audio-only tooltip / detected-virtual-device hint / mix-help / Linux pactl monitor hint / open-guide button + folderManagement keys for the next batch — addresses user-reported hard-coded English visible in the upload modal even when the rest of the UI is in Chinese/Spanish/etc.; adds 19 new recording.* keys plus upload.options plus folderManagement.* keys (tr
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +448 -49
    Risk
    97%Elevated
  • dd34c3bcPass A foundation: primitives.css with design tokens (spacing scale 4/8/12/16/24/32/48/64, type tokens, radii, shadows, transitions) and primitive class definitions (surface, tabs, toggle, btn, field, spinner, empty, banner, float-panel, rail, t-* type scale) plus a 57-replacement sweep of hardcoded Tailwind colour utilities (bg-red-600, text-blue-500 etc.) to their CSS-variable equivalents across admin, account, and inquire so every theme + light/dark combination renders correctly
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +680 -45
    Risk
    97%Elevated
  • 02caa225Phase B: client streaming + finalize for server-side recording chunks (#287 c/d)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +653 -8
    Risk
    97%Elevated
  • 664e8360Docs: document v0.9.0 API endpoints (folders CRUD, users/me, webhooks, connector discovery, per-request transcribe overrides, new recording fields)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +475 -6
    Risk
    96%Elevated
  • 5afaaee9Webhooks Phase 2: account-settings tab with list/edit/test/deliveries/rotate + 16 i18n keys per locale (#275)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +509 -7
    Risk
    96%Elevated
  • f1016a07feat: parse meeting date from filename on upload with preset patterns, custom regex, and timezone-aware conversion (#342)
    Author
    Murtaza Nasir
    When
    2w ago
    Lines
    +617 -6
    Risk
    95%Elevated
  • 7b5b4166Add contextual speaker auto-labelling for connectors without voice embeddings: branch per-recording (embeddings -> voice match, none -> LLM match constrained to saved profiles), prefix-cache-friendly transcript-first prompt with an admin-editable guidance suffix, show the auto-label toggle for embedding-less connectors while hiding the confidence threshold, and clear stale embeddings on reprocess
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +542 -40
    Risk
    95%Elevated
  • 75823eefUnify transcription param resolution behind one shared resolver so merge, reprocess, share, auto-process, and stitch all honor tag/folder/env/account defaults identically to uploads
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +416 -215
    Risk
    95%Elevated
  • 72aaaca5Harden app from audit: enforce auth rate limits (was a no-op), fix bulk-toggle IDOR, re-validate webhook URLs at delivery against DNS rebinding, stop leaking exception text; bound all ffmpeg/ffprobe subprocesses with timeouts, clean up incognito/converted/extracted temp files on every path, stop post-completion side effects from corrupting finished recordings; close the recording AudioContext and display stream on stop/discard/error to fix the record-cycle leak, and unstick the incognito upload
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +633 -66
    Risk
    95%Elevated
  • 77bdebb2Add opt-in tab/window/screen video capture to system-audio recording (#303): keep the display video track through MediaRecorder, live preview, video mime support in recording sessions with probe-resolved mime after stitch, RECORDING_VIDEO_KBPS bitrate cap, docs and all-locale strings
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +640 -248
    Risk
    95%Elevated
  • 68b47392Add AssemblyAI transcription connector (async upload/poll API, diarization, speaker hints, word boost) with config docs and unit tests
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +490 -1
    Risk
    95%Elevated
  • 9d8d9acfClose mutation-sweep survivors (batch 2b): audio config flags, file-monitor admin scan, job-queue round-robin/filename, auth registration/SSO-init
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +327 -0
    Risk
    95%Elevated
  • f8b35d5fSystem audio capture: platform detection + per-OS help modal + virtual audio device discovery — (1) new utils/platform.js exports detectPlatform() (returns {os, browser} from navigator), getAudioCapabilities() (returns supportsTabAudio / supportsWindowAudio / supportsSystemAudio flags driven by the browser+OS matrix — only Chrome/Edge on Windows or ChromeOS deliver true OS-wide capture; macOS/Linux are tab-audio-only; Firefox/Safari can't capture audio via getDisplayMedia at all) and enumerateVi
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +409 -42
    Risk
    95%Elevated
  • 1dd82964Migrate 10 modals to use modal-header / modal-title / modal-close / modal-body / modal-footer + btn primitives (add-speaker, bulk-reprocess, bulk-tag, text-editor, edit-text, duplicates, shares-list, color-scheme, edit-participants, edit-speakers, customize-summary-prompt) — each gets the unified header pattern (icon + title + subtitle + close), consistent body padding, footer with btn--ghost cancel + btn--primary action; gradient buttons replaced with btn--primary; ad-hoc input classes replaced
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +275 -484
    Risk
    95%Elevated
  • dfcae881Pass B: right-rail tab strip rebuilt with primitives — single 40px row carrying Summary/Notes/Events tabs (with inline word/item counts) on the left and per-tab action toolbar on the right; tab content now uses .prose-flush class (no inner card chrome) so prose flows on the rail surface; editing mode replaces action icons with Cancel/Save in the same strip; summary/notes word counts exposed as Vue computeds with k-suffix formatting
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +371 -149
    Risk
    95%Elevated
  • 0f0fbc3fLocale updates: German translation backfill plus new keys for share-target, proxy 413, and recording recovery (#286, #285, #283, #297)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +333 -228
    Risk
    95%Elevated
  • 5b9a2c35Refresh CSRF token before XHR upload and retry once on rejection (#302)
    Author
    François Catuhe
    When
    2mo ago
    Lines
    +249 -4
    Risk
    93%Elevated
  • bcfec4ddMigrate group/admin/account/inquire modals to design-system header/body/footer structure (fix flush-content regression)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +298 -292
    Risk
    93%Elevated
  • a3ccab41In-app recording: real resume into same session, unified recovery modal, IndexedDB rolling buffer, live sidebar/queue updates, configurable chunk cadence
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +417 -100
    Risk
    93%Elevated
  • 84e01058Add per-upload Keep audio only override and larger size limit for audio-only video uploads, with admin setting max_audio_only_video_size_mb (default 4x max_file_size_mb) and a post-extraction size guard against oversized stored audio
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +478 -75
    Risk
    93%Elevated
  • b0d9d2afFrontend resilience: failed-upload recovery, nav guard, chunking msg fix, chat partial preserve, markRaw multi-upload perf (#297, #287, #283, #282, #280)
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +270 -26
    Risk
    93%Elevated
  • 165933edLocalize prompt variables, append/replace mode, customize-summary modal, ASR editor save UX, and prompt-preview legend across all six languages
    Author
    Murtaza Nasir
    When
    3mo ago
    Lines
    +276 -54
    Risk
    93%Elevated
  • 5d701608feat: localize bulk-reprocess modal, toasts, and remaining hardcoded detail-view tooltips across all seven locales (supersedes #351)
    Author
    Murtaza Nasir
    When
    2w ago
    Lines
    +295 -124
    Risk
    91%Elevated
  • f7bf7589Fix three reported security advisories: SSO account-takeover secure-by-default verified-email (GHSA-w4q5-3526-j82j), webhook SSRF via connect-time peer-IP pinning (GHSA-2m89-mxcv-gv93), and stored XSS via tag color with hex validation plus quote-escaping (GHSA-pp32-69wg-97h3)
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +390 -46
    Risk
    91%Elevated
  • 60a4cac8Add needs filters for recordings
    Author
    Fran Fitzpatrick
    When
    1mo ago
    Lines
    +321 -5
    Risk
    91%Elevated
  • 166b5a21feat: opt-in prefix-cache-friendly title/summary prompts
    Author
    fcatuhe
    When
    1mo ago
    Lines
    +320 -12
    Risk
    91%Elevated
  • f92977bbAdd Transcription Prompts settings subtab and pick-from-saved picker in account/tag/folder editors (#309)
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +348 -2
    Risk
    91%Elevated
  • 1be430bbAdd transcription initial-prompt template library with CRUD API and admin default initial prompt (#309)
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +392 -0
    Risk
    91%Elevated
  • 4b2f8fa2recordings: probe-driven video MIME (stop guessing), reindex Inquire chunks on transcript/speaker edits, configurable RECORDING_CHUNK_SECONDS
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +329 -8
    Risk
    91%Elevated
  • 60100563Ship the floating dockable chat panel: new components/detail/floating-chat.html (Teleported to body) with FAB at bottom-right when collapsed, opens into a 380x520 panel docked-se by default; header drag-to-snap supports 4-corner snap (within 100px) plus free-floating; maximize toggles to fill the viewport-less-header; per-recording position persisted in localStorage; .floating-chat-* CSS primitives in primitives.css handle all 4 states + responsive (mobile hides the floating chat — mobile uses t
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +452 -3
    Risk
    91%Elevated
  • 426a0a80Add per-feature transcript timestamp toggles for summary and chat with default-or-template format selection (#304)
    Author
    Murtaza Nasir
    When
    1mo ago
    Lines
    +351 -15
    Risk
    90%Elevated
  • 591cdbe6Fix TransactionInactiveError when persisting failed uploads to IndexedDB
    Author
    jjsmackay
    When
    1mo ago
    Lines
    +188 -23
    Risk
    90%Elevated
  • 23ff883fAdd Forgejo Actions CI: tests + multi-arch Docker build to Docker Hub
    Author
    Murtaza Nasir
    When
    2mo ago
    Lines
    +217 -0
    Risk
    90%Elevated
Showing 50 of 500 commits

How the score behaves here

Change risk →

Two views of the same model: where the cuts fall, and what commit shape lands you above them.

Score distribution

Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.

049typical ↑elevated ↑0.05.010.0Change-risk score →
Below typical
Typical
Elevated

Size against diffusion

The 200 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.

1101001,000Lines changed (log) →0.04.4Diffusion →
Below typical69
Typical61
Elevated70

Commit history for murtaza-nasir/speakr

murtaza-nasir/speakr has 621 commits in its history from 15 contributors, the first of them Feb 10, 2026. In the last 90 days 196 files were touched, 693 times in total, most often app.modular.js. Every commit is scored for change risk from its size, spread and the history of the files it touches.