Quay lại các thay đổi radical splash/CallScreen từ 1f4c9f4
📱 1.2.30
Lịch sử cập nhật
Nền tảng đang phát triển mỗi ngày. Ở đây — toàn bộ lịch sử thay đổi: các tính năng mới, bản sửa lỗi và cập nhật bảo mật. Tải ứng dụng
Tháng 5 2026
Sửa triệt để splash→CallScreen + ghi log bền vững
📱 1.2.29
Mở CallScreen khi ringing→connected lúc CallKit đã nhận
📱 1.2.28
Phiên bản + ngày build trong menu bên hông (Drawer)
📱 1.2.27
Splash chen ngang navigation vào /call + auto-answer lúc cold-start
📱 1.2.26
Bản sửa bảo mật: cuộc gọi
📱 1.2.25
Multi-line {# #} → {% comment %} trong voip overlay + ad detail
🌐 Web
SSR client cho cuộc gọi + cập nhật docs
🌐 Web
Hiển thị video stream + khử trùng lặp CallKit-vs-CallScreen (theo mẫu team-call)
📱 1.2.24
Cuộc gọi video + khử trùng lặp thông báo FCM + tự vô hiệu hóa tin đăng
📱 1.2.22
🌐+📱 Web + ứng dụng
Số SIP gắn trọn đời với chủ trại + cấp quyền DELETE cho location
🌐 Web
Upsert subscriber luôn — khôi phục sau khi mất bản ghi
🌐 Web
AllowBadCertificate=true cho WSS — lệch SNI với Kamailio
📱 1.2.22
Tích hợp UI — nút VoIP trong Profile + nút Gọi trong Ad Detail
📱 1.2.21
🌐+📱 Web + ứng dụng
Android native — quyền Manifest + MainActivity reattach + BootReceiver + CallKit
📱 1.2.20
Flutter SIP-client + CallScreen + provider Riverpod
📱 1.2.19
App Django với các endpoint cho cuộc gọi của nông dân
🌐 Web
Hạ tầng cho cuộc gọi — sip.cattles.net trên shared Kamailio server
🌐 Web
@mention boost, msg_type preview, FCM ttl, nền tảng voip-channel
📱 1.2.18
🌐+📱 Web + ứng dụng
PhoneRequiredMiddleware chặn xem trên dev/prod khi chưa có phone
🌐 Web
Push sau khi cài lại + CSS theme chết + quy tắc bundling trong CLAUDE.md
📱 1.2.17
🌐+📱 Web + ứng dụng
/profile/ trả về phone+avatar, mobile không bị lặp vòng phone-setup
📱 1.2.16
🌐+📱 Web + ứng dụng
Bỏ validator min/max cho weight_kg/height_cm
📱 1.2.15
🌐+📱 Web + ứng dụng
3 lỗi hồi quy từ commit auth chỉ social
🌐 Web
Auth chỉ social + avatar + phone-setup + geo wizard
📱 1.2.13
Đăng ký chỉ social + phone-setup + geo audit + avatar
🌐 Web
Không dùng trong code
🌐 Web
Sửa UX — session age + CTA + logo trùng + alert→toast
🌐 Web
“Tin nhắn” trong desktop header + sidebar + dropdown
🌐 Web
Web SSR chat + bố cục responsive giống mobile
🌐 Web
Tăng urllib3 trong requirements_prod.txt luôn
🌐 Web
Bản sửa bảo mật: dependencies
🌐 Web
Push khi có tin nhắn mới + sender/time + read receipts + bottom-nav
📱 1.2.11
🌐+📱 Web + ứng dụng
Google login trên web + Farmer.user CASCADE
🌐 Web
Bỏ firebase-adminsdk.json trống khỏi tracking git
🌐 Web
Khung backend — Google Sign-In + Firebase Cloud Messaging + chats
📱 1.2.5
🌐+📱 Web + ứng dụng
Splash odometer 71→43 ngôn ngữ
📱 1.2.5
Migration 0081 — xóa parler-translations ngoài 43
🌐 Web
Bản sửa bảo mật: hạ tầng
🌐 Web
Giảm hỗ trợ từ 70 xuống 43 ngôn ngữ
📱 1.2.3
🌐+📱 Web + ứng dụng
Giới hạn upload 60→300/giờ mỗi người dùng
🌐 Web
Bỏ throttle mặc định, chỉ giữ ở các endpoint nhạy cảm
🌐 Web
Hoàn tác thumbnail AVIF trong serializer (chặn sync trong API)
🌐 Web
Sinh AVIF bất đồng bộ bằng post_save (không chặn)
🌐 Web
Thumbnail AVIF cho giống loài (Wiki_animals)
🌐 Web
AdDetailView — favorites qua prefetch, không dùng count/exists
🌐 Web
Sửa N+1 theo audit của explore-agent
🌐 Web
/animal-categories/<id>/breeds/ — sửa N+1 (tăng tốc ×60)
🌐 Web
List/index — sửa N+1 + mixin page-cache
🌐 Web
Cache trang thủ công + Cache-Control cho BreedDetailView
🌐 Web
Bỏ dropdown siblings — 382 <option> làm tốn 25 giây
🌐 Web
Prefetch bản dịch cho siblings/categories
🌐 Web
Bỏ qua /api/v1/ads/ qua SILKY_INTERCEPT_FUNC
🌐 Web
SILKY_PYTHON_PROFILER qua env (toggle không cần rebuild image)
🌐 Web
/geo/countries/ — dùng .only() để giảm overhead của PostGIS PointField
🌐 Web
/ads/ — prefetch translations được lọc theo ngôn ngữ
🌐 Web
Sửa N+1 — /geo/countries/ 233→2 SQL, /ads/ 158→~5 SQL
🌐 Web
LOGIN_URL=/admin/login/ — nếu không sẽ redirect sang 404
🌐 Web
-90% SQL ở /admin/main/wiki_animals/ + /advertisements/
🌐 Web
Django-silk profiler trên dev và prod, dọn dẹp mỗi 3 giờ
🌐 Web