Commit graph

6627 commits

Author SHA1 Message Date
DESKTOP-RTLN3BA\$punk
89cc3b37ee fix(db): prevent boot-time index DDL from hanging FastAPI startup
A single abandoned "idle in transaction" session held locks on the
documents table, which blocked the non-concurrent CREATE INDEX (hnsw)
run inside the FastAPI lifespan. Each API restart queued another
CREATE INDEX behind an advisory lock, leaving the server stuck at
"Waiting for application startup." indefinitely and freezing ingestion
writes.

Changes:
- setup_indexes(): build every index with CREATE INDEX CONCURRENTLY
  (non-blocking ShareUpdateExclusiveLock) under a per-session
  lock_timeout, and make each statement non-fatal so a contended/slow
  build is retried next boot instead of wedging startup. Drop leftover
  invalid indexes before rebuilding.
- create_db_and_tables(): apply lock_timeout to extension/create_all
  DDL and gate the whole bootstrap behind DB_BOOTSTRAP_ON_STARTUP.
- engine: set idle_in_transaction_session_timeout (asyncpg) so an
  abandoned transaction is reaped automatically.
- config + .env.example: DB_BOOTSTRAP_ON_STARTUP, DB_DDL_LOCK_TIMEOUT_MS,
  DB_IDLE_IN_TX_TIMEOUT_MS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 16:18:49 -07:00
