This website requires JavaScript.
2d3ab3dbd3
fix(calls): only cancel-push unanswered calls; add native-call telemetry
Sravan
2026-07-30 17:20:32 +05:30
3ac5b6e7bd
fix(ios): import LiveKitClient (the CocoaPod module name), not LiveKit
Sravan
2026-07-30 16:47:39 +05:30
e60e80e4bd
feat(calls): native-call lifecycle endpoints + WebView steps aside (inc 1)
Sravan
2026-07-30 16:32:13 +05:30
3e8aaad68c
feat(ios): native LiveKit connection in the call plugin (inc 1, WIP)
Sravan
2026-07-30 16:15:43 +05:30
aae663ccea
feat(calls): mint a LiveKit join token into the native VoIP call payload (inc 1)
Sravan
2026-07-30 16:11:21 +05:30
c4ffe2a4e9
build(ios): add LiveKitClient pod to native-call (native call media)
Sravan
2026-07-30 16:03:01 +05:30
e09d17f1a7
fix(ios): stop VoIP-push crash; hand mic to WebView after answer; missed-call banner
Sravan
2026-07-29 22:48:24 +05:30
9dc253143e
fix(ios): keep CallKit call active on answer so the app foregrounds
Sravan
2026-07-29 20:44:09 +05:30
6096b62368
feat(calls): CallKit ring-only + WebView media (background audio via voip mode)
Sravan
2026-07-29 18:25:59 +05:30
e7c3231c50
feat(calls): CallKit kill-switch + fix ~1s re-ring on cancel
Sravan
2026-07-29 17:54:21 +05:30
3e21aa30d7
fix(calls): cancel the CallKit ring when the caller ends before answer
Sravan
2026-07-29 11:09:07 +05:30
cd7ab74eed
fix(ios): NativeCallPlugin Swift compile errors
Sravan
2026-07-28 23:03:01 +05:30
f63aba0ed1
feat(ios): native CallKit + PushKit VoIP calling plugin + web bridge
Sravan
2026-07-28 22:34:27 +05:30
fd2eb42e25
feat(calls): server foundation for native CallKit/VoIP calling (phase A)
Sravan
2026-07-28 20:57:56 +05:30
37e58f6087
feat(push): bundle a custom notification sound (notif.wav) for chat + calls
Sravan
2026-07-27 23:03:45 +05:30
5a1ce5fdba
fix(ios): declare background audio so calls survive minimising the app
Sravan
2026-07-27 22:24:39 +05:30
a0b3936799
fix(calls): send native push for incoming calls + replay on reconnect
Sravan
2026-07-27 22:13:52 +05:30
1920258fd6
fix(ios): forward APNs device token from AppDelegate to Capacitor
Sravan
2026-07-27 21:27:25 +05:30
c6523a8461
debug(push): add native push-setup telemetry to trace iOS registration
Sravan
2026-07-27 21:20:03 +05:30
83b445e32d
fix(ios): inject aps-environment entitlement so APNs push registration works
Sravan
2026-07-26 21:04:12 +05:30
381c4ddfee
fix(deploy): reload NPM after deploy so it re-resolves the app's IP
Sravan
2026-07-24 23:43:28 +05:30
63f2c588da
feat(scale): swappable pub/sub layer + fix chat.js missed awaits (Phase 6)
Sravan
2026-07-24 23:20:02 +05:30
363c4a539f
feat(db): add bizgaze-postgres service to compose (engine cutover infra)
Sravan
2026-07-24 23:08:32 +05:30
5f342b0b4e
fix(db): portable thread queries for Postgres (conditional cursor + subquery alias)
db-migration
Sravan
2026-07-24 22:32:42 +05:30
e67a783bdc
feat(db): Postgres backend + dialect-portable queries + data migration (Phase 5)
Sravan
2026-07-24 22:28:04 +05:30
3250530596
feat(db): complete async call-site conversion — Phase 3 done, validated on SQLite
Sravan
2026-07-24 22:06:27 +05:30
2460c0f9eb
wip(db): async call-site conversion in progress (Phase 3) — DO NOT MERGE yet
Sravan
2026-07-24 21:26:10 +05:30
dbd209ac2b
feat(db): async DB adapter with swappable sqlite backend (Phase 1)
Sravan
2026-07-24 21:10:53 +05:30
e482cb5bb2
test(db): focused DB smoke harness for the migration (22 checks, green on SQLite)
Sravan
2026-07-24 21:08:29 +05:30
1709a331d1
feat(db): Postgres target schema (Phase 1 of the migration)
Sravan
2026-07-24 19:46:04 +05:30
b2c4b10e41
fix(db): guest_emails/lobby ALTERs ran before scheduled_meetings existed + e2e drift
Sravan
2026-07-24 19:43:46 +05:30
ee95f594c6
style(share-ext): clean SF-Symbol X + paper-plane instead of heavy pill/circle
Sravan
2026-07-24 19:08:38 +05:30
854bc86a6e
feat(share-ext): fix double "Send to", Teams-style layout, clearer branding
Sravan
2026-07-24 18:25:15 +05:30
4d446a5425
feat(share-ext): avatars, multi-select, and Biz Connect branding in the picker
Sravan
2026-07-24 18:00:01 +05:30
d664dde798
feat(share): send from inside the share sheet — the Teams-style in-extension picker
Sravan
2026-07-24 16:33:23 +05:30
2ec0a0c0cd
feat(share-ext): confirmation card instead of a confusing blank flash
Sravan
2026-07-24 16:24:15 +05:30
0c3487fdb0
polish(share): picker avatars + target name + pre-warm video poster
Sravan
2026-07-24 16:21:02 +05:30
4836b1e197
fix(share): read the shared file via native Filesystem, not fetch (remote-origin)
Sravan
2026-07-24 16:08:58 +05:30
d5658eeb9e
ci: surface the real xcodebuild error on archive failure
Sravan
2026-07-24 15:40:01 +05:30
59310419ba
fix(ci): share-extension injector looked one dir too high for the xcodeproj
Sravan
2026-07-24 15:28:20 +05:30
0a2c7376b9
feat(share): "Biz Connect" in the iOS share sheet — share a photo/file into a chat
Sravan
2026-07-23 22:58:08 +05:30
00ea140280
feat(photos): downloaded media also lands in a "Connect" album in Photos
Sravan
2026-07-23 22:39:27 +05:30
82fa8e04eb
fix(video): one centred control — download → % → play, as specified
Sravan
2026-07-23 19:57:07 +05:30
cb81dd6106
feat(storage): Biz Connect folder in Files, manage storage, videos save once
Sravan
2026-07-23 15:29:29 +05:30
cc8f7d1eb8
feat(download): real % progress, and stream to disk instead of buffering
Sravan
2026-07-23 12:18:50 +05:30
310f37f29b
fix(video): centre spinner never appeared on the one stall users actually see
Sravan
2026-07-23 11:48:11 +05:30
8a5409987c
perf(video): stream a capped, faststart rendition instead of the raw upload
Sravan
2026-07-23 10:49:04 +05:30
2127397408
perf(video): cache attachment auth so Range playback stops stuttering; strict on-demand
Sravan
2026-07-22 22:27:37 +05:30
b7cd6df625
feat(video): clear center buffering spinner over in-chat videos
Sravan
2026-07-22 22:16:35 +05:30
fd15628393
feat(video): server-generated poster thumbnails + HTTP Range streaming
Sravan
2026-07-22 22:09:32 +05:30
92d41e6324
revert swipe-back to instant release; simplify in-chat video to native <video controls>
Sravan
2026-07-22 21:57:19 +05:30
85a1b9d2ca
fix(mobile): pull-refresh loader below the Dynamic Island; in-chat video player
Sravan
2026-07-22 21:48:09 +05:30
3cc6ff4e54
feat(mobile): finger-following swipe-back (iOS-style), reusing the working close layout
Sravan
2026-07-22 21:22:58 +05:30
200624bd24
chore: remove all temporary debug instrumentation
Sravan
2026-07-22 20:46:54 +05:30
2f368643ad
fix(ios audio): stop dropping call audio on tap — never reconfigure session mid-call
Sravan
2026-07-22 19:30:35 +05:30
5cee67e974
feat(ios audio): final UX — auto-route + live indicator (no impossible toggle)
Sravan
2026-07-22 18:57:08 +05:30
44526e1ee9
fix(ios audio): stop the speaker<->BT oscillation; single override, no re-force
Sravan
2026-07-22 11:54:42 +05:30
cfbf950173
fix(ios audio): force speaker over connected Bluetooth by dropping BT category options
Sravan
2026-07-22 11:01:06 +05:30
c3b0ef560d
feat(ios audio): report real output route so the toggle icon is correct
Sravan
2026-07-21 23:43:07 +05:30
e9b9d3c121
feat(ios calls): drop unreachable earpiece from route toggle; Speaker <-> BT/headset
Sravan
2026-07-21 23:26:13 +05:30
0282181ca6
diag(ios audio): settled-route probe (+0.4s/+1.2s) + live mode in route log
Sravan
2026-07-21 22:44:38 +05:30
b54ba10c69
fix(ios audio): pin .voiceChat before override(.none) so earpiece is reachable
Sravan
2026-07-21 22:31:14 +05:30
ce49e8e30d
fix(ios audio): re-assert earpiece after WebKit re-forces speaker (debounced)
Sravan
2026-07-21 22:20:29 +05:30
36d51ba40d
diag(ios audio): setSpeaker returns actual output port + category/mode + native marker
Sravan
2026-07-21 19:22:01 +05:30
1920345ecd
fix(ios audio): route earpiece reliably; stop fighting WebKit's audio session
Sravan
2026-07-21 09:10:09 +05:30
8f33df5c3d
fix(ios): rename podspec to AudioRoute.podspec so cap sync/pod install resolves it
Sravan
2026-07-20 21:15:56 +05:30
804c218236
docs: preserve coturn/TURN setup notes (rescued from the removed prod-fix worktree)
Sravan
2026-07-20 17:55:30 +05:30
46b5ae16a4
speaker: force-add audio-route plugin dist stubs (global dist/ ignore would drop them from a fresh clone)
Sravan
2026-07-20 17:07:01 +05:30
c6f236ecf9
speaker: make AudioRoute a real Capacitor plugin PACKAGE so it registers (device log: has:0)
Sravan
2026-07-20 17:06:16 +05:30
a574816eaa
debug: instrument bzApplyRoute to see if native AudioRoute plugin registered + setSpeaker result (batch146)
Sravan
2026-07-20 16:43:39 +05:30
5960efb612
uploads: support up to 1 GB attachments, streamed to disk (was 25 MB, buffered in memory) (batch145)
Sravan
2026-07-20 16:06:19 +05:30
90d49d29d0
speaker: native AudioRoute plugin for real earpiece<->speaker toggle on iOS (batch144)
Sravan
2026-07-20 00:31:25 +05:30
9c2ba847b0
meeting: unlock iOS media playback on Join so remote call audio isn't silent until you mute/unmute (batch143)
Sravan
2026-07-20 00:08:25 +05:30
4e78448743
mobile: revert finger-following swipe-back to the working release-based version (interactive one had an undiagnosable-blind layout offset) (batch142)
Sravan
2026-07-20 00:01:33 +05:30
fed0e07e3e
mobile: swipe-back easier completion threshold (25%) + readback telemetry to confirm conversation actually translates (batch141)
Sravan
2026-07-19 23:41:13 +05:30
9c731f087e
mobile: iOS PWA keyboard — pin app to visual viewport + undo webview scroll so header stays; swipe-back telemetry (batch140)
Sravan
2026-07-19 23:17:13 +05:30
578f3a2921
mobile: interactive-widget=resizes-content so the keyboard resizes the layout instead of panning the viewport (header no longer pushed off) (batch139)
Sravan
2026-07-19 23:00:43 +05:30
f178e271c8
debug: capture PWA composer-focus viewport state (scale/scroll/font) to diagnose the zoom (batch138)
Sravan
2026-07-19 22:53:28 +05:30
8aa2532666
mobile: interactive finger-following swipe-back to go from a conversation to the list (batch137)
Sravan
2026-07-19 22:50:10 +05:30
40789b06cf
mobile: composer font-size 16px UNCONDITIONALLY to stop iOS/PWA focus-zoom on any viewport (batch136)
Sravan
2026-07-19 18:57:45 +05:30
134cb8999d
ios: default in-call audio to the loudspeaker (AVAudioSession) at build time
Sravan
2026-07-19 16:18:52 +05:30
f2b965bd3d
desktop v0.1.20 + web: notify on download complete (was silent) (batch135)
Sravan
2026-07-19 16:03:24 +05:30
30eaf37773
desktop: v0.1.19 — reliable auto-update for close-to-tray users
Sravan
2026-07-19 15:38:01 +05:30
3f44e2b285
desktop: v0.1.18 — downloads save to Downloads folder with no dialog
Sravan
2026-07-19 11:42:38 +05:30
d098ba468e
docs: revert stray whitespace in IOS_SETUP.md
Sravan
2026-07-19 11:36:42 +05:30
9f3e8b83c7
mobile: hide iOS keyboard accessory bar + composer-anchored attach menu (batch134)
Sravan
2026-07-19 11:35:59 +05:30
a7f954ae44
mobile: Enter=newline on mobile, hide preview zoom buttons; desktop: downloads to Downloads folder (batch133)
Sravan
2026-07-19 10:38:36 +05:30
c32584df54
mobile: fix zoom + notch on the non-home pages (dashboard/index/connect/share/host)
Sravan
2026-07-19 08:39:50 +05:30
3a7a026533
mobile PWA: fix keyboard zoom (16px inputs) + composer lift via VisualViewport (batch132)
Sravan
2026-07-19 08:31:32 +05:30
150a074578
mobile: stop the open-pin schedule the instant the user scrolls (batch131)
Sravan
2026-07-19 08:21:34 +05:30
2a60c01268
mobile: apply network content DURING the fade, not at landing (batch130)
Sravan
2026-07-19 07:32:21 +05:30
9bb74cffd2
mobile: real slide-in + fade on open, list column untouched = zero reflow (batch129)
Sravan
2026-07-19 06:57:48 +05:30
9c703d6e64
mobile: chat open = instant + quick opacity fade (no slide) (batch128)
Sravan
2026-07-19 06:51:38 +05:30
9eb4a99679
mobile: revert chatcol absolute-behind — it broke chat opening (batch127)
Sravan
2026-07-19 06:35:45 +05:30
82d0154313
mobile: kill the real slide hitch — stop reflowing the list column at slide-end (batch126)
Sravan
2026-07-19 01:04:40 +05:30
ea04556596
mobile: definitive slide fix (zero teardown) + real native download + reconcile (batch125)
Sravan
2026-07-19 00:48:34 +05:30
91b3e5c522
mobile: kill slide end-hitch (compositor teardown), fix reopen-at-latest + native download hang (batch124)
Sravan
2026-07-19 00:31:57 +05:30
433703cfeb
perf(mobile): skip redundant end-of-slide re-render (unchanged content) + load-older before rubber-band
Sravan
2026-07-19 00:10:27 +05:30
a4600f6b5f
fix(mobile): close the debug <script> block (batch122 left it open, breaking the keyboard block)
Sravan
2026-07-19 00:02:48 +05:30
d02d8976d3
diag(mobile): instrument slide frame-timing + render cost + load-older scroll to find the real jank
Sravan
2026-07-19 00:00:28 +05:30