Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
525 commits
Select commit Hold shift + click to select a range
3d36021
Add SQLite concurrency settings for multi-worker job queue
murtaza-nasir Nov 26, 2025
ce9c0da
Add separate queues for transcription and summary jobs
murtaza-nasir Nov 27, 2025
e877c83
Add collapsible floating indicator for transcription reprocessing
murtaza-nasir Nov 27, 2025
414ec53
Exempt status polling endpoints from rate limiting
murtaza-nasir Nov 27, 2025
4c6c6a3
Improve processing queue popup with backend job visibility
murtaza-nasir Nov 27, 2025
497bc82
Add unified progress tracking with smart polling and fix queue manage…
murtaza-nasir Nov 27, 2025
6df519c
Release v0.6.0 - Multi-user job queue and processing improvements
murtaza-nasir Nov 27, 2025
65eea80
Cache HuggingFace models in persistent data directory
murtaza-nasir Nov 27, 2025
0b4ed96
v0.6.1: Offline deployment improvements and HuggingFace model caching
murtaza-nasir Nov 27, 2025
9ee3f80
Fix summary and notes content overlapping scrollbar
murtaza-nasir Nov 28, 2025
d194238
Fix recording disclaimer modal functionality after refactor
murtaza-nasir Nov 28, 2025
bf18ba5
Fix crash recovery: properly convert Vue reactive objects and expose …
murtaza-nasir Nov 28, 2025
f55d1c3
Fix recovery view: show recording view instead of non-existent previe…
murtaza-nasir Nov 28, 2025
e86c2de
Reduce chunk interval to 5 seconds for less overhead during recording
murtaza-nasir Nov 28, 2025
bc2d97e
Remove repetitive chunk/metadata logs to reduce console spam during r…
murtaza-nasir Nov 28, 2025
604db50
Standardize modal close behavior and fix processing queue cleanup on …
murtaza-nasir Nov 28, 2025
caa517e
v0.6.2: Update version and documentation
murtaza-nasir Nov 28, 2025
3f1a8c8
Fix reprocess modal mobile layout
murtaza-nasir Nov 28, 2025
c98e62b
v0.6.3: Add API token authentication for programmatic access
murtaza-nasir Nov 28, 2025
49ab240
v0.6.4: Fix transcript download for non-diarized transcriptions
murtaza-nasir Nov 29, 2025
8bf8725
Fix username display showing None when full name not set (#138)
murtaza-nasir Dec 3, 2025
47a1a9e
Fix audio chunking not working after refactor (#140)
murtaza-nasir Dec 3, 2025
bcc0ed6
Add custom themed datetime picker modal with calendar and time selection
murtaza-nasir Dec 3, 2025
338aff7
Add separate chat model configuration for different service tiers (#143)
murtaza-nasir Dec 3, 2025
107f057
v0.6.5: Separate chat model configuration and bug fixes
murtaza-nasir Dec 3, 2025
8511c0e
Delete no longer user image
AnimiVulpis Dec 4, 2025
aab93d2
Merge pull request #145 from AnimiVulpis/remove-unused-image
murtaza-nasir Dec 5, 2025
7bb107e
Use production Vue builds in released docker image
JadedBlueEyes Dec 11, 2025
5dc36ab
Add PyTorch 2.6 weights_only fix documentation for WhisperX ASR
murtaza-nasir Dec 12, 2025
19b99ca
Add speaker filtering and fix filter AND logic
murtaza-nasir Dec 12, 2025
814d9d2
Add starred and inbox filter toggles in filter panel
murtaza-nasir Dec 12, 2025
8da5f7e
Fix ASR compatibility for whisper-asr-webservice (#149)
murtaza-nasir Dec 12, 2025
2439952
Improve frontend error handling for non-JSON responses
murtaza-nasir Dec 12, 2025
b6090e0
Add .weba support and FFmpeg fallback for unknown formats
murtaza-nasir Dec 12, 2025
5d5a3d4
Add automatic audio compression for lossless uploads (#152)
murtaza-nasir Dec 12, 2025
21852b7
Use compression settings for format conversion instead of hardcoded M…
murtaza-nasir Dec 12, 2025
b9b1bea
Add audio compression documentation to installation, admin settings, …
murtaza-nasir Dec 12, 2025
ea5e3d7
Fix sort toggle to actually sort recordings and add Upcoming group fo…
murtaza-nasir Dec 12, 2025
207eea9
Merge branch 'master' of https://github.com/murtaza-nasir/speakr
murtaza-nasir Dec 14, 2025
da4a8b3
Merge pull request #151 from JadedBlueEyes/jade/vue-prod
murtaza-nasir Dec 14, 2025
2745200
Update version to v0.6.6 and add release notes to docs
murtaza-nasir Dec 14, 2025
cbaac36
Update version to v0.6.6 and add release notes to docs
murtaza-nasir Dec 14, 2025
99d907a
Merge branch 'master' of https://github.com/murtaza-nasir/speakr
murtaza-nasir Dec 14, 2025
0d77772
Add SSO support
Daabramov Dec 14, 2025
ab0d4f8
Implement migration to make password column nullable for SSO users
Daabramov Dec 14, 2025
3be1511
Add Russian language support
Daabramov Dec 14, 2025
3a7fee7
Merge pull request #154 from Daabramov/feat/locale-rus
murtaza-nasir Dec 16, 2025
67c67a4
Merge pull request #153 from Daabramov/feat/sso
murtaza-nasir Dec 17, 2025
2f34534
Update version to v0.7.0 and add SSO documentation
murtaza-nasir Dec 17, 2025
7bb3899
Add SSO unlink feature for linked accounts
murtaza-nasir Dec 17, 2025
ce4086b
Allow SSO-only users to set a password without current password
murtaza-nasir Dec 17, 2025
ecd4519
Update v0.7.0 release notes with SSO unlink feature
murtaza-nasir Dec 17, 2025
828069b
Add SSO_DISABLE_PASSWORD_LOGIN option for SSO-only enforcement
murtaza-nasir Dec 17, 2025
b32e841
Refactor: Improve audio conversion pipeline
JadedBlueEyes Dec 18, 2025
b2bbff6
Add PostgreSQL support and update configuration examples
sakowicz Dec 25, 2025
5a5cfeb
Merge pull request #158 from JadedBlueEyes/jade/audio-codecs
murtaza-nasir Dec 29, 2025
74a1655
Fix codec check before stream copy in video audio extraction
murtaza-nasir Dec 29, 2025
082467f
Add explicit audio download button for mobile support
murtaza-nasir Dec 29, 2025
ff4e36f
Fix job queue race condition with multiple workers
murtaza-nasir Dec 29, 2025
071a8f3
Add downloadAudio translations for all languages
murtaza-nasir Dec 29, 2025
b646bff
Update version to v0.7.1 and add release notes
murtaza-nasir Dec 29, 2025
bc48f9d
Merge pull request #159 from sakowicz/master
murtaza-nasir Dec 29, 2025
8941216
Merge branch 'master' of https://github.com/murtaza-nasir/speakr
murtaza-nasir Dec 29, 2025
7dff404
Add PostgreSQL support to v0.7.1 release notes
murtaza-nasir Dec 29, 2025
f154e24
Update README with v0.7.1 release notes
murtaza-nasir Dec 29, 2025
b9d95ff
Add AUDIO_UNSUPPORTED_CODECS config to exclude codecs from supported …
murtaza-nasir Jan 1, 2026
6b5ab22
Add documentation for AUDIO_UNSUPPORTED_CODECS setting
murtaza-nasir Jan 2, 2026
8c9b792
Docs: fix service name, add Apache config, update model notes (thanks…
murtaza-nasir Jan 7, 2026
ea65753
Update CLA workflow to v2.6.1, fix permissions
murtaza-nasir Jan 7, 2026
344b453
Add download button to desktop audio player and fix dark mode styling
murtaza-nasir Jan 7, 2026
78d82e1
Add custom audio player with full theme support
murtaza-nasir Jan 7, 2026
9ec86fc
Add custom audio player to modals and share page with proper scoping
murtaza-nasir Jan 7, 2026
79a7d8b
Improve desktop audio player visibility and add drag-to-seek
murtaza-nasir Jan 7, 2026
7f89763
Improve mobile audio player and add localization for player tooltips
murtaza-nasir Jan 7, 2026
3d79ceb
Fix upload tags to always use current selection when upload starts
murtaza-nasir Jan 7, 2026
79ae280
Performance: Quick wins for long transcriptions (#157)
murtaza-nasir Jan 7, 2026
01d789b
Add virtual scroll composable and state infrastructure
murtaza-nasir Jan 7, 2026
daad4d4
Fix audio player conflicts when opening modals with audio
murtaza-nasir Jan 7, 2026
f4abf82
Fix missing openAsrDropdownIndex ref in app state
murtaza-nasir Jan 7, 2026
b15736d
Fix intermittent audio duration showing 0:00
murtaza-nasir Jan 7, 2026
24072b1
Add virtual scrolling to speaker modal for long transcriptions
murtaza-nasir Jan 7, 2026
e8353db
Convert speaker navigation to index-based for virtual scroll
murtaza-nasir Jan 7, 2026
d6e9b44
Add virtual scrolling to ASR editor modal
murtaza-nasir Jan 7, 2026
cc91749
Make modal audio players independent from main player
murtaza-nasir Jan 7, 2026
fb0bf33
Fix modal transcript seek to use modal audio player
murtaza-nasir Jan 7, 2026
407e728
Fix virtual scroll issues in ASR editor and speaker modals
murtaza-nasir Jan 7, 2026
55c4fee
Scroll to nearest speaker instance instead of first when focusing input
murtaza-nasir Jan 7, 2026
831ed67
Use file creation date for meeting_date instead of current time
murtaza-nasir Jan 7, 2026
df85888
Add token usage tracking and per-user budget enforcement
murtaza-nasir Jan 7, 2026
265cf1b
Set token budget minimum to 100k with 10k increments
murtaza-nasir Jan 7, 2026
6a5569b
Add localization for token budget feature
murtaza-nasir Jan 7, 2026
21535bb
Fix upload-interface screenshot and add upload with token usage view
murtaza-nasir Jan 7, 2026
0d009a5
Fix speaker color inconsistency in identification dialog (#163)
murtaza-nasir Jan 7, 2026
f23851f
Fix speaker color inconsistency in identification dialog (#163)
murtaza-nasir Jan 7, 2026
167af0f
Merge branch 'master' of https://github.com/murtaza-nasir/speakr
murtaza-nasir Jan 7, 2026
ae12186
Refactor database column handling for PostgreSQL compatibility
sakowicz Jan 7, 2026
096fe36
Merge pull request #165 from sakowicz/master
murtaza-nasir Jan 7, 2026
4854692
Add STT connector architecture phase 2: data-driven UI, specification…
murtaza-nasir Jan 8, 2026
7f45c95
unsupported files in the connectors
murtaza-nasir Jan 8, 2026
39e73b4
Update config examples for connector architecture with deprecation no…
murtaza-nasir Jan 8, 2026
f94df48
Update installation docs for connector architecture and self-hosted r…
murtaza-nasir Jan 8, 2026
3346ce4
Add migration guide and custom connectors documentation
murtaza-nasir Jan 8, 2026
ddb0d45
Add connector architecture tests and manual testing checklist
murtaza-nasir Jan 8, 2026
6d6c84b
Add user-friendly error display and prevent operations on failed tran…
murtaza-nasir Jan 8, 2026
a0cd390
Fix 400 errors not detected as permanent and unsupported file extensions
murtaza-nasir Jan 8, 2026
1f791f0
Pass connector_specs to convert_if_needed for codec restrictions
murtaza-nasir Jan 8, 2026
9e6acf6
Use accent colors for audio player controls
murtaza-nasir Jan 8, 2026
addcde1
Add comprehensive REST API v1 for automation and dashboard integrations
murtaza-nasir Jan 8, 2026
84f5e0e
Add OpenAPI documentation and Swagger UI at /api/v1/docs
murtaza-nasir Jan 8, 2026
7949464
Exempt API v1 from CSRF and format transcripts with user templates
murtaza-nasir Jan 8, 2026
ecfd5d8
Add comprehensive API v1 documentation and Swagger UI
murtaza-nasir Jan 8, 2026
e85ed70
Update docs and version to 0.8.0 for connector architecture and API r…
murtaza-nasir Jan 8, 2026
e75bd21
Expand speaker colors to 16 with stable assignment and update screenshot
murtaza-nasir Jan 8, 2026
22ee19c
Simplify README install instructions for connector architecture
murtaza-nasir Jan 8, 2026
1415a55
Highlight cloud diarization feature and fix ASR timeout fallback
murtaza-nasir Jan 8, 2026
39cd485
Fix write timeout and allow job queue retries to work properly
murtaza-nasir Jan 8, 2026
8323848
Fix connector chunking and add missing TEXT_MODEL docs
murtaza-nasir Jan 9, 2026
09aace9
Enable diarization for chunked files using known speaker references
murtaza-nasir Jan 9, 2026
0d26d9e
Bump version to 0.8.1 with minor bug fixes
murtaza-nasir Jan 9, 2026
b64161e
Fix ASR enabled detection to use connector instead of deprecated env var
murtaza-nasir Jan 9, 2026
fce31d5
Add transcription usage tracking with per-user budgets
murtaza-nasir Jan 9, 2026
d5ae6c4
Fix WebM audio seeking by converting to seekable formats and adding s…
murtaza-nasir Jan 10, 2026
e0f18e4
Handle WebM container specifically instead of removing opus/vorbis co…
murtaza-nasir Jan 10, 2026
5f1e325
Add drag-and-drop tag reordering with desktop and mobile support
murtaza-nasir Jan 10, 2026
4eb9a15
Add recording upload api entrypoint
LumenYoung Jan 10, 2026
28e46bd
Add upload recording related tests
LumenYoung Jan 10, 2026
09c8bae
Change CLA from explicit signature to implicit acceptance on PR submi…
murtaza-nasir Jan 20, 2026
3035842
Add REGISTRATION_ALLOWED_DOMAINS to restrict registration by email do…
murtaza-nasir Jan 20, 2026
c2fde5a
Clear events on summary regeneration and add DELETE endpoint for events
murtaza-nasir Jan 20, 2026
b657de9
Add delete button for individual events on desktop and mobile
murtaza-nasir Jan 20, 2026
e97cb84
Add naming templates feature for custom recording title formatting
murtaza-nasir Jan 20, 2026
991e74a
Merge pull request #170 from LumenYoung/feat/upload-api
murtaza-nasir Jan 20, 2026
6476e23
Add upload endpoint to API v1 - Merge branch 'master' of https://gith…
murtaza-nasir Jan 20, 2026
4276d9f
Bump version to 0.8.3
murtaza-nasir Jan 20, 2026
48d3dca
Preserve failed uploads for reprocessing instead of deleting them
murtaza-nasir Jan 20, 2026
c940509
Add language dropdown to reprocess modal with auto-detect support
murtaza-nasir Jan 22, 2026
6c1c117
Bump version to 0.8.4
murtaza-nasir Jan 22, 2026
0c25c4f
Add email verification and password reset functionality
murtaza-nasir Jan 22, 2026
fa522dc
Add documentation for email verification and password reset
murtaza-nasir Jan 22, 2026
4d4f36f
Bump version to 0.8.4
murtaza-nasir Jan 22, 2026
f17c94d
update docs
murtaza-nasir Jan 22, 2026
9826f3c
Add playback speed control (0.5x-3x) to all audio players
murtaza-nasir Jan 25, 2026
aacfff3
Fix app context error in chat streaming generator
murtaza-nasir Jan 25, 2026
b0b097a
Add incognito mode for session-only transcription processing
murtaza-nasir Jan 25, 2026
9ecd1f6
Add bulk operations for multi-select recordings in sidebar
murtaza-nasir Jan 25, 2026
01ebe77
Improve bulk action bar UX: vertical floating design, persist selecti…
murtaza-nasir Jan 25, 2026
7bf7acc
Bump version to 0.8.5
murtaza-nasir Jan 25, 2026
a9cdccf
Fix incognito data lingering in sessionStorage after navigation
murtaza-nasir Jan 26, 2026
71ee446
Add incognito mode support for in-app recordings
murtaza-nasir Jan 26, 2026
de7580e
Add INCOGNITO_MODE_DEFAULT env var for default-on incognito recordings
murtaza-nasir Jan 26, 2026
8266086
Add ENABLE_STREAM_OPTIONS env var for LLM server compatibility
murtaza-nasir Jan 26, 2026
f1d3717
Bump version to 0.8.5.1
murtaza-nasir Jan 26, 2026
f1d1fd5
Add incognito summary endpoint and improve LLM error messages
murtaza-nasir Jan 31, 2026
21cb19a
Add Azure OpenAI transcription connector
murtaza-nasir Jan 31, 2026
f789f1a
Fix PostgreSQL boolean defaults in migrations
murtaza-nasir Jan 31, 2026
8b34dc2
Add PostgreSQL compatibility comment to migration utilities
murtaza-nasir Jan 31, 2026
9c6b622
Add SKIP_EMAIL_DOMAIN_CHECK env var to bypass DNS validation
murtaza-nasir Jan 31, 2026
0b41bc6
Server-render share page transcript for accessibility
murtaza-nasir Jan 31, 2026
ce2e88b
Fix share page click-to-seek and highlight-as-played
murtaza-nasir Jan 31, 2026
df90deb
Fix share page speed menu to open downward
murtaza-nasir Jan 31, 2026
98c7fa2
Make readable share links opt-in via READABLE_PUBLIC_LINKS env var
murtaza-nasir Jan 31, 2026
77528b5
Add auto speaker labelling and per-user auto-summarization settings
murtaza-nasir Jan 31, 2026
1b03a35
Remove legacy ASR transcription paths, migrate to connector architecture
murtaza-nasir Jan 31, 2026
db6c40e
Add folders feature for organizing recordings with custom prompts and…
murtaza-nasir Jan 31, 2026
79446a9
Hide audio player for incognito recordings to prevent 404 errors
murtaza-nasir Jan 31, 2026
8b4c016
Auto-fallback to mp3 when AUDIO_CODEC conflicts with connector
murtaza-nasir Jan 31, 2026
aaa84f0
Fix folders feature detection in account settings
murtaza-nasir Jan 31, 2026
8d92177
Fix boolean setting comparison for enable_folders
murtaza-nasir Jan 31, 2026
1e0e795
Improve folder UI: sidebar selector, title bar icon, folder pills, an…
murtaza-nasir Feb 1, 2026
345b21c
Refine sidebar header sizing: title-like folder selector, compact fil…
murtaza-nasir Feb 1, 2026
0f0c866
Add HTTPS checks before recording to provide clear error messages
murtaza-nasir Feb 1, 2026
f28a096
Bump version to v0.8.6
murtaza-nasir Feb 1, 2026
d089bdc
Fix PostgreSQL migration compatibility for boolean defaults and reser…
murtaza-nasir Feb 1, 2026
eda69ee
Fix missing model imports and adminGroups variable reference
murtaza-nasir Feb 6, 2026
cc27682
Fix ASR empty text validation and add cascade delete for recording re…
murtaza-nasir Feb 6, 2026
a0cd18f
Add opt-in chunking for ASR endpoints and simplify About page transcr…
murtaza-nasir Feb 6, 2026
024fc54
Optimize chunking conversion and remap speakers to unique IDs across …
murtaza-nasir Feb 6, 2026
925fc35
Pass user language preference to account template
murtaza-nasir Feb 6, 2026
dc01581
Add customizable export templates with localized labels
murtaza-nasir Feb 6, 2026
6a00e80
Bump version to 0.8.7
murtaza-nasir Feb 6, 2026
8997077
Add export template selection for tags and folders
murtaza-nasir Feb 6, 2026
2bf9b54
Fix user default transcription language not being applied on upload
murtaza-nasir Feb 6, 2026
7c9e6a5
Bump version to 0.8.7.1
murtaza-nasir Feb 6, 2026
46ec450
Fix recording options lost on upload, full PostgreSQL migration compa…
murtaza-nasir Feb 6, 2026
c77993c
Replace recording view layout with accordion for notes and settings s…
murtaza-nasir Feb 6, 2026
13cb728
Bump version to 0.8.7.2
murtaza-nasir Feb 6, 2026
076d23e
fix timeout
murtaza-nasir Feb 9, 2026
17fbf81
Add lightweight Docker image without PyTorch and improve text search …
murtaza-nasir Feb 9, 2026
128cc12
Multi-stage Dockerfile with static ffmpeg for smaller images (4.4GB →…
murtaza-nasir Feb 9, 2026
aafc52c
Bump version to 0.8.8-alpha, document lightweight image in README and…
murtaza-nasir Feb 9, 2026
359af02
Free disk space in CI before Docker builds to prevent runner out-of-s…
murtaza-nasir Feb 9, 2026
340f676
Pin scipy<1.15 for sklearn compatibility, split CI into parallel jobs
murtaza-nasir Feb 9, 2026
9e89b38
Fix scipy/sklearn incompatibility, split CI into parallel jobs, bump …
murtaza-nasir Feb 9, 2026
e6a86d0
Fix double-quoted SQL string defaults breaking PostgreSQL, add pre-co…
murtaza-nasir Feb 10, 2026
4988cad
Add PostgreSQL CI integration test, fix export template i18n, fix dro…
murtaza-nasir Feb 10, 2026
fa5e2a4
Fix incognito recording not displaying by awaiting discardRecording()
murtaza-nasir Feb 10, 2026
741e689
Send language parameter regardless of connector diarization support
murtaza-nasir Feb 10, 2026
51f9889
Gate Docker publish on PostgreSQL migration tests passing
murtaza-nasir Feb 10, 2026
da5aef5
Fix CLA workflow triggering on non-PR events
murtaza-nasir Feb 10, 2026
2e35eca
Fix clean_llm_response being too agressiv
ItsMly Feb 22, 2026
af4229c
Fix CLA workflow permissions, update README to reflect implicit CLA a…
murtaza-nasir Feb 23, 2026
5bd2eca
Merge pull request #232 from ItsMly/master
murtaza-nasir Feb 23, 2026
3db8ad0
Add speaker identification enhancements: split button, apply suggeste…
murtaza-nasir Feb 23, 2026
87bd56e
Add speaker API endpoints, extract shared identification service, fix…
murtaza-nasir Feb 23, 2026
b23a304
Fix bulk delete cascade, file monitor stability cap, speaker snippet …
murtaza-nasir Feb 23, 2026
5a9fd6b
Fix ASR_DIARIZE=false being ignored by connector pipeline
murtaza-nasir Feb 23, 2026
0504a94
Localize all speaker composable toasts, fix Safari iOS recording view…
murtaza-nasir Feb 23, 2026
554a301
Add missing translations for folders, API tokens, recording recovery,…
murtaza-nasir Feb 23, 2026
9dac7db
Add parallel uploads with concurrency limit and SHA-256 duplicate det…
murtaza-nasir Feb 23, 2026
7d0ff6a
Add volume slider popups and mute visual indicators to all audio players
murtaza-nasir Feb 23, 2026
c3b307b
Add server-side duplicate detection indicators with clickable copies …
murtaza-nasir Feb 23, 2026
a621338
Add video retention, configurable concurrent uploads, and v0.8.11-alp…
murtaza-nasir Feb 24, 2026
ff191ad
Add collapsible video toggle as inline icon button in player controls
murtaza-nasir Feb 24, 2026
9630a53
Document DELETE_ORPHANED_SPEAKERS and update speaker cleanup docs
murtaza-nasir Feb 24, 2026
e50be2c
Fix duplicate Docker builds on release and CLA workflow ghost runs
murtaza-nasir Feb 24, 2026
ffff83b
Add video playback screenshot to README, features, and screenshots ga…
murtaza-nasir Feb 24, 2026
587528d
Fix MAX_CONTENT_LENGTH not updating when max file size setting changes
murtaza-nasir Feb 25, 2026
4812dc7
Add name filter to Speakers Management page
murtaza-nasir Feb 25, 2026
a09f906
Add auto-scroll follow mode to shared transcript page and fix hardcod…
murtaza-nasir Feb 25, 2026
e0531cf
Bump version to v0.8.12-alpha
murtaza-nasir Feb 25, 2026
4af1e4a
Bump version to v0.8.13-alpha
murtaza-nasir Feb 25, 2026
4c31411
Fix upload queue blocking when adding files while others are processing
murtaza-nasir Feb 27, 2026
a0c860a
Keep chat textarea enabled and focused during AI response streaming
murtaza-nasir Feb 28, 2026
54ec941
Fix speaker snippet extraction failing for video files with AAC audio
murtaza-nasir Mar 1, 2026
f098908
Add custom vocabulary (hotwords) and initial prompt for transcription…
murtaza-nasir Mar 1, 2026
2551720
Add upload disclaimer modal, custom banner, and improve admin setting…
murtaza-nasir Mar 1, 2026
0d84e2f
fix upload notification appearance order
murtaza-nasir Mar 1, 2026
205c140
Add fullscreen video mode with auto-hiding controls, subtitles, and k…
murtaza-nasir Mar 1, 2026
e4ff4e9
Add VIDEO_PASSTHROUGH_ASR option to send raw video files directly to …
murtaza-nasir Mar 1, 2026
327a9e2
Localize all recent feature strings across templates, JS composables,…
murtaza-nasir Mar 1, 2026
dd7d7bc
Bump version to v0.8.14-alpha
murtaza-nasir Mar 1, 2026
7fdd184
Fix user deletion failing with IntegrityError on NOT NULL foreign key…
murtaza-nasir Mar 2, 2026
17ceb11
Add tag-driven auto-process watch folders with API trigger endpoint (…
murtaza-nasir Mar 5, 2026
401b37d
Add configurable LLM timeout and retry settings for local model support
murtaza-nasir Mar 5, 2026
fe167cf
Add Mistral/Voxtral transcription connector and admin default hotword…
murtaza-nasir Mar 18, 2026
224848f
Fix chat API endpoint returning non-serializable ChatCompletion objec…
murtaza-nasir Mar 18, 2026
80e6a25
Fix inquire mode crash on Azure when streaming chunks have empty choi…
murtaza-nasir Mar 18, 2026
0b03200
Apply user's default transcription language to upload and reprocess f…
murtaza-nasir Mar 18, 2026
6852419
Add tests for Mistral connector and recent bugfixes, fix incorrect co…
murtaza-nasir Mar 18, 2026
e3ff223
Support optional title and meeting_date fields in upload API
murtaza-nasir Mar 18, 2026
2d71bb6
Add regenerate title button and endpoint, fix misleading reprocess su…
murtaza-nasir Mar 18, 2026
efa22db
Add VibeVoice ASR transcription connector with diarization support
murtaza-nasir Mar 18, 2026
77b0519
Add documentation for Mistral and VibeVoice transcription connectors
murtaza-nasir Mar 18, 2026
e5a2ab9
Fix duration-based chunking ignoring connector limits due to hardcode…
murtaza-nasir Mar 18, 2026
f4fbf17
Bump version to 0.8.15-alpha, add locale support for new UI strings
murtaza-nasir Mar 18, 2026
2b3ade6
Fix JSON parser greedy extraction and newline handling, update video …
murtaza-nasir Mar 18, 2026
8131443
Fix broken HTML tags and locale key paths in header templates
murtaza-nasir Mar 18, 2026
5356144
Update VERSION file to 0.8.15-alpha
murtaza-nasir Mar 18, 2026
7199bf0
Fix docs list indentation from 3-space to 4-space for MkDocs rendering
murtaza-nasir Mar 19, 2026
ecb96ac
Bump python-dotenv from 1.0.0 to 1.2.2
dependabot[bot] Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
63 changes: 63 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Git
.git
.gitignore

# Docker
.dockerignore
Dockerfile
docker-compose*.yml

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
venv/
.venv/

# Data directories (mounted as volumes)
data/
uploads/
instance/
exports/
auto-process/

# Non-runtime directories
temp/
docs/
site/
plan/
unraid/
tests/
.claude/
.migrate/
.github/

# IDE and editor files
.idea/
.vscode/
*.swp
*.swo

# Logs and misc
*.log
*.md
!requirements*.txt
LICENSE
CLAUDE.md
21 changes: 0 additions & 21 deletions .env.example

This file was deleted.

29 changes: 29 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Ensure shell scripts always use LF line endings, even on Windows
*.sh text eol=lf

# Ensure Python files use LF line endings
*.py text eol=lf

# Docker files should use LF
Dockerfile text eol=lf
docker-compose*.yml text eol=lf
.dockerignore text eol=lf

# Config files should use LF
*.example text eol=lf
*.conf text eol=lf
*.config text eol=lf

# Documentation uses LF
*.md text eol=lf

# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.ico binary
*.gif binary
*.webp binary
*.db binary
*.pyc binary

200 changes: 200 additions & 0 deletions .github/CLA-SETUP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# CLA Assistant Setup Instructions

This document explains how to set up automated CLA checking for Speakr.

## What We're Using

**CLA Assistant** - A free, open-source GitHub Action that automatically:
- Comments on PRs asking contributors to sign the CLA
- Tracks who has signed
- Blocks PR merging until CLA is signed
- Stores signatures in a JSON file

## Setup Steps

### 1. Create a Personal Access Token (PAT)

The CLA Assistant needs a GitHub Personal Access Token to create commits for storing signatures.

1. Go to GitHub Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
- Or visit: https://github.com/settings/tokens

2. Click "Generate new token" → "Generate new token (classic)"

3. Give it a descriptive name: `Speakr CLA Assistant`

4. Set expiration: `No expiration` (or your preferred duration)

5. Select scopes:
- ✅ `repo` (Full control of private repositories)
- ✅ `workflow` (Update GitHub Action workflows)

6. Click "Generate token"

7. **IMPORTANT**: Copy the token immediately (you won't see it again!)

### 2. Add Token to Repository Secrets

1. Go to your repository: https://github.com/murtaza-nasir/speakr

2. Navigate to: Settings → Secrets and variables → Actions

3. Click "New repository secret"

4. Name: `PERSONAL_ACCESS_TOKEN`

5. Value: Paste the token you copied in step 1

6. Click "Add secret"

### 3. Commit the CLA Files

The files have been created locally. Commit them:

```bash
git add CLA.md CONTRIBUTING.md .github/workflows/cla.yml .github/CLA-SETUP.md
git commit -m "Add Contributor License Agreement and automated CLA checking"
git push
```

### 4. Create the Signatures Branch

The CLA Assistant will store signatures in a separate branch:

```bash
# Create and push the signatures branch
git checkout -b cla-signatures
git push -u origin cla-signatures
git checkout master # or main
```

### 5. Update README.md (Optional but Recommended)

Add a badge to show CLA status. Add this near the top of README.md:

```markdown
[![CLA assistant](https://cla-assistant.io/readme/badge/murtaza-nasir/speakr)](https://cla-assistant.io/murtaza-nasir/speakr)
```

Add a link in the Contributing section:

```markdown
## Contributing

We welcome contributions! Please read our [Contributing Guide](CONTRIBUTING.md) to learn about our CLA process and development workflow.
```

### 6. Test the Setup

1. Create a test PR from a different account or ask someone to create one

2. The CLA bot should automatically comment asking for signature

3. They sign by commenting: `I have read the CLA Document and I hereby sign the CLA`

4. The bot updates the PR with a success message

## How It Works

### For Contributors

1. They open a PR
2. Bot comments with CLA instructions
3. They read [CLA.md](../CLA.md)
4. They comment: `I have read the CLA Document and I hereby sign the CLA`
5. Bot records signature in `.github/signatures/cla.json` on `cla-signatures` branch
6. Bot marks PR as CLA-signed ✅
7. Future PRs from same user are auto-approved

### For Maintainers

- You'll see CLA status checks on PRs
- Signatures are stored in `.github/signatures/cla.json`
- You can manually check signatures anytime
- Merging is only possible after CLA is signed

## Viewing Signatures

All signatures are stored in:
```
https://github.com/murtaza-nasir/speakr/blob/cla-signatures/.github/signatures/cla.json
```

Format:
```json
{
"signedContributors": [
{
"name": "username",
"id": 12345,
"comment_id": 67890,
"created_at": "2025-01-18T12:34:56Z",
"repoId": 123456789,
"pullRequestNo": 42
}
]
}
```

## Troubleshooting

### Bot Not Commenting on PRs

- Check that PERSONAL_ACCESS_TOKEN secret is set
- Verify token has correct permissions
- Check GitHub Actions are enabled for repo
- Look at Actions tab for error logs

### "Branch 'cla-signatures' not found"

```bash
git checkout -b cla-signatures
git push -u origin cla-signatures
git checkout master
```

### Need to Reset Signatures

To remove all signatures (use carefully!):
```bash
git checkout cla-signatures
rm .github/signatures/cla.json
git commit -m "Reset CLA signatures"
git push
```

### Want Someone to Re-sign

Delete their entry from `.github/signatures/cla.json` and commit:
```bash
git checkout cla-signatures
# Edit .github/signatures/cla.json to remove the user
git add .github/signatures/cla.json
git commit -m "Remove CLA signature for username"
git push
git checkout master
```

## Customization

You can customize the CLA bot messages by editing `.github/workflows/cla.yml`:

- `custom-notsigned-prcomment` - Message shown to unsigned contributors
- `custom-pr-sign-comment` - Message after signing
- `custom-allsigned-prcomment` - Message when all have signed
- `allowlist` - Users who don't need to sign (bots, etc.)

## Alternative: Lighter Weight DCO

If you want something simpler, consider using **Developer Certificate of Origin (DCO)** instead:
- Contributors add `Signed-off-by: Name <email>` to commits
- No separate signature required
- Less formal but still legally binding
- Used by Linux kernel and many projects

Let me know if you'd prefer DCO instead!

## Support

- CLA Assistant Docs: https://github.com/contributor-assistant/github-action
- Issues with setup? Open an issue in this repo
39 changes: 39 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: "CLA Reminder"
on:
pull_request_target:
types: [opened]

permissions:
pull-requests: write

jobs:
cla-reminder:
if: github.event_name == 'pull_request_target'
runs-on: ubuntu-latest
steps:
- name: "Post CLA Reminder"
uses: actions/github-script@v7
with:
script: |
const prNumber = context.payload.pull_request?.number;
if (!prNumber) {
console.log('No PR number found, skipping');
return;
}
const body = `Thank you for your contribution!

By submitting this pull request, you agree to the terms of our [Contributor License Agreement (CLA)](https://github.com/${context.repo.owner}/${context.repo.repo}/blob/master/CLA.md).

**Key points:**
- You retain copyright ownership of your contribution
- You grant us permission to use your contribution under our dual-license model (AGPLv3 and Commercial)
- This allows us to include your contribution in both the open source and commercial versions of Speakr

If you have any questions about the CLA, please let us know!`.replace(/^ {12}/gm, '');

await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: body
});
Loading