360 Commits

Author SHA1 Message Date
0d98a36317 fix(client): reduce unnecessary renders and fetches on hard refresh
Some checks failed
CI / test-python (push) Successful in 4m54s
CI / test-typescript (push) Failing after 57s
CI / test-rust (push) Successful in 1m56s
- Contexts wait for connection before loading to avoid stale cached data
- MeetingsPage skips fetch when URL project ID is invalid
- Workspace isLoading starts as true for proper loading state
- Remove debug logging added during investigation
- Add PROJECTS_FETCH_LIMIT constant to timing.ts
2026-01-26 14:59:50 +00:00
01a8d02d60 fix(client): initialize project loading state to true to prevent race condition
Some checks failed
CI / test-python (push) Successful in 4m53s
CI / test-typescript (push) Failing after 1m8s
CI / test-rust (push) Successful in 1m56s
The Meetings page skips fetching when projectsLoading is false and
activeProject is null. Since isLoading started as false, the initial
render would skip the fetch before projects had a chance to load.

By initializing isLoading to true, the Meetings page waits for the
project context to finish loading before deciding whether to fetch.
2026-01-26 13:50:28 +00:00
f9db9cd8ca fix(client): close delete dialog on successful bulk deletion
Added onSuccess callback to useDeleteMeetings hook and use it in
Meetings.tsx to close dialog, clear selection, and exit selection mode.

Removed flaky useEffect that tried to detect deletion success by
checking if meetings still existed in the list.
2026-01-26 13:40:10 +00:00
2cf4f26a9d fix(tauri): serialize DeleteMeetingsResponse with camelCase for TypeScript
Some checks failed
CI / test-python (push) Successful in 4m53s
CI / test-typescript (push) Failing after 1m32s
CI / test-rust (push) Successful in 3m41s
The Rust struct used snake_case field names (succeeded_ids, deleted_count)
but TypeScript expected camelCase (succeededIds, deletedCount), causing
'result.succeededIds is not iterable' error.

Added #[serde(rename_all = "camelCase")] to match the existing pattern
used by other response types in the codebase.
2026-01-26 13:31:32 +00:00
18be2c5218 catchup
Some checks failed
CI / test-python (push) Successful in 4m6s
CI / test-typescript (push) Failing after 57s
CI / test-rust (push) Successful in 1m35s
Proto Sync / regenerate-stubs (push) Successful in 2m4s
2026-01-26 13:24:46 +00:00
8ed1ec4125 fix(client): add deleteMeetings to mock adapter and Tauri constants
The bulk delete operation failed because:
1. TauriCommands.DELETE_MEETINGS constant was missing
2. Mock adapter didn't implement deleteMeetings method

Added:
- DELETE_MEETINGS: 'delete_meetings' to TauriCommands
- deleteMeetings() implementation to mock adapter with proper
  handling for recording meetings (skipped, not deleted)
2026-01-26 13:19:16 +00:00
d65b8eac03 fix(client): toggle checkbox via wrapper onClick to prevent Link navigation
The issue: Radix UI Checkbox's onCheckedChange doesn't fire when
e.preventDefault() is called in onClick (needed to block parent Link).

Solution: Remove onClick/onCheckedChange from Checkbox, handle toggle
manually in the wrapper div's onClick handler by calling onSelect
directly with the inverted state.
2026-01-26 13:11:28 +00:00
a160652322 fix(client): prevent checkbox click from triggering link navigation 2026-01-26 13:05:16 +00:00
3bc9a16cd1 test(client): add MeetingCard checkbox selection and navigation tests 2026-01-26 12:59:32 +00:00
585b18a3b6 fix(client): allow checkbox click to toggle selection state 2026-01-26 12:40:53 +00:00
cbe91cd9f6 fix(client): hide MeetingCard checkbox when not in selection mode 2026-01-26 12:35:12 +00:00
69cf3e3d08 fix(client): prevent checkbox click from navigating to meeting detail
Use fieldset element to wrap checkbox with proper event handling:
- e.preventDefault() + e.stopPropagation() on both fieldset and Checkbox
- Prevents Link navigation when clicking checkbox
- Uses semantic fieldset element with aria-label for a11y compliance
- No lint suppressions needed
2026-01-26 11:35:07 +00:00
61bb046dae fix(client): fix MeetingCard checkbox layout and resolve TypeScript errors
- Replace absolute-positioned checkbox with flex-based layout in MeetingCard
- Use smooth width transition (w-0 -> w-10) to prevent layout shift
- Fix toast API usage: replace toast.success/error/warning with toast({...})
- Fix Meetings.tsx: remove unsupported options arg from deleteMeetings call
- Add useEffect to handle bulk delete success state
- Fix PlaybackInfo in header tests: add missing is_paused property
2026-01-26 11:26:24 +00:00
9fd838c63e fix(client): add selection mode toggle for bulk delete UX
- Add 'Select' toggle button in filter area
- Checkboxes only visible when selection mode is active
- Hide individual trash buttons during selection mode
- Exit selection mode when: deselecting all, deleting, or changing filters
- Resolves visual conflict between checkbox and card title
- Removes redundancy between checkbox and trash button

