Skip to content

Commit bbe6c58

Browse files
committed
bump to stable
1 parent d5b146d commit bbe6c58

35 files changed

Lines changed: 12654 additions & 217 deletions

File tree

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
{
2-
"name": "@deep-sea-stories/web",
3-
"private": true,
4-
"version": "0.0.0",
5-
"type": "module",
6-
"scripts": {
7-
"start": "vite",
8-
"build": "tsc -b && vite build",
9-
"preview": "vite preview",
10-
"typecheck": "tsc --noEmit"
11-
},
12-
"dependencies": {
13-
"@deep-sea-stories/backend": "workspace:*",
14-
"@deep-sea-stories/common": "workspace:*",
15-
"@fishjam-cloud/react-client": "^0.27.0-rc.0",
16-
"@radix-ui/react-dialog": "^1.1.15",
17-
"@radix-ui/react-label": "^2.1.7",
18-
"@radix-ui/react-scroll-area": "^1.2.10",
19-
"@radix-ui/react-select": "^2.2.6",
20-
"@radix-ui/react-slot": "^1.2.3",
21-
"@tailwindcss/vite": "^4.1.13",
22-
"@tanstack/react-query": "^5.90.2",
23-
"@trpc/client": "^11.6.0",
24-
"@trpc/server": "^11.6.0",
25-
"@trpc/tanstack-react-query": "^11.6.0",
26-
"class-variance-authority": "^0.7.1",
27-
"clsx": "^2.1.1",
28-
"lucide-react": "^0.544.0",
29-
"next-themes": "^0.4.6",
30-
"react": "^19.1.1",
31-
"react-dom": "^19.1.1",
32-
"react-router": "^7.9.3",
33-
"sonner": "^2.0.7",
34-
"tailwind-merge": "^3.3.1",
35-
"tailwindcss": "^4.1.13"
36-
},
37-
"devDependencies": {
38-
"@types/gtag.js": "^0.0.20",
39-
"@types/react": "^19.1.13",
40-
"@types/react-dom": "^19.1.9",
41-
"@vitejs/plugin-react": "^5.0.3",
42-
"babel-plugin-react-compiler": "^19.1.0-rc.3",
43-
"globals": "^16.4.0",
44-
"tw-animate-css": "^1.4.0",
45-
"vite": "^7.1.7"
46-
}
2+
"name": "@deep-sea-stories/web",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"start": "vite",
8+
"build": "tsc -b && vite build",
9+
"preview": "vite preview",
10+
"typecheck": "tsc --noEmit"
11+
},
12+
"dependencies": {
13+
"@deep-sea-stories/backend": "workspace:*",
14+
"@deep-sea-stories/common": "workspace:*",
15+
"@fishjam-cloud/react-client": "^0.27.0",
16+
"@radix-ui/react-dialog": "^1.1.15",
17+
"@radix-ui/react-label": "^2.1.7",
18+
"@radix-ui/react-scroll-area": "^1.2.10",
19+
"@radix-ui/react-select": "^2.2.6",
20+
"@radix-ui/react-slot": "^1.2.3",
21+
"@tailwindcss/vite": "^4.1.13",
22+
"@tanstack/react-query": "^5.90.2",
23+
"@trpc/client": "^11.6.0",
24+
"@trpc/server": "^11.6.0",
25+
"@trpc/tanstack-react-query": "^11.6.0",
26+
"class-variance-authority": "^0.7.1",
27+
"clsx": "^2.1.1",
28+
"lucide-react": "^0.544.0",
29+
"next-themes": "^0.4.6",
30+
"react": "^19.1.1",
31+
"react-dom": "^19.1.1",
32+
"react-router": "^7.9.3",
33+
"sonner": "^2.0.7",
34+
"tailwind-merge": "^3.3.1",
35+
"tailwindcss": "^4.1.13"
36+
},
37+
"devDependencies": {
38+
"@types/gtag.js": "^0.0.20",
39+
"@types/react": "^19.1.13",
40+
"@types/react-dom": "^19.1.9",
41+
"@vitejs/plugin-react": "^5.0.3",
42+
"babel-plugin-react-compiler": "^19.1.0-rc.3",
43+
"globals": "^16.4.0",
44+
"tw-animate-css": "^1.4.0",
45+
"vite": "^7.1.7"
46+
}
4747
}