Thierry CH.
284df841ef
Merge pull request #1501 from CREDO23/feat/podcast-brief-duration-seconds
feat(podcasts): short default brief length with seconds and unit picker
2026-06-16 15:04:07 -07:00
CREDO23
7584312712 style(podcasts): fix ruff issues in podcast spec schema
Remove duplicate typing import and format legacy minute coercion guard.
2026-06-16 23:57:36 +02:00
CREDO23
7a415b61ea test: align QuotaInsufficientError fixtures with balance_micros API
Billable calls now raise quota errors with balance_micros instead of
used_micros/limit_micros; update mocks so CI passes on main.
2026-06-16 23:56:11 +02:00
CREDO23
fd96c930bf test(podcasts): cover seconds duration and legacy minute specs 2026-06-16 23:38:28 +02:00
CREDO23
f997b6464e test(podcasts): update renderer test for second-based duration 2026-06-16 23:38:28 +02:00
CREDO23
cb70b64a70 test(podcasts): update unit fixtures for second-based duration 2026-06-16 23:38:28 +02:00
CREDO23
38991c7db8 test(podcasts): update integration fixtures for second-based duration 2026-06-16 23:38:28 +02:00
CREDO23
bab3f7c0d4 feat(web): add unit dropdown for podcast brief target length 2026-06-16 23:38:28 +02:00
CREDO23
608620d649 feat(web): add seconds-based podcast duration types with legacy support 2026-06-16 23:38:28 +02:00
CREDO23
16d226e5ce refactor(podcasts): plan transcript length from midpoint seconds 2026-06-16 23:38:28 +02:00
CREDO23
116c38feac refactor(podcasts): build DurationTarget from brief seconds config 2026-06-16 23:38:28 +02:00
CREDO23
af08e2f033 refactor(podcasts): propose brief with min_seconds and max_seconds 2026-06-16 23:38:28 +02:00
CREDO23
d0ed5b94d9 refactor(podcasts): use shared second-based brief duration defaults 2026-06-16 23:38:28 +02:00
CREDO23
845653cbac feat(podcasts): pass min_seconds and max_seconds when proposing brief 2026-06-16 23:38:27 +02:00
CREDO23
085442ed9a feat(podcasts): use seconds defaults on create podcast request 2026-06-16 23:38:27 +02:00
CREDO23
32e0d21604 feat(podcasts): store brief duration in seconds with legacy load 2026-06-16 23:38:27 +02:00
CREDO23
9583e8f250 feat(podcasts): add shared duration limit constants 2026-06-16 23:38:27 +02:00
Thierry CH.
683a827300
Merge pull request #1500 from CREDO23/fix/podcast-stream-missing-audio
fix(podcasts): guard stream when audio missing and share object store volume
2026-06-16 11:16:27 -07:00
CREDO23
a7be41d50a fix(docker): share persistent object_store volume in dev 2026-06-16 20:09:08 +02:00
CREDO23
fc045d200d fix(docker): share persistent object_store volume across services 2026-06-16 20:09:08 +02:00
CREDO23
1048d0afc3 test(podcasts): cover public stream missing-object 404 2026-06-16 20:09:08 +02:00
CREDO23
810ded2dde test(podcasts): cover in-flight 409 and missing-object 404 2026-06-16 20:09:08 +02:00
CREDO23
86a8833fb4 test(podcasts): add exists to fake storage backend 2026-06-16 20:09:08 +02:00
CREDO23
1d70af4684 fix(podcasts): guard public stream against missing audio 2026-06-16 20:09:08 +02:00
CREDO23
0c2808640a fix(podcasts): guard stream against missing audio 2026-06-16 20:09:08 +02:00
CREDO23
d2558e546e feat(podcasts): add audio_exists storage helper 2026-06-16 20:09:08 +02:00
Rohan Verma
3e539311a2
Merge pull request #1486 from MODSetter/dev
fix(auto_reload): update task to use a lambda for user_id in async call
2026-06-11 16:51:41 -07:00
DESKTOP-RTLN3BA\$punk
c855be8ccd fix(auto_reload): update task to use a lambda for user_id in async call 2026-06-11 16:51:18 -07:00
Rohan Verma
cb7cb90732
Merge pull request #1485 from MODSetter/dev
feat(migration): evolve podcast lifecycle by detaching from zero_publication
2026-06-11 16:18:54 -07:00
DESKTOP-RTLN3BA\$punk
fed83269d0 Merge commit '6c8c559254' into dev 2026-06-11 16:18:17 -07:00
DESKTOP-RTLN3BA\$punk
cff721aa42 feat(migration): evolve podcast lifecycle by detaching from zero_publication and updating column handling 2026-06-11 16:17:14 -07:00
Rohan Verma
6c8c559254
Merge pull request #1484 from MODSetter/dev
feat(podcasts): rebuild podcast pipeline with lifecycle architecture, zero sync, and unified credit wallet
2026-06-11 16:07:15 -07:00
Rohan Verma
0f73db5aa1
Merge pull request #1483 from MODSetter/dev_mod
feat(version): bumped to 0.0.28
2026-06-11 16:00:26 -07:00
DESKTOP-RTLN3BA\$punk
f166a532bd feat(version): bumped to 0.0.28 2026-06-11 15:59:44 -07:00
DESKTOP-RTLN3BA\$punk
05190da0a9 chore: linting 2026-06-11 15:31:43 -07:00
Rohan Verma
27218304ae
Merge pull request #1482 from CREDO23/improvement-podcast-graph
[Fix] Backend: anchor .gitignore data/ rule that silently excluded module code
2026-06-11 15:26:38 -07:00
CREDO23
7b30a76856 fix(gitignore): anchor data/ rule; track podcast voice catalogs 2026-06-12 00:06:37 +02:00
Rohan Verma
aee0c1a3ac
Merge pull request #1481 from AnishSarkar22/fix/chat-stream-flicker
fix(chat): stabilize active thread rendering and top-anchored scrolling
2026-06-11 14:47:15 -07:00
Anish Sarkar
e4803d4ed3 chore(dependencies): update @assistant-ui/react and @assistant-ui/react-markdown to latest versions, adjust peer dependencies, and modify chat viewport auto-scroll settings 2026-06-12 03:00:48 +05:30
Rohan Verma
8f80900ab0
Merge pull request #1479 from CREDO23/improvement-podcast-graph
[Feat] Podcast: Rework generation into a lifecycle-driven module with multi-language support
2026-06-11 14:23:38 -07:00
CREDO23
41f4a58663 Merge remote-tracking branch 'upstream/dev' into improvement-podcast-graph
# Conflicts:
#	surfsense_backend/app/tasks/celery_tasks/podcast_tasks.py
2026-06-11 23:14:49 +02:00
Anish Sarkar
e7762cda97 feat(chat): enhance thread component with active thread handling and improve message loading logic 2026-06-12 02:42:16 +05:30
Rohan Verma
d27616ad0a
Merge pull request #1480 from MODSetter/dev_mod
feat: unify credits system
2026-06-11 13:32:47 -07:00
DESKTOP-RTLN3BA\$punk
c3695e7837 feat: update auto-reload settings and enhance payment session creation
- Added currency parameter to the Stripe checkout session for auto-reload setup.
- Integrated AutoReloadSettings component into the BuyMorePage for improved user experience.
- Removed deprecated AutoReloadSettings component from user settings directory.
- Updated import paths for AutoReloadSettings in purchases page to reflect new structure.
2026-06-11 13:29:40 -07:00
CREDO23
4dc06fa918 style(audio): breathing room between seek bar and time counters 2026-06-11 12:50:03 +02:00
CREDO23
741aa8d8f7 fix(podcasts): key transcript lines by stable turn position 2026-06-11 12:47:22 +02:00
CREDO23
ca9b157676 fix(podcasts): keep legacy episodes readable and guard regenerate 2026-06-11 12:43:07 +02:00
CREDO23
aa7f14d94f feat(podcasts): add revert-regeneration and surface cancel on the live card 2026-06-11 12:31:42 +02:00
CREDO23
f0fc660d70 feat(podcasts): constrain monologue briefs to a single speaker 2026-06-11 11:56:57 +02:00