The checkbox now appears on-demand via toggle, providing cleaner default UI.
2026-01-26 10:59:27 +00:00
b9eee07135 feat(client): integrate bulk delete in Meetings page
- Add selection state management with Set<string>
- Integrate useDeleteMeetings hook with confirmation dialog
- Implement select/deselect/selectAll handlers
- Render BulkActionToolbar when selections > 0
- Clear selections on filter/pagination changes
- Add ConfirmationDialog for bulk delete confirmation
- Fix missing index.ts for request types
- Fix useToast import path

Completes full bulk delete flow from UI to backend.

Refs: mass-delete-meetings plan task 8
2026-01-26 10:27:47 +00:00
2ac921da1f feat(client): add MeetingCard selection and BulkActionToolbar
- Add DeleteMeetingsResult interface to API types
- Implement deleteMeetings adapter method with cache updates
- Add useDeleteMeetings hook with optimistic updates and rollback
- Add checkbox selection props to MeetingCard component
- Create BulkActionToolbar component with sticky bottom positioning
- Export BulkActionToolbar from meetings index

Enables frontend bulk delete UI with selection and confirmation.

Refs: mass-delete-meetings plan tasks 5-7
2026-01-26 10:17:56 +00:00
8b47daba8b feat(tauri): add delete_meetings bulk delete command
- Add DeleteMeetingsRequest/Response types to core.rs
- Implement delete_meetings method in gRPC client
- Add delete_meetings Tauri command in meeting.rs
- Register command in app handler

Enables frontend to bulk delete meetings via single IPC call.

Refs: mass-delete-meetings plan tasks 3-4
2026-01-26 09:56:35 +00:00
6d4725db1d feat(grpc): add DeleteMeetings bulk delete endpoint
- Add DeleteMeetings RPC to proto schema with request/response messages
- Implement Python backend handler in MeetingMixin
- Extract bulk delete logic to _bulk_delete_ops.py module
- Skip meetings in RECORDING or STOPPING state
- Return aggregated results with succeeded/failed/skipped IDs
- Add comprehensive logging for bulk operations

