Commit Graph

436 Commits

Author SHA1 Message Date
fc38345d65 fix: separate browsing page into different components, limit to 10 by default (#498)
* feat: limit the amount of transcripts to 10 by default

* feat: separate page into different component, greatly improving the
loading and reactivity

* fix: current implementation immediately invokes the onDelete and
onReprocess

From pr-agent-monadical: Suggestion: The current implementation
immediately invokes the onDelete and onReprocess functions when the
component renders, rather than when the menu items are clicked. This can
cause unexpected behavior and potential memory leaks. Use callback
functions that only execute when the menu items are actually clicked.
[possible issue, importance: 9]
2025-07-17 20:18:00 -06:00
033bd4bc48 feat: improve transcript listing with room_id (#496)
Added a new field in transcript for room_id, and set room_id/meeting_id
in a transcript now. Use this field to list the transcripts. URL is now
very fast.
2025-07-17 15:43:36 -06:00
c1e10f4dab fix: process meetings with utc (#493) 2025-07-16 21:39:16 -06:00
2516d4085f fix: postgres database not connecting in worker (#492)
stacks-reflector-worker-1  | [2025-07-17 02:18:21,234:
ERROR/ForkPoolWorker-2] Task
reflector.worker.process.process_meetings[8e763caf-be8a-4272-8793-7b918e4e3922]
raised unexpected: AssertionError('DatabaseBackend is not running')
stacks-reflector-worker-1  | Traceback (most recent call last):
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/celery/app/trace.py", line 453,
in trace_task
stacks-reflector-worker-1  |     R = retval = fun(*args, **kwargs)
stacks-reflector-worker-1  |                  ^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/celery/app/trace.py", line 736,
in __protected_call__
stacks-reflector-worker-1  |     return self.run(*args, **kwargs)
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/app/reflector/pipelines/main_live_pipeline.py", line 81, in wrapper
stacks-reflector-worker-1  |     return asyncio.run(coro)
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run
stacks-reflector-worker-1  |     return runner.run(main)
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
stacks-reflector-worker-1  |     return
self._loop.run_until_complete(task)
stacks-reflector-worker-1  |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in
run_until_complete
stacks-reflector-worker-1  |     return future.result()
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File "/app/reflector/worker/process.py",
line 139, in process_meetings
stacks-reflector-worker-1  |     meetings = await
meetings_controller.get_all_active()
stacks-reflector-worker-1  |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File "/app/reflector/db/meetings.py",
line 121, in get_all_active
stacks-reflector-worker-1  |     return await database.fetch_all(query)
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/databases/core.py", line 173,
in fetch_all
stacks-reflector-worker-1  |     async with self.connection() as
connection:
stacks-reflector-worker-1  |                ^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/databases/core.py", line 267,
in __aenter__
stacks-reflector-worker-1  |     raise e
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/databases/core.py", line 264,
in __aenter__
stacks-reflector-worker-1  |     await self._connection.acquire()
stacks-reflector-worker-1  |   File
"/app/.venv/lib/python3.12/site-packages/databases/backends/postgres.py",
line 169, in acquire
stacks-reflector-worker-1  |     assert self._database._pool is not
None, "DatabaseBackend is not running"
stacks-reflector-worker-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stacks-reflector-worker-1  | AssertionError: DatabaseBackend is not
running
2025-07-16 21:09:51 -06:00
4d21fd1754 refactor: migration from sqlite to postgres with migration script (#483) 2025-07-16 19:38:33 -06:00
b05fc9c36a fix: rename averaged_perceptron_tagger to averaged_perceptron_tagger_eng (#491) 2025-07-16 19:13:20 -06:00
0e2ae5fca8 fix: punkt -> punkt_tab + pre-download nltk packages to prevent runtime not working (#489) 2025-07-16 18:58:57 -06:00
86ce68651f build: move to uv (#488)
* build: move to uv

* build: add packages declaration

* build: move to python 3.12, as sentencespiece does not work on 3.13

* ci: remove pre-commit check, will be done in another branch.

* ci: fix name checkout

* ci: update lock and dockerfile

* test: remove event_loop, not needed in python 3.12

* test: updated test due to av returning AudioFrame with 4096 samples instead of 1024

* build: prevent using fastapi cli, because there is no way to set default port

I don't want to pass --port 1250 every time, so back on previous
approach. I deactivated auto-reload for production.

* ci: remove main.py

* test: fix quirck with httpx
2025-07-16 18:10:11 -06:00
aea8773057 chore: remove old non-working code (#484) 2025-07-16 13:47:42 +00:00
baf2822b81 fix: browse page timestamps show UTC instead of user local time (#482)
* fix: browse page timestamps show UTC instead of user local time

Closes #474

* fix: tests
2025-07-15 21:17:53 -06:00
f3ae187274 fix: waveform can generate NaN in json database (#481)
* refactor: fixes transcript duration type, NaN in waveform, and prepare for postgres migration

* fix: ensure we don't have NaN in waveform

* fix: missing assertionerror

Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>

* fix: potential empty array

---------

Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>
2025-07-15 20:46:19 -06:00
9deb717e5b refactor: improve transcript list performance (#480)
* refactor: improve transcript list performance

* fix: sync openapi

* fix: frontend types

* fix: remove drop table _alembic_tmp_meeting

* fix: remove create table too

* fix: remove uq_recording_object_key
2025-07-15 15:10:05 -06:00
3d370336cc fix: alembic migrations (#470)
* fix: alembic migrations

This commit fixes all the migrations that was half-backed, due to auto
creation in the db init before. The process was to checkout at the
commit where the migration was created, and use --autogenerate to
regenerate at the state of the migration. 4 migrations was fixed.

It also includes a workflow to ensure migration can applies correctly.

* fix: db migration check

* fix: nullable on meeting_consent

* fix: try fixing tests
2025-06-27 12:03:10 -06:00
9f70f76557 fix: prevent auto creation of database (#469) 2025-06-26 11:52:20 -06:00
542a277001 fix: re-add missing migration (#468) 2025-06-26 11:09:58 -06:00
Igor Loskutov
8f0bd31c75 format 2025-06-19 13:00:05 -04:00
Igor Loskutov
da901dc566 ai review partial fix 2025-06-19 12:51:23 -04:00
Igor Loskutov
351fb54f25 ai review partial fix 2025-06-19 12:49:23 -04:00
Igor Loskutov
92a08653aa only recordings that are *recorded* require consent 2025-06-19 10:54:27 -04:00
Igor Loskutov
6cb46dc64f format 2025-06-19 10:13:57 -04:00
Igor Loskutov
49f4b65f47 lint 2025-06-18 19:47:08 -04:00
Igor Loskutov
9c20e8b9f6 self-review 2025-06-18 17:32:13 -04:00
Igor Loskutov
c23e0e07ef update audio-deleted flow 2025-06-18 15:43:50 -04:00
Igor Loskutov
fdf42cf60b slop removal 2025-06-17 19:48:46 -04:00
Igor Loskutov
0c91f5dd59 slop review WIP 2025-06-17 19:26:11 -04:00
Igor Loskutov
91c7c8b83a meeting consent vibe 2025-06-17 16:30:23 -04:00
Igor Loskutov
7bb2962f94 consent preparation 2025-06-17 12:18:41 -04:00
cfb1b2f9bc Upgrade modal apps 2025-03-25 11:09:01 +01:00
e6ac972d1e Fix reprocessing 2025-03-11 15:32:53 +01:00
f43045b41c Add recordings 2025-03-11 15:12:25 +01:00
a82cb4695e Process recordings without transcript 2025-03-03 15:48:42 +01:00
ac81617090 Allow shared transcripts deletion 2025-03-03 15:25:00 +01:00
78a522ac7c Fix reprocessing 2025-03-03 15:15:17 +01:00
2b5f1275a9 Reprocess failed recordings 2025-02-28 14:41:43 +01:00
7f53398926 Mount server dir 2025-02-28 13:00:22 +01:00
670852a8b2 Replace requests with httpx 2025-02-10 17:29:53 +01:00
f832d4a038 Fix room not found error 2025-02-10 16:38:00 +01:00
326a4688d8 Shared rooms and transcripts 2025-02-10 14:59:18 +01:00
8b60c56f41 Remove is active check 2025-02-05 13:00:30 +01:00
4fd043ecfb Upload logo 2025-02-03 16:11:01 +01:00
0477c8ec44 Fix linting 2025-01-28 13:02:49 +01:00
dd021e9e71 Deactivate meeting when session ends 2025-01-28 12:41:23 +01:00
43562391b7 Fix duration 2025-01-24 14:47:43 +01:00
983c444e35 Remove unused var 2025-01-23 17:40:32 +01:00
87bcf9eb8d Post new message if previous was deleted 2025-01-23 17:37:47 +01:00
4d1a22043d Update zulip message on reprocess 2025-01-23 17:25:07 +01:00
14d028e8c4 Remove waveform and topics on reprocessing 2025-01-23 16:25:35 +01:00
8d9aaeab36 Update compose to run reflector locally 2025-01-23 15:30:56 +01:00
b601f18d2d Fix summary generation 2025-01-21 16:53:09 +01:00
753a2615db Fix transcript reprocessing 2025-01-21 16:52:51 +01:00