- ✅
frontend/src/lib/api_bridge.js— JS Bridge (Desktop ↔ Mobile) - ✅
mobile/mobile.go— Go HTTP-сервер (каркас готов) - ✅
android/— Kotlin проект (MainActivity + TeleGhostService) - ✅
.github/workflows/android.yml— CI/CD pipeline с CGO + NDK
- ✅
teleghost.aar— gomobile bind с CGO_ENABLED=1 - ✅ Android APK с WebView
⚠️ НО:mobile.goсодержит прототип-заглушки
Статус: ✅ Частично исправлено
Проблема: Использует core.Message, но нужно проверить сигнатуры
Что делать:
// Проверить что repo.SaveMessage() принимает *core.Message
// Проверить что messenger.SendTextMessage() работает корректноСтатус: ❌ Заглушка
Текущий код:
func (app *MobileApp) addContact(name, destination string) (interface{}, error) {
return nil, fmt.Errorf("AddContact: implement via internal packages")
}Нужно:
func (app *MobileApp) addContact(name, destination string) (*core.Contact, error) {
// 1. Создать контакт в БД
contact := &core.Contact{
ID: uuid.New().String(),
Nickname: name,
I2PAddress: destination,
AddedAt: time.Now(),
UpdatedAt: time.Now(),
}
// 2. Сохранить
if err := app.repo.SaveContact(app.ctx, contact); err != nil {
return nil, err
}
// 3. Отправить handshake
if app.messenger != nil {
go app.messenger.SendHandshake(destination)
}
// 4. Emit событие
app.emitEvent("new_contact", map[string]interface{}{
"nickname": name,
})
return contact, nil
}Статус: ❌ Упрощённая версия
Проблема: Не сохраняет сообщения в БД, не создаёт контакты
Нужно: Скопировать логику из app_messages.go:onMessageReceived() (строки 233-289)
Статус: ❌ Неправильные импорты
Проблема:
identity.FromMnemonic()не существуетidentity.Generate()не существуетprofileManager.CreateProfile()неправильная сигнатура
Решение: Посмотреть на app_auth.go и скопировать правильную логику
Оставить mobile.go как есть, но задокументировать что это прототип.
Плюсы:
- CI соберёт .aar и APK
- Можно протестировать UI на Android
- Базовая архитектура работает
Минусы:
- Сообщения НЕ будут работать
- Контакты НЕ будут добавляться
- Только просмотр интерфейса
Исправить все заглушки в mobile.go:
-
Скопировать логику из
app_*.goaddContact()→ изapp_contacts.go:AddContact()sendText()→ изapp_messages.go:SendText()✅ (уже сделано)onMessageReceived()→ изapp_messages.go:onMessageReceived()createProfile(),login()→ изapp_auth.go
-
Исправить импорты и типы
- Использовать
core.Message,core.Contact,core.User - Проверить сигнатуры всех методов
repo.*иmessenger.*
- Использовать
-
Добавить недостающие методы
SendFileMessage()для AndroidAcceptFileTransfer(),DeclineFileTransfer()UpdateProfile(),RequestProfileUpdate()
wails dev- Запушить в GitHub
- Создать тег:
git tag v1.0.3-android && git push --tags - Скачать
.apkиз GitHub Release - Установить на Android
- Ожидаемый результат:
- ✅ WebView откроется
- ✅ UI отобразится
- ❌ Логин НЕ сработает (заглушки в mobile.go)
- ❌ Сообщения НЕ отправятся
- Доделать
mobile.go— скопировать всю логику изapp_*.go - Добавить тесты — unit-тесты для HTTP API
- Обработка ошибок — улучшить error handling в диспетчере
- Логирование — добавить structured logging (logrus/zap)
- Безопасность — добавить rate limiting для HTTP API
- Исправить только критичные методы:
sendText()✅addContact()❌onMessageReceived()❌
- Остальное оставить как есть
- Протестировать базовый flow: Login → Add Contact → Send Message
Текущее состояние: Архитектура готова, но mobile.go — это прототип с заглушками.
Что работает:
- ✅ CI/CD pipeline (сборка .aar + APK)
- ✅ Android проект (Service + WebView)
- ✅ JS Bridge (api_bridge.js)
- ✅ HTTP сервер (роутинг запросов)
- ✅ SSE события (real-time)
Что НЕ работает:
- ❌ Логин/регистрация (неправильные типы)
- ❌ Добавление контактов (заглушка)
- ❌ Получение входящих сообщений (упрощённая версия)
- ❌ Отправка файлов (не реализовано)
Следующий шаг: Выбрать вариант 1 (MVP) или вариант 2 (полная реализация) и доделать mobile.go.