Refs: mass-delete-meetings plan tasks 1-2
2026-01-26 09:50:00 +00:00
bd48505249 feat(client): add delete meeting from detail page
- Add overflow menu with delete option to Header component
- Integrate delete flow with confirmation dialog in MeetingDetailPage
- Extract delete logic to useDeleteMeeting hook for code organization
- Add comprehensive unit tests for delete functionality
- Guard against deleting active meetings (recording/stopping states)
- Navigate to /meetings on successful deletion
- All quality gates pass (479 lines in index.tsx, under 500 limit)
2026-01-26 08:40:21 +00:00
8222d66eab Merge branches 'master' and 'master' of https://git.baked.rocks/vasceannie/noteflow
All checks were successful
CI / test-python (push) Successful in 3m53s
CI / test-typescript (push) Successful in 1m2s
CI / test-rust (push) Successful in 1m32s
2026-01-26 01:57:11 -05:00
e80c605786 stash
Some checks failed
CI / test-typescript (push) Has been cancelled
CI / test-rust (push) Has been cancelled
CI / test-python (push) Has been cancelled
2026-01-26 06:55:13 +00:00
ea3dc072f3 chore: add .gitattributes file to enforce LF line endings for shell scripts 2026-01-26 01:54:25 -05:00
37369f00d9 ci fix
All checks were successful
CI / test-python (push) Successful in 3m44s
CI / test-typescript (push) Successful in 1m2s
CI / test-rust (push) Successful in 2m34s
2026-01-26 04:42:21 +00:00
b87e420348 refactor: enhance test readability by reformatting with statements and assertion messages, and refine version parsing mock.
Some checks failed
CI / test-python (push) Successful in 5m44s
CI / test-typescript (push) Successful in 1m31s
CI / test-rust (push) Failing after 2m56s
2026-01-26 03:56:37 +00:00
8b0da552e1 test: add include_summary parameter to API request test expectations.
Some checks failed
CI / test-python (push) Failing after 4m33s
CI / test-typescript (push) Successful in 10m54s
CI / test-rust (push) Failing after 4m37s
2026-01-26 02:45:23 +00:00
301482c410 Refactor: Improve CI workflow robustness and test environment variable management, and enable parallel quality test execution.
Some checks failed
CI / test-python (push) Successful in 8m41s
CI / test-typescript (push) Failing after 6m2s
CI / test-rust (push) Failing after 4m28s
2026-01-26 02:04:38 +00:00
0fd4c7f09d refactor: streamline CI workflows by removing Python pip/venv caches, simplifying uv setup, and consolidating formatting checks.
Some checks failed
CI / test-python (push) Failing after 13m4s
CI / test-typescript (push) Failing after 6m21s
CI / test-rust (push) Failing after 6m57s
2026-01-26 00:43:43 +00:00
d8090a98e8 ci/cd fixes
Some checks failed
CI / test-typescript (push) Has been cancelled
CI / test-rust (push) Has been cancelled
CI / test-python (push) Has been cancelled
2026-01-26 00:28:15 +00:00
94d92b814f feat: centralize analytics service test fixtures and correct cache invalidation assertion logic.
Some checks failed
CI / test-python (push) Failing after 22m25s
CI / test-typescript (push) Failing after 5m56s
CI / test-rust (push) Failing after 6m56s
2026-01-25 03:40:19 +00:00
42c8fba642 Merge branch 'master' of https://git.baked.rocks/vasceannie/noteflow
Some checks failed
CI / test-python (push) Failing after 17m27s
CI / test-typescript (push) Failing after 6m9s
CI / test-rust (push) Failing after 7m2s
2026-01-24 21:09:15 -05:00
6df31ec708 feat: add comprehensive performance profiling tests for frontend and backend operations, including round-trip, streaming, and bulk operations. 2026-01-24 21:09:10 -05:00
abe20d6f8c feat: allow including meeting summaries in ListMeetings requests and responses
Some checks failed
CI / test-rust (push) Has been cancelled
CI / test-typescript (push) Has been cancelled
CI / test-python (push) Has been cancelled
Proto Sync / regenerate-stubs (push) Failing after 6m56s
2026-01-25 02:05:30 +00:00
2641a9fc03 optimization
Some checks failed
CI / test-python (push) Failing after 17m22s
CI / test-rust (push) Has been cancelled
CI / test-typescript (push) Has been cancelled
2026-01-25 01:40:14 +00:00
dab973d8aa x
Some checks failed
CI / test-python (push) Failing after 22m26s
CI / test-typescript (push) Successful in 11m4s
CI / test-rust (push) Failing after 7m11s
2026-01-24 17:02:07 -05:00
b11633192a deps
Some checks failed
CI / test-python (push) Failing after 22m14s
CI / test-rust (push) Has been cancelled
CI / test-typescript (push) Has been cancelled
2026-01-24 21:31:58 +00:00
f68101896f ..
Some checks failed
CI / test-python (push) Failing after 17m23s
CI / test-typescript (push) Failing after 5m59s
CI / test-rust (push) Failing after 6m57s
2026-01-24 19:27:58 +00:00
011180b330 x
Some checks failed
CI / test-typescript (push) Has been cancelled
CI / test-rust (push) Has been cancelled
CI / test-python (push) Has been cancelled
2026-01-24 18:14:44 +00:00
7140abfdee x
Some checks failed
CI / test-typescript (push) Has been cancelled
CI / test-rust (push) Has been cancelled
CI / test-python (push) Has been cancelled
2026-01-24 18:08:10 +00:00
100ca5596b mac
Some checks failed
CI / test-python (push) Failing after 16m26s
CI / test-rust (push) Has been cancelled
CI / test-typescript (push) Has been cancelled
2026-01-24 12:47:35 -05:00
e8ea0b24d6 refactor: rename request parameter to proto_request in gRPC test methods for improved clarity.
Some checks failed
CI / test-typescript (push) Has been cancelled
CI / test-rust (push) Has been cancelled
CI / test-python (push) Has been cancelled
2026-01-24 17:41:32 +00:00
2b32cf3807 lock
Some checks failed
CI / test-typescript (push) Successful in 10m21s
CI / test-rust (push) Failing after 7m9s
CI / test-python (push) Failing after 16m59s
2026-01-24 16:25:04 +00:00
69ebc0a11e ci: install all extra dependencies in CI/CD workflows. 2026-01-24 16:21:46 +00:00
2894e0185e action test
Some checks failed
CI / test-python (push) Failing after 6m11s
CI / test-rust (push) Has been cancelled
CI / test-typescript (push) Has been cancelled
2026-01-24 16:16:08 +00:00
b7ed31f0d4 testing actions
Some checks failed
CI / test-typescript (push) Failing after 2s
CI / test-rust (push) Failing after 2s
CI / test-python (push) Failing after 17m29s
2026-01-24 15:29:14 +00:00
60125ba446 action test 2026-01-24 15:10:53 +00:00
acfba090e4 feat: Introduce Gitea CI/CD workflows, refactor Docker deployment with dedicated dev/prod compose files and enhanced ROCm GPU support, and update RAG documentation for new AI and ASR infrastructure. 2026-01-24 14:50:19 +00:00
09d70af58f feat: Prevent duplicate secure storage unavailability warnings, include segments in meeting listings, and simplify ORM converter docstrings. 2026-01-24 11:46:35 +00:00
44d477de07 Merge branch 'master' of https://git.baked.rocks/vasceannie/noteflow 2026-01-24 05:52:35 -05:00
da1fa27048 fix: Refactor WASAPI initialization error handling to use a more explicit HRESULT value check. 2026-01-24 05:52:07 -05:00
8a7beb69a6 x 2026-01-24 10:46:07 +00:00