deep-sea-stories/yarn.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ __metadata:
353353
dependencies:
354354
"@deep-sea-stories/backend": "workspace:*"
355355
"@deep-sea-stories/common": "workspace:*"
356-
"@fishjam-cloud/react-client": "npm:^0.27.0-rc.0"
356+
"@fishjam-cloud/react-client": "npm:^0.27.0"
357357
"@radix-ui/react-dialog": "npm:^1.1.15"
358358
"@radix-ui/react-label": "npm:^2.1.7"
359359
"@radix-ui/react-scroll-area": "npm:^1.2.10"
@@ -673,29 +673,29 @@ __metadata:
673673
languageName: node
674674
linkType: hard
675675

676-
"@fishjam-cloud/react-client@npm:^0.27.0-rc.0":
677-
version: 0.27.0-rc.0
678-
resolution: "@fishjam-cloud/react-client@npm:0.27.0-rc.0"
676+
"@fishjam-cloud/react-client@npm:^0.27.0":
677+
version: 0.27.0
678+
resolution: "@fishjam-cloud/react-client@npm:0.27.0"
679679
dependencies:
680-
"@fishjam-cloud/ts-client": "npm:0.27.0-rc.0"
680+
"@fishjam-cloud/ts-client": "npm:0.27.0"
681681
events: "npm:3.3.0"
682682
lodash.isequal: "npm:4.5.0"
683683
peerDependencies:
684684
react: ^19.1.0
685-
checksum: 10c0/b670a8e2ba5f32348505f8ce6361e8e6408e78c36c6a695c0abaa12b92406134a314e0067fa8a124864d2618045736397ed831c7a03ecbbdb7c8c2634616d4c0
685+
checksum: 10c0/4edb1a4eb84bf6eaf3a27287508120c50c95fe10a30f8b7412c1494b03b68713bc4c2595e3a2e5d28102371f56a5239fb36e056b137a7f7d93601d0968a8a978
686686
languageName: node
687687
linkType: hard
688688

689-
"@fishjam-cloud/ts-client@npm:0.27.0-rc.0":
690-
version: 0.27.0-rc.0
691-
resolution: "@fishjam-cloud/ts-client@npm:0.27.0-rc.0"
689+
"@fishjam-cloud/ts-client@npm:0.27.0":
690+
version: 0.27.0
691+
resolution: "@fishjam-cloud/ts-client@npm:0.27.0"
692692
dependencies:
693693
"@binbat/whip-whep": "npm:^1.1.1-sdp-trickle-throw"
694694
"@bufbuild/protobuf": "npm:^2.2.3"
695695
events: "npm:^3.3.0"
696696
typed-emitter: "npm:^2.1.0"
697697
uuid: "npm:^11.1.0"
698-
checksum: 10c0/03464af0ccf04f382b70b33aa4105df509b1af9c5c0345c422e1692a04f0a0fe37ea871aef9ffb3c14a370e121fc79bd0d34ee0370007b1db96643abf989e1da
698+
checksum: 10c0/60c116f31ec71db293974b4f2dc6e8561fd5c4f61e11f105dfddf25037eae82822878f57481f4026b4b6f11abffe7b14ebbb030519654227f1880e13e3ebc937
699699
languageName: node
700700
linkType: hard
701701

