bvandeusen
d441dcf954
fix(voice): fix silent STT failure — use AAC/M4A, store onError, guard NaN amplitude
...
Three bugs causing silent STT failure on Android:
1. AudioEncoder.opus produces an OGG container on Android but the file
was named .webm — faster-whisper rejected it due to format mismatch.
Changed to AudioEncoder.aacLc + .m4a (reliable on all Android versions).
Updated voice_api.dart to send audio/mp4 MIME type accordingly.
2. onError callback was never stored, so errors in _startListening() and
_handleSilence() were silently swallowed. Now stored as _onError and
called before exitVoiceMode() on any failure.
3. Amplitude stream can emit NaN or ±Infinity on some Android devices
during recorder initialisation. NaN < -40.0 is false, so silence was
never detected. Now treated explicitly as silence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 17:39:21 -04:00
bvandeusen
03dc9108a3
docs: update README to reflect current app features and architecture
...
Replaces outdated Library/stub descriptions with accurate coverage of
Knowledge, Calendar, News, Voice I/O, chat tool-status notifications,
auto-refresh, and the current file tree.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 17:34:20 -04:00
bvandeusen
5014eca9ac
feat: auto-refresh data on app resume and tab switch
...
- App resume: invalidates all main providers (conversations, calendar,
news, knowledge, briefing) when the app returns to foreground.
Throttled to once per 5 minutes to avoid hammering the server.
- Tab switch: refreshes the incoming tab's provider when navigating
between Briefing / Knowledge / Conversations shell tabs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 12:45:33 -04:00
bvandeusen
d530920284
fix: load tasks via TasksApi in Knowledge view, remove tab counts
...
Tasks are not part of the knowledge API (backend rejects type=task).
When the Tasks tab is selected, fetch from /api/tasks and convert to
KnowledgeItem. Also removes per-type counts from tab labels to prevent
tabs from awkwardly resizing when counts load.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 12:36:00 -04:00
bvandeusen
e2a358a158
feat: show tool status notifications in chat during generation
...
Parse SSE `status` events alongside `chunk` events and display the
status text next to the spinner while the assistant is generating.
Previously the Android app discarded all non-chunk SSE events.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:46:42 -04:00
bvandeusen
4919f7a185
feat: wire Calendar route to CalendarScreen
2026-04-06 10:32:53 -04:00
bvandeusen
5b639dbd4c
feat: add CalendarScreen with month strip and agenda list
2026-04-06 10:32:13 -04:00
bvandeusen
334882520c
feat: add EventFormSheet with CRUD, recurrence picker, and color chips
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 10:31:08 -04:00
bvandeusen
c4dca6d4ed
feat: add CalendarNotifier and calendarProvider
2026-04-06 10:28:53 -04:00
bvandeusen
776b394874
feat: add EventsApi and eventsApiProvider
2026-04-06 10:27:11 -04:00
bvandeusen
b56c0fc02d
feat: add table_calendar package and CalendarEvent model with tests
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 10:25:52 -04:00
bvandeusen
8a0837a843
docs: add Android Calendar screen implementation plan
2026-04-06 10:17:29 -04:00
bvandeusen
8e5a95b0f2
docs: add Android Calendar screen design spec
2026-04-06 10:01:37 -04:00
bvandeusen
3a07221968
feat: wire News route to NewsScreen
2026-04-06 08:30:08 -04:00
bvandeusen
e7d174cef7
feat: add NewsScreen with feed filter, reactions, and discuss
2026-04-06 08:29:30 -04:00
bvandeusen
f4e39c00eb
fix: use ref.watch in build() and avoid stale snapshot in loadMore catch
2026-04-06 08:26:59 -04:00
bvandeusen
e08a8906e3
feat: add NewsNotifier and feedsProvider
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 08:22:24 -04:00
bvandeusen
01ea6b48db
feat: add RssItemMeta.fromNewsItem adapter factory
2026-04-06 08:18:34 -04:00
bvandeusen
b56f3d3a0f
feat: add NewsApi, openArticleInChat, and newsApiProvider
2026-04-06 08:16:00 -04:00
bvandeusen
77fc82af45
feat: add NewsItem and BriefingFeed models with tests
2026-04-06 08:13:06 -04:00
bvandeusen
a2fc0d6c7d
docs: add Android news screen implementation plan
2026-04-06 08:11:12 -04:00
bvandeusen
2a2f9e6e85
docs: add Android news screen design spec
2026-04-06 08:04:18 -04:00
bvandeusen
95d0f529ea
fix: invalidate project tasks on return from task edit screen
2026-04-06 07:15:35 -04:00
bvandeusen
36bc36cd9d
feat: replace Projects tab with More bottom sheet (news/calendar stubs)
2026-04-06 07:14:38 -04:00
bvandeusen
a23af0658a
docs: add Android nav restructure implementation plan
2026-04-06 06:40:06 -04:00
bvandeusen
39d9f7e053
docs: add Android nav restructure + projects staleness fix spec
2026-04-06 06:35:31 -04:00
bvandeusen
9944680c5b
Release v26.04.05.1 — Voice I/O
v26.04.05.1
2026-04-05 23:55:13 +00:00
bvandeusen
29ff9f821a
fix: override record_linux to 1.3.0 for platform interface compatibility
...
record_linux 0.7.2 doesn't implement startStream from record_platform_interface 1.5.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:50:05 -04:00
bvandeusen
1b08b2fd9e
feat(voice): integrate voice mode into Briefing screen
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:47:38 -04:00
bvandeusen
211bf0d658
feat(voice): integrate one-shot voice capture into Quick Capture bar
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:46:34 -04:00
bvandeusen
2231c60bfb
feat(voice): integrate voice mode into Chat screen
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:45:53 -04:00
bvandeusen
81077349a5
feat(voice): add VoiceMicButton animated widget
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:44:55 -04:00
bvandeusen
2cb566336b
feat(voice): add VoiceNotifier with recording, silence detection, and streaming TTS
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:44:21 -04:00
bvandeusen
6e33d74178
feat(voice): add VoiceRepository and provider registration
2026-04-05 14:40:49 -04:00
bvandeusen
c90b0b3d48
feat(voice): add VoiceApi and VoiceStatus model
2026-04-05 14:40:19 -04:00
bvandeusen
e891e8ba52
feat(voice): add record + just_audio dependencies, RECORD_AUDIO permission
2026-04-05 14:39:35 -04:00
bvandeusen
89fe8994fb
docs: add Android Voice I/O implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:36:48 -04:00
bvandeusen
3a3f44b00b
docs: add Android Voice I/O design spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-05 14:19:48 -04:00
bvandeusen
d97f7b0ebd
feat(knowledge): wire 4-tab shell, retire LibraryScreen, complete Knowledge View feature
2026-04-05 00:03:23 -04:00
bvandeusen
2ab24a99a8
feat(knowledge): add edit button to ProjectTasksScreen app bar
2026-04-04 23:56:40 -04:00
bvandeusen
e39d31fe43
feat(knowledge): add ProjectsScreen and ProjectEditScreen, sort projects by updated_at
2026-04-04 23:56:18 -04:00
bvandeusen
a50193dbc0
feat(knowledge): update Project model, ProjectsApi sort, and NoteEditScreen noteType support
2026-04-04 23:52:10 -04:00
bvandeusen
f5ba2d25a3
feat(knowledge): add KnowledgeScreen with tabs, search, tag filters, and infinite scroll
2026-04-04 23:50:19 -04:00
bvandeusen
b5d9efa3ec
feat(knowledge): add KnowledgeItemCard widget
2026-04-04 23:49:18 -04:00
bvandeusen
e0b56fc149
feat(knowledge): add KnowledgeNotifier with two-tier pagination state
2026-04-04 23:48:47 -04:00
bvandeusen
535833abfe
test: add KnowledgeItem model unit tests
2026-04-04 23:40:29 -04:00
bvandeusen
deec2318f7
feat(knowledge): add KnowledgeApi, KnowledgeRepository, wire providers
2026-04-04 23:39:43 -04:00
bvandeusen
2920252f13
feat(knowledge): add KnowledgeItem model
2026-04-04 23:38:19 -04:00
bvandeusen
c8cdcbf230
feat(knowledge): add noteType field to Note model, api, repository, provider
2026-04-04 23:37:53 -04:00
bvandeusen
e89626a782
feat(knowledge): add knowledge + projectEdit route constants
2026-04-04 22:55:50 -04:00