Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
621 commits
Select commit Hold shift + click to select a range
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
1ad0693
update: including Portuguese Brazilian translation
lhpereira Apr 20, 2026
6a93b8e
update: include Portuguese Brazilian in another translations
lhpereira Apr 20, 2026
e94eb55
update: including missing itens pt-BT translation
lhpereira Apr 20, 2026
90da7f4
update: change file name json translation
lhpereira Apr 20, 2026
b5034ed
update: missing items pt-BR translation
lhpereira Apr 20, 2026
358c5c6
Fix title generation Unicode escape leak by formatting transcription …
murtaza-nasir May 2, 2026
3992c05
Apply tag/folder/user default hotwords and initial_prompt on transcri…
murtaza-nasir May 2, 2026
e747104
Normalize transcription language codes from display names and locale …
murtaza-nasir May 2, 2026
f990251
Expose audio_duration, durations, folder, events, and deletion_exempt…
murtaza-nasir May 2, 2026
5198d09
Make embedding model configurable via EMBEDDING_MODEL env var, warn o…
murtaza-nasir May 2, 2026
2755e6d
Add MISTRAL_ENABLE_CHUNKING for app-side chunking of long Voxtral rec…
murtaza-nasir May 2, 2026
0bdd5fa
Add per-upload, per-tag, per-folder transcription model selection via…
murtaza-nasir May 2, 2026
64537fb
Document nginx upload settings, Gemini, EMBEDDING_MODEL, Mistral chun…
murtaza-nasir May 2, 2026
8fa2163
Bump version to v0.8.16-alpha and update changelog
murtaza-nasir May 2, 2026
29296f4
Always log resolved LLM timeout config and surface elapsed time on AP…
murtaza-nasir May 2, 2026
821f76c
Add OpenAI-compatible API mode for embeddings via EMBEDDING_BASE_URL
murtaza-nasir May 2, 2026
63312d7
Document EMBEDDING_BASE_URL API mode in inquire-mode, vector-store, t…
murtaza-nasir May 2, 2026
c3a8756
Treat legacy embedding_model_name as local::<name> on upgrade to avoi…
murtaza-nasir May 2, 2026
adcab42
Acknowledge API-mode embeddings in Inquire startup banner and lite-im…
murtaza-nasir May 2, 2026
f9784ce
Track embedding API token usage and cost; surface in admin Vector Sto…
murtaza-nasir May 2, 2026
6ac713e
Add per-operation breakdown to admin token-stats and surface in Syste…
murtaza-nasir May 2, 2026
07523d8
Split LLM and embedding token usage into separate cards and charts on…
murtaza-nasir May 2, 2026
109ff9f
Clean up synthetic users and recordings after every test run to keep …
murtaza-nasir May 2, 2026
69b430d
Log resolved max_tokens per LLM call and promote title/event budgets …
murtaza-nasir May 2, 2026
61bb1d7
Fix Vector Store recordings-to-process message: use t() params API in…
murtaza-nasir May 2, 2026
b26306b
Forward request.model as ?model= query param on asr_endpoint connecto…
murtaza-nasir May 2, 2026
7239e26
Forward transcription_model and hotwords/initial_prompt through api/v…
murtaza-nasir May 2, 2026
a1f0bbf
Document that TRANSCRIPTION_MODELS_AVAILABLE applies only to the acti…
murtaza-nasir May 2, 2026
83bada5
Add admin-managed transcription model list with /v1/models discovery …
murtaza-nasir May 2, 2026
2e7d35e
Capture upstream response body in asr_endpoint errors so technical de…
murtaza-nasir May 3, 2026
70b02ef
Gate hotwords, initial prompt, and speaker count UI on per-connector …
murtaza-nasir May 3, 2026
33b8f44
Declare connectorSupportsHotwords and connectorSupportsInitialPrompt …
murtaza-nasir May 3, 2026
ca92dde
Remove unused static/js/modules/state/ orphan; live state lives inlin…
murtaza-nasir May 3, 2026
ee819f2
Document audio_duration, durations, hotwords, transcription_model, an…
murtaza-nasir May 3, 2026
a4d2955
Accept whisper-1 as a per-request override on the openai_transcribe c…
murtaza-nasir May 3, 2026
63a7cee
Hide the transcription model dropdown when only one model is visible …
murtaza-nasir May 3, 2026
e7ad305
Persist default_transcription_model on tag and folder create and upda…
murtaza-nasir May 3, 2026
d78d8b1
Flag stale default_transcription_model on tag and folder edit forms w…
murtaza-nasir May 3, 2026
e6fc8d8
Add v1 endpoints for folder CRUD and transcription connector discovery
murtaza-nasir May 3, 2026
5b0ffa1
Add show_timestamps_simple_view boolean column to user table
murtaza-nasir May 3, 2026
f7cf482
Add editor_autosave boolean column to user table
murtaza-nasir May 3, 2026
8d586b0
Add Preferences tab to account settings and move language preferences…
murtaza-nasir May 3, 2026
ee42472
Render compact mm:ss timestamps in simple transcript view when user o…
murtaza-nasir May 3, 2026
3597249
Lay out Preferences tab in two columns and switch output language to …
murtaza-nasir May 3, 2026
53352db
Add scroll memory, save-without-closing, Ctrl+S, and double-click-to-…
murtaza-nasir May 3, 2026
903742f
Auto-save ASR editor edits 2s after the last keystroke when the user …
murtaza-nasir May 3, 2026
64df545
Hoist formatTimestamp declaration above state object so the reference…
murtaza-nasir May 3, 2026
01ee0df
Include CSRF token in Preferences form so submissions are accepted
murtaza-nasir May 3, 2026
41576b0
Render simple-view timestamps as a two-part pill that pairs the time …
murtaza-nasir May 3, 2026
dbba2f7
Show Start label on the leading transcript pill and fix scroll-to-seg…
murtaza-nasir May 3, 2026
8f12d93
Briefly highlight the ASR editor row jumped to from a simple-view dou…
murtaza-nasir May 3, 2026
5734abc
Apply ASR editor row highlight to table cells instead of the row so i…
murtaza-nasir May 3, 2026
95e1f80
Fix double Saved toast on manual save and force per-cell ASR row high…
murtaza-nasir May 3, 2026
6d167f6
Render ASR editor row highlight as a pseudo-element overlay so it sho…
murtaza-nasir May 3, 2026
f5211fd
Highlight ASR editor row by tinting inputs and textareas directly so …
murtaza-nasir May 3, 2026
4b90295
Let users append or replace the summarization prompt at generate-summ…
murtaza-nasir May 3, 2026
783543d
Add append vs replace mode for tag and custom prompts in the reproces…
murtaza-nasir May 3, 2026
0c1dafa
Add prompt_variables JSON column to recording for templated summary p…
murtaza-nasir May 3, 2026
957839b
Substitute mustache-style variables in resolved summary prompts and a…
murtaza-nasir May 3, 2026
2f2bf3c
Surface prompt template variables on the upload form when selected ta…
murtaza-nasir May 3, 2026
f83344e
Document prompt template variables in user-guide and v1 OpenAPI spec
murtaza-nasir May 3, 2026
28884fa
Run prompt variable substitution after the append step so appended te…
murtaza-nasir May 3, 2026
7f51bca
Warn when prompt template variables are placed in sources that the up…
murtaza-nasir May 3, 2026
9b3e5a6
Surface user and admin default prompt variables on the upload form by…
murtaza-nasir May 3, 2026
0f81d9f
Allow editing stored prompt-variable values from the reprocess summar…
murtaza-nasir May 3, 2026
c3a9e22
Add Vitest setup with prompt-variable helper unit tests
murtaza-nasir May 3, 2026
cd7e849
Escape Jinja template braces in tag-edit warning copy and JS comment
murtaza-nasir May 3, 2026
377791c
Improve admin prompt preview with placeholder chips and full system c…
murtaza-nasir May 3, 2026
2b4fa35
Add live full LLM prompt structure preview to the account page summar…
murtaza-nasir May 3, 2026
90a9b19
Wrap account-page prompt preview helper in raw block to stop Jinja ea…
murtaza-nasir May 3, 2026
2adb67b
Stop the raw-block comment from acting as a real Jinja tag in the acc…
murtaza-nasir May 3, 2026
90cbf2b
Surface 8000-char per-value cap on prompt variable inputs with maxlen…
murtaza-nasir May 3, 2026
e4670c5
Move prompt-variables hint into a click-to-expand info popover next t…
murtaza-nasir May 3, 2026
bd5d29f
Persist recording-list sort choice across sessions in localStorage
murtaza-nasir May 3, 2026
8460eb1
Document v0.8.16-alpha features across release notes, user guide, and…
murtaza-nasir May 3, 2026
2e03560
Localize prompt variables, append/replace mode, customize-summary mod…
murtaza-nasir May 3, 2026
7886f2f
Reach full locale parity by pruning stale zh keys, backfilling prefer…
murtaza-nasir May 3, 2026
e846bf8
Merge PR #271: Add Portuguese Brazilian translation (lhpereira)
murtaza-nasir May 3, 2026
e1b67a8
Wire test_users cleanup into pytest teardown_module so it runs under …
murtaza-nasir May 3, 2026
2760d3b
Bump GitHub Actions to Node 24 versions to clear deprecation warnings
murtaza-nasir May 3, 2026
770c99d
Make reprocess summary modal's variables panel and append/replace tog…
murtaza-nasir May 3, 2026
dc38f24
Fix reverse-proxy example: make Connection: upgrade conditional via m…
murtaza-nasir May 3, 2026
ddf4df1
Use simpler $http_connection pattern for proxy upgrade header forwarding
murtaza-nasir May 3, 2026
dbd5ed4
Correct NPM default client_max_body_size to 2000m and add custom-over…
murtaza-nasir May 4, 2026
04de658
Bump version to v0.8.17-alpha and add bug-fix release entry
murtaza-nasir May 4, 2026
0fc1123
Trim README release-notes history to last two releases; link to GitHu…
murtaza-nasir May 4, 2026
7dd3f9d
Add folder filter on list, folder_id on single and batch PATCH for v1…
murtaza-nasir May 4, 2026
a0e650a
Bump version to v0.8.18-alpha and add release entry for v1 folder ope…
murtaza-nasir May 4, 2026
8a0c6f9
Re-embed all now also picks up recordings with stale chunks regardles…
murtaza-nasir May 4, 2026
8cf4a1f
Add retry layers around embedding API calls and re-embed pipeline
murtaza-nasir May 4, 2026
48e25bf
Vectorise chunk similarity search: single batched cosine instead of o…
murtaza-nasir May 4, 2026
27bdda1
Bump version to v0.8.19-alpha and add inquire-perf + retry release entry
murtaza-nasir May 4, 2026
68185dd
Bump README version badge to v0.8.19-alpha
murtaza-nasir May 4, 2026
cc74a44
Fix open-redirect class in is_safe_url by validating raw next param a…
murtaza-nasir May 7, 2026
61ae2bc
Isolate transcription_model test helper from admin-saved SystemSettin…
murtaza-nasir May 7, 2026
e290a79
Bump version to v0.8.20-alpha for open-redirect security patch (CWE-601)
murtaza-nasir May 9, 2026
837aa8a
Bump scikit-learn from 1.3.0 to 1.5.0
dependabot[bot] May 9, 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@v8
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