gemini-demo/backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"types": "./src/main.ts",
1212
"dependencies": {
1313
"@fastify/cors": "^11.1.0",
14-
"@fishjam-cloud/js-server-sdk": "^0.27.0-rc.0",
14+
"@fishjam-cloud/js-server-sdk": "^0.27.0",
1515
"@google/genai": "^1.44.0",
1616
"@trpc/server": "^11.6.0",
1717
"dotenv": "^17.2.3",
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Smelter Frame-Drop Debug — 2026-05-27/28
2+
3+
**Server:** puffer.fishjam.io · **Container:** `pufferfish-engine-prod-1` (`pufferfish-engine-prod`)
4+
**Symptom:** Pufferfish game output stream running at extremely low FPS.
5+
6+
## Timeline
7+
- **05-27 ~20:34 local** — Pufferfish FPS dropped severely while smelter ran.
8+
- 1st compose restart: did **not** help; smelter logging dropped frames.
9+
- 2nd compose restart: FPS subjectively recovered; drops fell to ~2/min background.
10+
- **05-28 ~12:41 UTC** — container restarted again (RestartCount=0, so a fresh start/redeploy).
11+
- **05-28 ~14:00 UTC** — second bad episode observed: drops ~90/min, CPU ~330%, host load ~5.
12+
- **05-28 ~16:12 UTC** — episode subsiding (host load 5.09 → 1.95). Profile captured here.
13+
14+
## The real signal (not CPU%)
15+
Output-side WARN, the lag symptom:
16+
```
17+
smelter_core::queue::queue_thread: Dropping video frame on queue output. pts=<seconds>
18+
```
19+
Drop rate, calm vs bad:
20+
- Calm (05-27 evening): ~2/min.
21+
- Bad (05-28 14:00 UTC): per-minute over 6 min = 83, 180, 72, 64, 19, 147 (~90/min avg); 5,340 total over the container's ~1h.
22+
- Reproduces from cold start — first drop ~21s after container launch.
23+
24+
## CPU profile (05-28 ~16:12 UTC) — KEY FINDING
25+
smelter host PID 2534433, 71 threads. perf/gdb not used (see below). Per-thread CPU:
26+
27+
| thread | name | cumulative CPU | live %CPU |
28+
|---|---|---|---|
29+
| **2534468** | tokio-runtime-worker | **3786s (~63 min)** | **~80–100% (state R)** |
30+
| ~19 others | tokio-runtime-worker | ~365–369s (~6 min) each | ~10% each (state S) |
31+
32+
**One tokio runtime worker thread (2534468) is a persistent hotspot — ~10× the CPU time of every other worker**, pinned at ~80–100% since container start, while the rest of the async pool sits at a light ~10%.
33+
34+
Interpretation: a single CPU-bound async task — almost certainly the **compositing render + output-encode loop** for the game's output stream — monopolizes one tokio worker and isn't spread across the pool / offloaded to a blocking pool. When that one core can't sustain the work in real time, the output queue can't be drained → `queue_thread` drops frames. The hot thread maps directly to the drop symptom.
35+
36+
`docker stats` CPU swings (≈100% calm ↔ ≈330% during the 14:00 episode) = encode + egress work, **not** evenly spread compositing.
37+
38+
## perf symbol-level profile (05-28 ~16:30 UTC) — supersedes the guess above
39+
`perf record -F 99 -g -p 2534433 -- sleep 20` (8765 samples). libx264 is stripped (some frames show as raw `0x...`), but x264 exported symbols + the Rust binary symbols resolve. **Two real cost centers, not one pinned compositing thread:**
40+
41+
**1. x264 H.264 encoding — ~30% of all CPU**, on `Whep Video Encoder` thread(s):
42+
- `x264_8_trellis_coefn` alone = 11.65% + 10.05% across two encoder threads (+ x264 tail). Trellis is RD-optimized quantization — one of x264's most expensive features (on at `medium`+ presets).
43+
- **Multiple `Whep Video Enco` threads ⇒ encoding appears to be per-viewer/per-output**, so x264 cost scales with viewer count.
44+
45+
**2. RTP/UDP egress — tokio runtime = 61% of all CPU**, dominated by the send path:
46+
- `tokio ... task::waker::wake_by_val` (29.96%) → `mio::net::udp::UdpSocket::send_to``sendto` syscall. Many task wakeups = many small UDP packet sends.
47+
- `rtp::codecs::h264::H264Payloader::payload` ~1.4–2% (RTP packetization of the encoded H.264).
48+
- `nft_do_chain`/`nf_hook_slow`/`__ip_local_out` ~3% — Docker's per-packet nftables firewall/NAT on every egress RTP packet.
49+
50+
**Conclusion:** the lag is the **output path** (encode → packetize → send), not compositing/render. When encode+egress can't sustain real-time for the active output stream(s), the output queue can't drain → `queue_thread` drops frames. The earlier "hot tokio worker 2534468 (63 min)" is consistent with the UDP-send/waker path concentrating on the runtime's driver.
51+
52+
perf.data left at `/tmp/sm.data` on the host. `perf`/`linux-tools-6.8.0-79-generic` were installed for this (needrestart deferred the docker restart; container was not bounced).
53+
54+
## Secondary noise (input churn, likely not the cause)
55+
During the 14:00 episode, WHIP inputs were connecting/dropping:
56+
```
57+
input_thread: Failed to send decoded video frame from decoder. Channel closed. thread="Video Decoder" instance="Input WHIP input video, input_id=..."
58+
webrtc peer_connection: Failed to accept RTP/RTCP Session SRTP has been closed
59+
Incoming unhandled RTP ssrc(...), on_track will not be fired. single media section has an explicit SSRC
60+
```
61+
These coincide with peers disconnecting — likely disconnect noise, not the lag root cause. Startup also emits many `webrtc_ice agent_gather: could not listen udp fe80::... (os error 22)` (IPv6 link-local bind failures) — benign.
62+
63+
## Environment
64+
- Host: 20 cores, 64GB, ~253d uptime; otherwise idle (~81–91% idle even during episodes).
65+
- Container has **no resource limits** (`CpuQuota=0`, `NanoCpus=0`, `Memory=0`).
66+
- Process tree: `bun → bun → ./bin/smelter` (= `/usr/src/app/apps/engine/bin/smelter`).
67+
68+
## For smelter team
69+
- The bottleneck is the **output path (encode → RTP packetize → UDP send)**, not compositing. Don't chase total CPU% or "compositing is slow."
70+
- **x264 encoder settings:** `x264_8_trellis_coefn` is the single hottest function. For low-latency game streaming, consider disabling trellis / a faster preset (`ultrafast`/`veryfast`, `tune zerolatency`) on the WHEP output encoder — likely a big win for little perceptual loss.
71+
- **Per-viewer encoding:** multiple `Whep Video Enco` threads suggest each output is encoded separately, so CPU scales with viewer count. A shared/simulcast encode fanned out by an SFU would cut x264 cost sharply if many viewers.
72+
- **Egress:** heavy `sendto` + tokio waker churn (29.96% via `wake_by_val`) + ~3% nftables per packet. Scales with packet rate/viewers.
73+
- Reproduces from cold start; persists across restarts (2nd restart only reduced perceived severity).
74+
- Profiling data: `/tmp/sm.data` on the host (open with `perf report -i /tmp/sm.data`).

gemini-demo/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"typecheck": "tsc --noEmit"
1010
},
1111
"dependencies": {
12-
"@fishjam-cloud/react-client": "^0.27.0-rc.0",
12+
"@fishjam-cloud/react-client": "^0.27.0",
1313
"@trpc/client": "^11.6.0",
1414
"@trpc/server": "^11.6.0",
1515
"gemini-demo-backend": "workspace:*",

gemini-demo/yarn.lock

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -468,9 +468,9 @@ __metadata:
468468
languageName: node
469469
linkType: hard
470470

471-
"@fishjam-cloud/js-server-sdk@npm:^0.27.0-rc.0":
472-
version: 0.27.0-rc.1
473-
resolution: "@fishjam-cloud/js-server-sdk@npm:0.27.0-rc.1"
471+
"@fishjam-cloud/js-server-sdk@npm:^0.27.0":
472+
version: 0.27.0
473+
resolution: "@fishjam-cloud/js-server-sdk@npm:0.27.0"
474474
dependencies:
475475
axios: "npm:^1.7.9"
476476
uuid: "npm:^11.1.0"
@@ -479,33 +479,33 @@ __metadata:
479479
peerDependenciesMeta:
480480
"@google/genai":
481481
optional: true
482-
checksum: 10c0/b97ea37063e9fd6b7ecf890143b5de78c3286c8998f2811c43a678e940f9161e732fe98e3be7275290121cb741a0c31d56849d348b83c11e879bab7ec93a69f6
482+
checksum: 10c0/f2adf7a250a204e6cb5861282e9d7aff8d8ea360171942ad6a71c567378e64e91ea21f177915def6398af2f67628c308a82092c819592fbbf6faeecc87dd64db
483483
languageName: node
484484
linkType: hard
485485

486-
"@fishjam-cloud/react-client@npm:^0.27.0-rc.0":
487-
version: 0.27.0-rc.0
488-
resolution: "@fishjam-cloud/react-client@npm:0.27.0-rc.0"
486+
"@fishjam-cloud/react-client@npm:^0.27.0":
487+
version: 0.27.0
488+
resolution: "@fishjam-cloud/react-client@npm:0.27.0"
489489
dependencies:
490-
"@fishjam-cloud/ts-client": "npm:0.27.0-rc.0"
490+
"@fishjam-cloud/ts-client": "npm:0.27.0"
491491
events: "npm:3.3.0"
492492
lodash.isequal: "npm:4.5.0"
493493
peerDependencies:
494494
react: ^19.1.0
495-
checksum: 10c0/b670a8e2ba5f32348505f8ce6361e8e6408e78c36c6a695c0abaa12b92406134a314e0067fa8a124864d2618045736397ed831c7a03ecbbdb7c8c2634616d4c0
495+
checksum: 10c0/4edb1a4eb84bf6eaf3a27287508120c50c95fe10a30f8b7412c1494b03b68713bc4c2595e3a2e5d28102371f56a5239fb36e056b137a7f7d93601d0968a8a978
496496
languageName: node
497497
linkType: hard
498498

499-
"@fishjam-cloud/ts-client@npm:0.27.0-rc.0":
500-
version: 0.27.0-rc.0
501-
resolution: "@fishjam-cloud/ts-client@npm:0.27.0-rc.0"
499+
"@fishjam-cloud/ts-client@npm:0.27.0":
500+
version: 0.27.0
501+
resolution: "@fishjam-cloud/ts-client@npm:0.27.0"
502502
dependencies:
503503
"@binbat/whip-whep": "npm:^1.1.1-sdp-trickle-throw"
504504
"@bufbuild/protobuf": "npm:^2.2.3"
505505
events: "npm:^3.3.0"
506506
typed-emitter: "npm:^2.1.0"
507507
uuid: "npm:^11.1.0"
508-
checksum: 10c0/03464af0ccf04f382b70b33aa4105df509b1af9c5c0345c422e1692a04f0a0fe37ea871aef9ffb3c14a370e121fc79bd0d34ee0370007b1db96643abf989e1da
508+
checksum: 10c0/60c116f31ec71db293974b4f2dc6e8561fd5c4f61e11f105dfddf25037eae82822878f57481f4026b4b6f11abffe7b14ebbb030519654227f1880e13e3ebc937
509509
languageName: node
510510
linkType: hard
511511

@@ -1854,7 +1854,7 @@ __metadata:
18541854
resolution: "gemini-demo-backend@workspace:backend"
18551855
dependencies:
18561856
"@fastify/cors": "npm:^11.1.0"
1857-
"@fishjam-cloud/js-server-sdk": "npm:^0.27.0-rc.0"
1857+
"@fishjam-cloud/js-server-sdk": "npm:^0.27.0"
18581858
"@google/genai": "npm:^1.44.0"
18591859
"@trpc/server": "npm:^11.6.0"
18601860
"@tsconfig/node24": "npm:^24.0.1"
@@ -1874,7 +1874,7 @@ __metadata:
18741874
version: 0.0.0-use.local
18751875
resolution: "gemini-demo-web@workspace:web"
18761876
dependencies:
1877-
"@fishjam-cloud/react-client": "npm:^0.27.0-rc.0"
1877+
"@fishjam-cloud/react-client": "npm:^0.27.0"
18781878
"@trpc/client": "npm:^11.6.0"
18791879
"@trpc/server": "npm:^11.6.0"
18801880
"@types/react": "npm:^19.1.13"

mobile-react-native/blur-example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"format:check": "prettier --check ."
1313
},
1414
"dependencies": {
15-
"@fishjam-cloud/react-native-client": "^0.27.0-rc.0",
15+
"@fishjam-cloud/react-native-client": "^0.27.0",
1616
"@fishjam-cloud/react-native-webrtc-background-blur": "^0.1.2",
1717
"@react-navigation/elements": "^2.5.2",
1818
"@react-navigation/native": "^7.1.14",

mobile-react-native/blur-example/yarn.lock

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,21 +1165,21 @@
11651165
chalk "^4.1.0"
11661166
js-yaml "^4.1.0"
11671167

1168-
"@fishjam-cloud/react-client@0.27.0-rc.0":
1169-
version "0.27.0-rc.0"
1170-
resolved "https://registry.yarnpkg.com/@fishjam-cloud/react-client/-/react-client-0.27.0-rc.0.tgz#0794231a29b60b62a6739695ad709fc61e0c43a7"
1171-
integrity sha512-xq6zSqxogqs5x+4vjsoeW7KVFEPcrd6ptuvysiitRzbK0grWe48KjqDmvZf66ivs8XVbSQskBeYLVJCBQPaTmQ==
1168+
"@fishjam-cloud/react-client@0.27.0":
1169+
version "0.27.0"
1170+
resolved "https://registry.yarnpkg.com/@fishjam-cloud/react-client/-/react-client-0.27.0.tgz#424f5960076013a5e4968fb6687f71c0121541ea"
1171+
integrity sha512-rA0RrW16hqkTaMqRayLwwN9BVu8uFTLVcCWJFPgCsvBc6JD9yYYO2E+tTpVZTtIAC+zeVKpT/PFSuuV6S6khuw==
11721172
dependencies:
1173-
"@fishjam-cloud/ts-client" "0.27.0-rc.0"
1173+
"@fishjam-cloud/ts-client" "0.27.0"
11741174
events "3.3.0"
11751175
lodash.isequal "4.5.0"
11761176

1177-
"@fishjam-cloud/react-native-client@^0.27.0-rc.0":
1178-
version "0.27.0-rc.0"
1179-
resolved "https://registry.yarnpkg.com/@fishjam-cloud/react-native-client/-/react-native-client-0.27.0-rc.0.tgz#dd6c6537f5540b7e3690b9519ad2c076c71bd997"
1180-
integrity sha512-dHWdcDZycrlzXXLsANKyXc1itHJUu7Tu2UfdT4nSVq3C8bIOHVaqpLnkyM+WqFqyLtzyxwIbF9ufqrUJyw8sqA==
1177+
"@fishjam-cloud/react-native-client@^0.27.0":
1178+
version "0.27.0"
1179+
resolved "https://registry.yarnpkg.com/@fishjam-cloud/react-native-client/-/react-native-client-0.27.0.tgz#4d9803fcbb2a3b8a81f42a243f1fa457d9abbba4"
1180+
integrity sha512-Np41bCPkhpaSGStzITpfshlAsUahFfQAq8ou11ovKLBO2HLsrr0dDMbvUevwkQjQ+YvUbtNtXSCIp3Q+Djuxiw==
11811181
dependencies:
1182-
"@fishjam-cloud/react-client" "0.27.0-rc.0"
1182+
"@fishjam-cloud/react-client" "0.27.0"
11831183
"@fishjam-cloud/react-native-webrtc" "0.26.2"
11841184
fast-text-encoding "1.0.6"
11851185
react-native-get-random-values "1.11.0"
@@ -1198,10 +1198,10 @@
11981198
base64-js "1.5.1"
11991199
debug "4.3.4"
12001200

1201-
"@fishjam-cloud/ts-client@0.27.0-rc.0":
1202-
version "0.27.0-rc.0"
1203-
resolved "https://registry.yarnpkg.com/@fishjam-cloud/ts-client/-/ts-client-0.27.0-rc.0.tgz#79a950e6f56e8df18e89e5c2b45823fde2e2aab1"
1204-
integrity sha512-OKC6C5Np9sA5X0FN4qf0chXrCPMF2RSjerlr1VxKDYiIU4oCIRRTnCgbA/AayrLor6L32P8fg/1JIKq7CEkt9w==
1201+
"@fishjam-cloud/ts-client@0.27.0":
1202+
version "0.27.0"
1203+
resolved "https://registry.yarnpkg.com/@fishjam-cloud/ts-client/-/ts-client-0.27.0.tgz#209a3710284dff2ba2edad9ad3fd94a2899cbf50"
1204+
integrity sha512-nloTBzAMe+H7dYHkllikCegZA7BT5vx/KsuuMT8A4+E8jtncisF8HS9on7gHCSbljInIlBSlQnoVMclw2Bz1eA==
12051205
dependencies:
12061206
"@binbat/whip-whep" "^1.1.1-sdp-trickle-throw"
12071207
"@bufbuild/protobuf" "^2.2.3"

mobile-react-native/fishjam-chat/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
},
1717
"dependencies": {
1818
"@expo/vector-icons": "^15.0.3",
19-
"@fishjam-cloud/react-native-client": "^0.27.0-rc.0",
19+
"@fishjam-cloud/react-native-client": "^0.27.0",
2020
"@react-navigation/bottom-tabs": "^7.4.0",
2121
"@react-navigation/elements": "^2.6.3",
2222
"@react-navigation/native": "^7.1.8",

0 commit comments

Comments
 (0)