Skip to content

Releases: gungwang/gungchat

Dev 2.0.28 Release: Fix bugs: connection between 2 devices.

28 May 14:35
bc6b6af

Choose a tag to compare

Issues 1, 2, 3 — reconnection / Connect button
chat_screen.dart:1408 — added canQuickConnect flag (verified contact with known address, no secure channel).
chat_screen.dart:2000-2058 — composer button now becomes Connect (with wifi_tethering_outlined icon) when offline, dispatching PeerConnectIntent over the existing LAN signaling path. Works symmetrically on initiator (A) and responder (W) since both sides hold each other's verified contact + lastKnownAddress after the first exchange.
Issue 4 — button label
Send Secure Message → Send in the same composer block.
Issue 5 — burn-after-read actually deletes

peer_session_controller.dart:685 — in markMessagesRead, after sending the read receipt, deletes the received message locally if burnAfterRead is set.
peer_session_controller.dart:1630 — in _handleReceiptEnvelope, when an outgoing message's read receipt arrives, deletes the sender's copy if burnAfterRead is set. (The previous implementation only set a 10-min TTL backstop with no delete-on-read.)
Issue 6 — spec review
The remaining items in GungChat-Plan-Spec.md (E2E encryption, voice/video, LAN-first transport, 320p video, QR exchange, presence, reactions, replies, edits) are already implemented per the existing test suite and prior sessions. The two genuine spec gaps surfaced by your bug reports — reconnect UX and F4 burn-after-read — are the ones fixed above. If you want me to do a deeper line-by-line spec audit against current code, say the word.
8 bundled SVG stickers — colored rounded squares with an OS emoji glyph drawn on top (so they look like stickers but don't require pixel art):
Auto-scroll: done
Chat screen translation (Scope A, machine-quality) is complete across all 5 locales (en, zh, zh_TW, es, fr).

Multilingual support

16 May 20:10
1e14f5f

Choose a tag to compare

GungChat —— 敢说
目前最安全的点对点加密通讯应用程序:100%保密、完全隐私、无用户数据泄露、无登录、无服务器依赖、点对点、完全匿名、数据加密、无广告、无追踪、完全自主控制、短信、语音通话、视频通话、开源免费。多语言支持英语,中文简体,中文繁体,法语,西班牙语。
The ultimate private messenger: 100% confidential, zero accounts, zero servers, zero tracking. Pure peer‑to‑peer encryption for text, voice, and video. Anonymous, ad‑free, open‑source, and completely free—privacy without compromise. No tracking, no ads, just secure communication with total freedom.
Multilingual support is now wired end to end for English, Simplified Chinese, Traditional Chinese, Spanish, and French. I enabled Flutter localization generation

GungChat 敢说 Release 2.0.2 for Android OS.

25 Apr 15:12
2f3250c

Choose a tag to compare

gungchat git:(main) flutter build appbundle --release
Resolving dependencies...
Downloading packages...
app_links 6.4.1 (7.0.0 available)
archive 3.6.1 (4.0.9 available)
connectivity_plus 6.1.5 (7.1.1 available)
file_picker 8.3.7 (11.0.2 available)
flutter_lints 5.0.0 (6.0.0 available)
flutter_riverpod 2.6.1 (3.3.1 available)
flutter_secure_storage 9.2.4 (10.0.0 available)
flutter_secure_storage_linux 1.2.3 (3.0.0 available)
flutter_secure_storage_macos 3.1.3 (4.0.0 available)
flutter_secure_storage_platform_interface 1.1.2 (2.0.1 available)
flutter_secure_storage_web 1.2.1 (2.1.0 available)
flutter_secure_storage_windows 3.1.2 (4.1.0 available)
geolocator 13.0.4 (14.0.2 available)
geolocator_android 4.6.2 (5.0.2 available)
hooks 1.0.2 (1.0.3 available)
js 0.6.7 (0.7.2 available)
lints 5.1.1 (6.1.0 available)
local_auth 2.3.0 (3.0.1 available)
local_auth_android 1.0.56 (2.0.8 available)
local_auth_darwin 1.6.1 (2.0.3 available)
local_auth_windows 1.0.11 (2.0.1 available)
meta 1.17.0 (1.18.2 available)
mobile_scanner 4.0.1 (7.2.0 available)
native_toolchain_c 0.17.6 (0.18.0 available)
permission_handler 11.4.0 (12.0.1 available)
permission_handler_android 12.1.0 (13.0.1 available)
riverpod 2.6.1 (3.2.1 available)
share_plus 10.1.4 (13.1.0 available)
share_plus_platform_interface 5.0.2 (7.1.0 available)
sqflite 2.4.2 (2.4.2+1 available)
sqflite_common 2.5.6 (2.5.6+1 available)
synchronized 3.4.0 (3.4.0+1 available)
test_api 0.7.10 (0.7.11 available)
vector_math 2.2.0 (2.3.0 available)
win32 5.15.0 (6.1.0 available)
xml 6.6.1 (7.0.0 available)
Got dependencies!
36 packages have newer versions incompatible with dependency constraints.
Try flutter pub outdated for more information.
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 9304 bytes (99.4% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.
Running Gradle task 'bundleRelease'... 175.9s
✓ Built build/app/outputs/bundle/release/app-release.aab (77.4MB)
➜ gungchat git:(main) git tag -a v2.0.2 -m "Realease for Andiod os release v2.0.2 app-release.aab."
➜ gungchat git:(main) git push origin v2.0.2
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 184 bytes | 184.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
To github-gungwang:gungwang/gungchat.git

  • [new tag] v2.0.2 -> v2.0.2

GungChat 敢说 Release

16 Apr 20:06
702abe0

Choose a tag to compare

GungChat Session 1 Handoff

Date: 2026-04-16

Scope Completed

This session created the initial Flutter project scaffold for GungChat under the gungchat/ directory and brought the local Linux machine to a working Android-capable Flutter setup.

Project State

Project root created:

  • gungchat/

Initial implementation slice added:

  • App shell and Riverpod wiring
  • Core encryption service and key manager
  • WebRTC manager, signaling envelope, ICE manager, network monitor
  • Local SQLite message database
  • Basic chat, contacts, and settings screens
  • Initial widget and crypto tests

Important dependency state in gungchat/pubspec.yaml:

  • flutter_webrtc upgraded to ^1.4.1

Important Android release signing files now present locally:

  • gungchat/android/key.properties
  • gungchat/android/upload-keystore.jks

Repository status at the end of the session:

  • gungchat/ is still untracked in the parent repository

Local Machine Setup Performed

Flutter SDK

Installed locally at:

  • /home/wang/.local/flutter

JDK 17

Installed locally at:

  • /home/wang/.local/jdks/temurin-17

Configured Flutter to use this JDK with:

  • flutter config --jdk-dir=/home/wang/.local/jdks/temurin-17

Android SDK

Installed locally at:

  • /home/wang/.local/android-sdk

Configured Flutter to use this SDK with:

  • flutter config --android-sdk=/home/wang/.local/android-sdk

Installed Android SDK components:

  • platform-tools
  • platforms;android-36
  • build-tools;36.0.0
  • cmake;3.22.1
  • NDK side-by-side 28.2.13676358 was auto-installed during build

Shell Configuration

Updated /home/wang/.zshrc to export:

  • PATH additions for Flutter and Android tools
  • JAVA_HOME=/home/wang/.local/jdks/temurin-17
  • ANDROID_HOME=/home/wang/.local/android-sdk
  • ANDROID_SDK_ROOT=/home/wang/.local/android-sdk

Validation Completed

These commands succeeded before ending the session:

  • flutter analyze
  • flutter test
  • flutter doctor -v with Android toolchain healthy when Android environment variables were present
  • flutter build apk --debug --target-platform android-arm64
  • flutter build apk --debug
  • flutter build apk --release
  • flutter build appbundle --release

Generated APK:

  • gungchat/build/app/outputs/flutter-apk/app-debug.apk
  • gungchat/build/app/outputs/flutter-apk/app-release.apk

Generated Android App Bundle:

  • gungchat/build/app/outputs/bundle/release/app-release.aab

Release signing verification completed:

  • The SHA-256 fingerprint of android/upload-keystore.jks matches the signer fingerprint of app-release.apk

Problems Found And Fixed

1. Flutter command missing

Resolved by installing Flutter locally and adding it to the shell PATH.

2. Java mismatch for Android Gradle Plugin

Resolved by installing Temurin JDK 17 locally and configuring Flutter to use it.

3. Android SDK missing

Resolved by installing local Android command-line tools and the required SDK packages.

4. Old flutter_webrtc version failed on Android

Original version:

  • 0.11.7

Issue:

  • It referenced the removed Flutter Android v1 embedding API (PluginRegistry.Registrar).

Resolved by upgrading to:

  • flutter_webrtc ^1.4.1

5. Android native build missing Ninja

Resolved by installing Android SDK CMake package 3.22.1.

6. Disk space pressure

The Linux filesystem was nearly full during Android packaging.

Observed issue:

  • Universal debug APK packaging failed with no space left on device.

Resolved temporarily by:

  • Cleaning the Flutter build output
  • Removing downloaded installer archives
  • Building a smaller single-ABI APK with --target-platform android-arm64

7. Android release signing configuration

Resolved by:

  • Updating gungchat/android/app/build.gradle.kts to use a real release signing config from android/key.properties
  • Generating a local android/upload-keystore.jks
  • Generating a local ignored android/key.properties
  • Verifying that app-release.apk is signed by the generated keystore

Committed documentation file added:

  • gungchat/android/RELEASE_SIGNING.md

Current Known Constraints

  • iOS cannot be built from this Linux machine
  • The parent repository has not yet staged or committed the new gungchat/ directory

Required Backup Now

Back up these two files outside this machine before any reinstall, cleanup, or key rotation:

  • gungchat/android/key.properties
  • gungchat/android/upload-keystore.jks

If either file is lost, future Android updates for the same app signing identity may become difficult or impossible to publish.

Recommended Resume Steps After Reboot And Disk Expansion

Run these after the machine restarts:

  1. source ~/.zshrc
  2. cd /home/wang/projects/gungchat/gungchat
  3. flutter doctor -v
  4. flutter analyze
  5. flutter test

If you want to re-verify Android packaging:

  1. flutter build apk --debug

If you want a release build later:

  1. flutter build apk --release

If you want a Play Store style bundle:

  1. flutter build appbundle --release

Recommended Next Engineering Step

Continue Phase 1 and early Phase 2 implementation work in this order:

  1. Manual peer signaling flow for offer, answer, and ICE exchange
  2. Real encrypted peer message transport on top of the data channel
  3. LAN discovery integration
  4. Platform-specific screenshot and recording protection hooks

Most Relevant Files To Reopen First

  • gungchat/pubspec.yaml
  • gungchat/android/app/build.gradle.kts
  • gungchat/android/RELEASE_SIGNING.md
  • gungchat/lib/app/providers.dart
  • gungchat/lib/core/networking/webrtc_manager.dart
  • gungchat/lib/core/networking/signaling_service.dart
  • gungchat/lib/core/encryption/crypto_service.dart
  • gungchat/lib/features/chat/chat_screen.dart
  • /home/wang/.zshrc

app-release.apk is an Android install package. A user can install it directly by sideloading on Android. This is useful for direct distribution, testing, or sharing outside Google Play.

app-release.aab is the Android App Bundle for Google Play. This is the file you normally upload to Google Play. End users do not install the .aab directly; Google Play turns it into optimized APKs for each device.