diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 3dd856d..1e8e799 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -42,6 +42,6 @@
## Проверка
- [ ] `flutter analyze`
-- [ ] Сборка `komet` flavor
+- [ ] Сборка `qlyra` flavor
- [ ] Ручная проверка затронутых сценариев
- [ ] Регресс по безопасности (если затронута)
diff --git a/.github/actions/setup-rust/action.yml b/.github/actions/setup-rust/action.yml
index 3017132..6c4727b 100644
--- a/.github/actions/setup-rust/action.yml
+++ b/.github/actions/setup-rust/action.yml
@@ -21,4 +21,4 @@ runs:
- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
- workspaces: native/komet_crypto/rust
+ workspaces: native/qlyra_crypto/rust
diff --git a/.github/workflows/build-android-fcm.yml b/.github/workflows/build-android-fcm.yml
index 3fef1cb..1450f89 100644
--- a/.github/workflows/build-android-fcm.yml
+++ b/.github/workflows/build-android-fcm.yml
@@ -69,12 +69,12 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
@@ -87,7 +87,7 @@ jobs:
- name: Upload Universal APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-universal
+ name: qlyra-android-fcm-universal
path: build/app/outputs/flutter-apk/app-oneme-release.apk
if-no-files-found: error
retention-days: 30
@@ -95,7 +95,7 @@ jobs:
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-arm64-v8a
+ name: qlyra-android-fcm-arm64-v8a
path: build/app/outputs/flutter-apk/app-arm64-v8a-oneme-release.apk
if-no-files-found: error
retention-days: 30
@@ -103,7 +103,7 @@ jobs:
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-armeabi-v7a
+ name: qlyra-android-fcm-armeabi-v7a
path: build/app/outputs/flutter-apk/app-armeabi-v7a-oneme-release.apk
if-no-files-found: error
retention-days: 30
@@ -111,7 +111,7 @@ jobs:
- name: Upload x86_64 APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-x86_64
+ name: qlyra-android-fcm-x86_64
path: build/app/outputs/flutter-apk/app-x86_64-oneme-release.apk
if-no-files-found: error
retention-days: 30
@@ -122,7 +122,7 @@ jobs:
- name: Upload App Bundle artifact
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-aab
+ name: qlyra-android-fcm-aab
path: build/app/outputs/bundle/onemeRelease/app-oneme-release.aab
if-no-files-found: error
retention-days: 30
@@ -130,7 +130,7 @@ jobs:
- name: Upload debug symbols
uses: actions/upload-artifact@v4
with:
- name: komet-android-fcm-symbols
+ name: qlyra-android-fcm-symbols
path: build/symbols
if-no-files-found: error
retention-days: 90
diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml
index 390a215..bac8e85 100644
--- a/.github/workflows/build-android.yml
+++ b/.github/workflows/build-android.yml
@@ -69,68 +69,68 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
- name: Build Universal APK
- run: flutter build apk --release --flavor komet --obfuscate --split-debug-info=build/symbols
+ run: flutter build apk --release --flavor qlyra --obfuscate --split-debug-info=build/symbols
- name: Build Split APKs
- run: flutter build apk --release --split-per-abi --flavor komet --obfuscate --split-debug-info=build/symbols
+ run: flutter build apk --release --split-per-abi --flavor qlyra --obfuscate --split-debug-info=build/symbols
- name: Upload Universal APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-universal
- path: build/app/outputs/flutter-apk/app-komet-release.apk
+ name: qlyra-android-universal
+ path: build/app/outputs/flutter-apk/app-qlyra-release.apk
if-no-files-found: error
retention-days: 30
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-arm64-v8a
- path: build/app/outputs/flutter-apk/app-arm64-v8a-komet-release.apk
+ name: qlyra-android-arm64-v8a
+ path: build/app/outputs/flutter-apk/app-arm64-v8a-qlyra-release.apk
if-no-files-found: error
retention-days: 30
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-armeabi-v7a
- path: build/app/outputs/flutter-apk/app-armeabi-v7a-komet-release.apk
+ name: qlyra-android-armeabi-v7a
+ path: build/app/outputs/flutter-apk/app-armeabi-v7a-qlyra-release.apk
if-no-files-found: error
retention-days: 30
- name: Upload x86_64 APK
uses: actions/upload-artifact@v4
with:
- name: komet-android-x86_64
- path: build/app/outputs/flutter-apk/app-x86_64-komet-release.apk
+ name: qlyra-android-x86_64
+ path: build/app/outputs/flutter-apk/app-x86_64-qlyra-release.apk
if-no-files-found: error
retention-days: 30
- name: Build App Bundle
- run: flutter build appbundle --release --flavor komet --obfuscate --split-debug-info=build/symbols
+ run: flutter build appbundle --release --flavor qlyra --obfuscate --split-debug-info=build/symbols
- name: Upload App Bundle artifact
uses: actions/upload-artifact@v4
with:
- name: komet-android-aab
- path: build/app/outputs/bundle/kometRelease/app-komet-release.aab
+ name: qlyra-android-aab
+ path: build/app/outputs/bundle/qlyraRelease/app-qlyra-release.aab
if-no-files-found: error
retention-days: 30
- name: Upload debug symbols
uses: actions/upload-artifact@v4
with:
- name: komet-android-symbols
+ name: qlyra-android-symbols
path: build/symbols
if-no-files-found: error
retention-days: 90
diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml
index 17c3560..569ee73 100644
--- a/.github/workflows/build-ios.yml
+++ b/.github/workflows/build-ios.yml
@@ -54,14 +54,14 @@ jobs:
run: |
mkdir -p dist build/ios/Payload
cp -R build/ios/iphoneos/Runner.app build/ios/Payload/
- (cd build/ios && zip -qr ../../dist/Komet-ios-unsigned.ipa Payload)
+ (cd build/ios && zip -qr ../../dist/Qlyra-ios-unsigned.ipa Payload)
rm -rf build/ios/Payload
- name: Upload unsigned iOS artifact
uses: actions/upload-artifact@v4
with:
- name: komet-ios-unsigned
- path: dist/Komet-ios-unsigned.ipa
+ name: qlyra-ios-unsigned
+ path: dist/Qlyra-ios-unsigned.ipa
if-no-files-found: error
retention-days: 30
@@ -79,9 +79,9 @@ jobs:
get-task-allow
- application-identifierru.komet.app
+ application-identifierru.qlyra.app
keychain-access-groups
- ru.komet.app
+ ru.qlyra.app
PLIST
@@ -104,12 +104,12 @@ jobs:
run: |
mkdir -p dist build/ios/Payload
cp -R build/ios/iphoneos/Runner.app build/ios/Payload/
- (cd build/ios && zip -qr ../../dist/Komet-ios-pseudosigned.ipa Payload)
+ (cd build/ios && zip -qr ../../dist/Qlyra-ios-pseudosigned.ipa Payload)
- name: Upload iOS artifact
uses: actions/upload-artifact@v4
with:
- name: komet-ios-pseudosigned
- path: dist/Komet-ios-pseudosigned.ipa
+ name: qlyra-ios-pseudosigned
+ path: dist/Qlyra-ios-pseudosigned.ipa
if-no-files-found: error
retention-days: 30
diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml
index d47216f..69aa10b 100644
--- a/.github/workflows/build-linux.yml
+++ b/.github/workflows/build-linux.yml
@@ -56,12 +56,12 @@ jobs:
- name: Package Linux
run: |
mkdir -p dist
- tar -C build/linux/x64/release/bundle -czf dist/Komet-linux-x64.tar.gz .
+ tar -C build/linux/x64/release/bundle -czf dist/Qlyra-linux-x64.tar.gz .
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
- name: komet-linux-x64
- path: dist/Komet-linux-x64.tar.gz
+ name: qlyra-linux-x64
+ path: dist/Qlyra-linux-x64.tar.gz
if-no-files-found: error
retention-days: 30
diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml
index 0c07ea5..f1351c8 100644
--- a/.github/workflows/build-macos.yml
+++ b/.github/workflows/build-macos.yml
@@ -51,7 +51,7 @@ jobs:
- name: Upload macOS DMG artifact
uses: actions/upload-artifact@v4
with:
- name: komet-macos
+ name: qlyra-macos
path: dist/*.dmg
if-no-files-found: error
retention-days: 30
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
index ede96ba..7489aca 100644
--- a/.github/workflows/build-windows.yml
+++ b/.github/workflows/build-windows.yml
@@ -52,12 +52,12 @@ jobs:
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path dist | Out-Null
- Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Komet-windows-x64.zip
+ Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Qlyra-windows-x64.zip
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
- name: komet-windows-x64
- path: dist/Komet-windows-x64.zip
+ name: qlyra-windows-x64
+ path: dist/Qlyra-windows-x64.zip
if-no-files-found: error
retention-days: 30
diff --git a/.github/workflows/flutter-dev.yml b/.github/workflows/flutter-dev.yml
index 92e7052..95f4b8e 100644
--- a/.github/workflows/flutter-dev.yml
+++ b/.github/workflows/flutter-dev.yml
@@ -60,17 +60,17 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
- name: Build Android APK
- run: flutter build apk --release --flavor komet
+ run: flutter build apk --release --flavor qlyra
build-ios:
runs-on: macos-latest
diff --git a/.github/workflows/flutter-main.yml b/.github/workflows/flutter-main.yml
index 3e065f9..c327b70 100644
--- a/.github/workflows/flutter-main.yml
+++ b/.github/workflows/flutter-main.yml
@@ -59,17 +59,17 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
- name: Build Android APK
- run: flutter build apk --release --flavor komet
+ run: flutter build apk --release --flavor qlyra
linux:
runs-on: ubuntu-latest
diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml
index 573b309..43f5908 100644
--- a/.github/workflows/release-dev.yml
+++ b/.github/workflows/release-dev.yml
@@ -23,7 +23,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- flavor: [komet, oneme]
+ flavor: [qlyra, oneme]
steps:
- uses: actions/checkout@v3
with:
@@ -70,12 +70,12 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
@@ -89,12 +89,12 @@ jobs:
run: |
F=${{ matrix.flavor }}
mkdir -p dist
- cp build/app/outputs/flutter-apk/app-$F-release.apk dist/Komet-android-$F-universal.apk
- cp build/app/outputs/flutter-apk/app-arm64-v8a-$F-release.apk dist/Komet-android-$F-arm64-v8a.apk
- cp build/app/outputs/flutter-apk/app-armeabi-v7a-$F-release.apk dist/Komet-android-$F-armeabi-v7a.apk
- cp build/app/outputs/flutter-apk/app-x86_64-$F-release.apk dist/Komet-android-$F-x86_64.apk
- cp build/app/outputs/bundle/${F}Release/app-$F-release.aab dist/Komet-android-$F.aab
- tar -czf dist/Komet-android-$F-symbols.tar.gz -C build/symbols .
+ cp build/app/outputs/flutter-apk/app-$F-release.apk dist/Qlyra-android-$F-universal.apk
+ cp build/app/outputs/flutter-apk/app-arm64-v8a-$F-release.apk dist/Qlyra-android-$F-arm64-v8a.apk
+ cp build/app/outputs/flutter-apk/app-armeabi-v7a-$F-release.apk dist/Qlyra-android-$F-armeabi-v7a.apk
+ cp build/app/outputs/flutter-apk/app-x86_64-$F-release.apk dist/Qlyra-android-$F-x86_64.apk
+ cp build/app/outputs/bundle/${F}Release/app-$F-release.aab dist/Qlyra-android-$F.aab
+ tar -czf dist/Qlyra-android-$F-symbols.tar.gz -C build/symbols .
- name: Upload Android artifacts (${{ matrix.flavor }})
uses: actions/upload-artifact@v4
@@ -127,7 +127,7 @@ jobs:
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path dist | Out-Null
- Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Komet-windows-x64.zip
+ Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Qlyra-windows-x64.zip
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
@@ -162,7 +162,7 @@ jobs:
- name: Package Linux
run: |
mkdir -p dist
- tar -C build/linux/x64/release/bundle -czf dist/Komet-linux-x64.tar.gz .
+ tar -C build/linux/x64/release/bundle -czf dist/Qlyra-linux-x64.tar.gz .
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
@@ -196,7 +196,7 @@ jobs:
run: |
mkdir -p dist
APP=$(find build/macos/Build/Products/Release -maxdepth 1 -name "*.app" | head -1)
- ditto -c -k --keepParent "$APP" dist/Komet-macos.zip
+ ditto -c -k --keepParent "$APP" dist/Qlyra-macos.zip
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
@@ -230,7 +230,7 @@ jobs:
run: |
mkdir -p dist build/ios/Payload
cp -R build/ios/iphoneos/Runner.app build/ios/Payload/
- (cd build/ios && zip -qr ../../dist/Komet-ios-unsigned.ipa Payload)
+ (cd build/ios && zip -qr ../../dist/Qlyra-ios-unsigned.ipa Payload)
rm -rf build/ios/Payload
- name: Install ldid
run: brew install ldid
@@ -246,9 +246,9 @@ jobs:
platform-application
get-task-allow
- application-identifierru.komet.app
+ application-identifierru.qlyra.app
keychain-access-groups
- ru.komet.app
+ ru.qlyra.app
com.apple.private.security.no-container
@@ -271,7 +271,7 @@ jobs:
run: |
mkdir -p dist build/ios/Payload
cp -R build/ios/iphoneos/Runner.app build/ios/Payload/
- (cd build/ios && zip -qr ../../dist/Komet-ios-pseudosigned.ipa Payload)
+ (cd build/ios && zip -qr ../../dist/Qlyra-ios-pseudosigned.ipa Payload)
- name: Upload iOS artifact
uses: actions/upload-artifact@v4
with:
@@ -297,7 +297,7 @@ jobs:
BUILD="${{ github.event.inputs.build_number }}"
BUILD="${BUILD:-$GITHUB_RUN_NUMBER}"
echo "tag=v${BRANCH_VERSION}-dev.${BUILD}" >> "$GITHUB_OUTPUT"
- echo "name=Komet ${BRANCH_VERSION}-dev (build ${BUILD})" >> "$GITHUB_OUTPUT"
+ echo "name=Qlyra ${BRANCH_VERSION}-dev (build ${BUILD})" >> "$GITHUB_OUTPUT"
- name: List artifacts
run: ls -lhR dist
diff --git a/.github/workflows/release-main.yml b/.github/workflows/release-main.yml
index d6ea1b4..15714b7 100644
--- a/.github/workflows/release-main.yml
+++ b/.github/workflows/release-main.yml
@@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- flavor: [komet, oneme]
+ flavor: [qlyra, oneme]
steps:
- uses: actions/checkout@v3
with:
@@ -65,12 +65,12 @@ jobs:
echo "KEYSTORE_BASE64 secret not set — release will be debug-signed."
exit 0
fi
- echo "$KEYSTORE_BASE64" | base64 -d > android/app/komet-release.jks
+ echo "$KEYSTORE_BASE64" | base64 -d > android/app/qlyra-release.jks
{
echo "storePassword=$KEYSTORE_PASSWORD"
echo "keyPassword=$KEY_PASSWORD"
echo "keyAlias=$KEY_ALIAS"
- echo "storeFile=komet-release.jks"
+ echo "storeFile=qlyra-release.jks"
} > android/key.properties
echo "Release signing configured."
@@ -84,12 +84,12 @@ jobs:
run: |
F=${{ matrix.flavor }}
mkdir -p dist
- cp build/app/outputs/flutter-apk/app-$F-release.apk dist/Komet-android-$F-universal.apk
- cp build/app/outputs/flutter-apk/app-arm64-v8a-$F-release.apk dist/Komet-android-$F-arm64-v8a.apk
- cp build/app/outputs/flutter-apk/app-armeabi-v7a-$F-release.apk dist/Komet-android-$F-armeabi-v7a.apk
- cp build/app/outputs/flutter-apk/app-x86_64-$F-release.apk dist/Komet-android-$F-x86_64.apk
- cp build/app/outputs/bundle/${F}Release/app-$F-release.aab dist/Komet-android-$F.aab
- tar -czf dist/Komet-android-$F-symbols.tar.gz -C build/symbols .
+ cp build/app/outputs/flutter-apk/app-$F-release.apk dist/Qlyra-android-$F-universal.apk
+ cp build/app/outputs/flutter-apk/app-arm64-v8a-$F-release.apk dist/Qlyra-android-$F-arm64-v8a.apk
+ cp build/app/outputs/flutter-apk/app-armeabi-v7a-$F-release.apk dist/Qlyra-android-$F-armeabi-v7a.apk
+ cp build/app/outputs/flutter-apk/app-x86_64-$F-release.apk dist/Qlyra-android-$F-x86_64.apk
+ cp build/app/outputs/bundle/${F}Release/app-$F-release.aab dist/Qlyra-android-$F.aab
+ tar -czf dist/Qlyra-android-$F-symbols.tar.gz -C build/symbols .
- name: Upload Android artifacts (${{ matrix.flavor }})
uses: actions/upload-artifact@v4
@@ -122,7 +122,7 @@ jobs:
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path dist | Out-Null
- Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Komet-windows-x64.zip
+ Compress-Archive -Path build/windows/x64/runner/Release/* -DestinationPath dist/Qlyra-windows-x64.zip
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
@@ -157,7 +157,7 @@ jobs:
- name: Package Linux
run: |
mkdir -p dist
- tar -C build/linux/x64/release/bundle -czf dist/Komet-linux-x64.tar.gz .
+ tar -C build/linux/x64/release/bundle -czf dist/Qlyra-linux-x64.tar.gz .
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
@@ -189,7 +189,7 @@ jobs:
run: |
mkdir -p dist
APP=$(find build/macos/Build/Products/Release -maxdepth 1 -name "*.app" | head -1)
- ditto -c -k --keepParent "$APP" dist/Komet-macos.zip
+ ditto -c -k --keepParent "$APP" dist/Qlyra-macos.zip
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
@@ -233,9 +233,9 @@ jobs:
platform-application
get-task-allow
- application-identifierru.komet.app
+ application-identifierru.qlyra.app
keychain-access-groups
- ru.komet.app
+ ru.qlyra.app
com.apple.private.security.no-container
@@ -258,7 +258,7 @@ jobs:
run: |
mkdir -p dist build/ios/Payload
cp -R build/ios/iphoneos/Runner.app build/ios/Payload/
- (cd build/ios && zip -qr ../../dist/Komet-ios-pseudosigned.ipa Payload)
+ (cd build/ios && zip -qr ../../dist/Qlyra-ios-pseudosigned.ipa Payload)
- name: Upload iOS artifact
uses: actions/upload-artifact@v4
with:
@@ -286,7 +286,7 @@ jobs:
run: |
PUBSPEC_VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}' | cut -d'+' -f1)
echo "tag=v${PUBSPEC_VERSION}+${GITHUB_RUN_NUMBER}" >> "$GITHUB_OUTPUT"
- echo "name=Komet ${PUBSPEC_VERSION} (сборка ${GITHUB_RUN_NUMBER})" >> "$GITHUB_OUTPUT"
+ echo "name=Qlyra ${PUBSPEC_VERSION} (сборка ${GITHUB_RUN_NUMBER})" >> "$GITHUB_OUTPUT"
- name: List artifacts
run: ls -lhR dist
@@ -305,31 +305,31 @@ jobs:
## Какой файл качать
- ### Android — версия Komet (без push-уведомлений)
- - **`Komet-android-komet-arm64-v8a.apk`** — рекомендуется для большинства современных телефонов (64-битный ARM).
- - `Komet-android-komet-universal.apk` — универсальный APK, работает везде, но весит больше.
- - `Komet-android-komet-armeabi-v7a.apk` — для старых 32-битных устройств.
- - `Komet-android-komet-x86_64.apk` — для эмуляторов и редких x86-устройств.
- - `Komet-android-komet.aab` — App Bundle для публикации в Google Play (не для ручной установки).
+ ### Android — версия Qlyra (без push-уведомлений)
+ - **`Qlyra-android-qlyra-arm64-v8a.apk`** — рекомендуется для большинства современных телефонов (64-битный ARM).
+ - `Qlyra-android-qlyra-universal.apk` — универсальный APK, работает везде, но весит больше.
+ - `Qlyra-android-qlyra-armeabi-v7a.apk` — для старых 32-битных устройств.
+ - `Qlyra-android-qlyra-x86_64.apk` — для эмуляторов и редких x86-устройств.
+ - `Qlyra-android-qlyra.aab` — App Bundle для публикации в Google Play (не для ручной установки).
### Android — версия OneMe (с push-уведомлениями через Firebase)
- - **`Komet-android-oneme-arm64-v8a.apk`** — рекомендуется для большинства современных телефонов.
- - `Komet-android-oneme-universal.apk` — универсальный APK.
- - `Komet-android-oneme-armeabi-v7a.apk` — для старых 32-битных устройств.
- - `Komet-android-oneme-x86_64.apk` — для эмуляторов и x86-устройств.
- - `Komet-android-oneme.aab` — App Bundle для Google Play.
+ - **`Qlyra-android-oneme-arm64-v8a.apk`** — рекомендуется для большинства современных телефонов.
+ - `Qlyra-android-oneme-universal.apk` — универсальный APK.
+ - `Qlyra-android-oneme-armeabi-v7a.apk` — для старых 32-битных устройств.
+ - `Qlyra-android-oneme-x86_64.apk` — для эмуляторов и x86-устройств.
+ - `Qlyra-android-oneme.aab` — App Bundle для Google Play.
### Windows
- - **`Komet-windows-x64.zip`** — портативная сборка для Windows 10/11 (x64). Распаковать и запустить `Komet.exe`.
+ - **`Qlyra-windows-x64.zip`** — портативная сборка для Windows 10/11 (x64). Распаковать и запустить `Qlyra.exe`.
### Linux
- - **`Komet-linux-x64.tar.gz`** — сборка для 64-битного Linux. Требуются `libgtk-3`, `libsecret-1`, `libjsoncpp`. Распаковать и запустить бинарник.
+ - **`Qlyra-linux-x64.tar.gz`** — сборка для 64-битного Linux. Требуются `libgtk-3`, `libsecret-1`, `libjsoncpp`. Распаковать и запустить бинарник.
### macOS
- - **`Komet-macos.zip`** — `.app` для macOS. Распаковать и перетащить в `/Applications`. Приложение не нотаризовано — при первом запуске разрешите через «Системные настройки → Защита и безопасность».
+ - **`Qlyra-macos.zip`** — `.app` для macOS. Распаковать и перетащить в `/Applications`. Приложение не нотаризовано — при первом запуске разрешите через «Системные настройки → Защита и безопасность».
### iOS
- - **`Komet-ios-pseudosigned.ipa`** — IPA с псевдо-подписью (ldid).
+ - **`Qlyra-ios-pseudosigned.ipa`** — IPA с псевдо-подписью (ldid).
⚠️ Не устанавливается через App Store. Подходит для:
- jailbreak (Filza, rootless),
- TrollStore,
diff --git a/.gitignore b/.gitignore
index d108e96..a6a7e92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -136,7 +136,7 @@ agents.md
.env
.env.*
# Локальные дампы трафика и скрипты анализа (содержат секреты)
-komet.txt
+qlyra.txt
original_app.txt
fingerprint.py
PCAPdroid_*.txt
@@ -149,8 +149,5 @@ maxtun/
turnprobe/
test/live_server_probe_test.dart
-# local kolibri development: point the plugin at third_party/kolibri and the
-# Rust core at third_party/kolibri/kolibri-net instead of the published ones
pubspec_overrides.yaml
.cargo/
-third_party/kolibri/
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 31f08e1..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "cmake.sourceDirectory": "/run/media/invisedivine/Drive/! My projects/Komet/linux/runner",
- "kiroAgent.configureMCP": "Disabled"
-}
\ No newline at end of file
diff --git a/AGENTS.md b/AGENTS.md
deleted file mode 100644
index ff1e7da..0000000
--- a/AGENTS.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Не оставляй комментарии в код
-Старайся писать чистый код
-Лучше качество чем количество
-Когда при исправления какой то ошибки/добавление новой возникает ситуация 50/50 где можно выбрать починить сейчас но костылём, или чинить долго, упорно, может даже вообще не починить и переписать пол приложения - выбирай долго и упорно.
-ВМЕСТО СНЕКБАРОВ ИСПОЛЬЗУЙ НАШИ КАСТОМНЫЕ УВЕДОМЛЕНИЕ showCustomNotification(context, 'текст')
-Never leave real data in test files, including existing message contents or real IDs captured from requests. Use synthetic fixtures instead.
-Не пытайся собирать APK/AAB (flutter build apk, flutter build appbundle, gradle assemble) — сборку запускает пользователь, тебе достаточно flutter analyze
-Если делаешь кнопку, где иконка переключается перечёркнутая/неперечёркнутая (вспышка, микрофон, звук, уведомления) — она должна анимироваться lottie-иконкой, а не подменяться мгновенно: добавь спеку в SLASH_SPECS в tool/make_morph_icons.py (fill=1.0, если кнопка рисует Icon(..., fill: 1)), прогони python3 tool/make_morph_icons.py и выводи через LottieSlashIcon. Ассеты в assets/lottie/ руками не правь — только через генератор.
diff --git a/CLAUDE.md b/CLAUDE.md
index 4be5eb0..ef1588d 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,20 +4,20 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project
-Komet is a cross-platform Flutter messaging client (Android, iOS, macOS, Windows, Linux, Web) that communicates via a custom packet-based protocol with MessagePack serialization and Zstd compression.
+Qlyra is a cross-platform Flutter messaging client (Android, iOS, macOS, Windows, Linux, Web) that communicates via a custom packet-based protocol with MessagePack serialization and Zstd compression.
## Commands
```bash
flutter pub get # install dependencies
flutter analyze # lint / static analysis
-flutter run # run on connected device (default: komet flavor)
+flutter run # run on connected device (default: qlyra flavor)
flutter run --flavor oneme -t lib/main.dart # run oneme flavor (FCM)
# Android builds (release builds use obfuscation; keep symbols to de-obfuscate crashes)
-flutter build apk --release --flavor komet --obfuscate --split-debug-info=build/symbols
-flutter build apk --release --split-per-abi --flavor komet --obfuscate --split-debug-info=build/symbols
-flutter build appbundle --release --flavor komet --obfuscate --split-debug-info=build/symbols
+flutter build apk --release --flavor qlyra --obfuscate --split-debug-info=build/symbols
+flutter build apk --release --split-per-abi --flavor qlyra --obfuscate --split-debug-info=build/symbols
+flutter build appbundle --release --flavor qlyra --obfuscate --split-debug-info=build/symbols
# Other platforms
flutter build ios --release --no-codesign
@@ -35,10 +35,10 @@ Android builds require **Java 17**. Gradle memory is configured to `-Xmx4096m`.
| Flavor | App ID | Notes |
|--------|--------|-------|
-| `komet` | `ru.komet.app` | Default, no FCM |
+| `qlyra` | `ru.qlyra.app` | Default, no FCM |
| `oneme` | `ru.oneme.app` | FCM push notifications via Firebase |
-Flavor-specific Android resources live in `android/app/src/komet/` and `android/app/src/oneme/`.
+Flavor-specific Android resources live in `android/app/src/qlyra/` and `android/app/src/oneme/`.
## Architecture
@@ -97,5 +97,5 @@ Four GitHub Actions workflows in `.github/workflows/`:
- `flutter-dev.yml` — PR lint + Android build for dev branch
- `flutter-main.yml` — PR lint + all-platform builds for main branch
-- `build-android.yml` — production APKs + AAB (`komet` flavor), triggered on push to main
+- `build-android.yml` — production APKs + AAB (`qlyra` flavor), triggered on push to main
- `build-android-fcm.yml` — production APKs + AAB (`oneme` flavor with FCM), triggered on push to main
diff --git a/README.md b/README.md
index abc8f77..0ffc3b0 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,16 @@
-> [!IMPORTANT]
-> Потерялись? Возможно вы ищите старую версию Komet. Она расположена [здесь](https://github.com/KometTeam/KometOld).
----
+
-
+# Qlyra
-# Komet
-Альтернативный FOSS клиент для мессенджера MAX
+Кроссплатформенный клиент для мессенджера MAX.
-## Установка
-[Последний релиз](https://github.com/KometTeam/Komet/releases/latest) / [Telegram Канал](https://t.me/TeamKomet)
+## Android
+
+Основной вариант приложения использует идентификатор `ru.qlyra.app` и flavor `qlyra`.
## Сборка из исходного кода
+
```console
$ flutter build [windows|linux] [--release]
+$ flutter build apk --release --flavor qlyra
```
-
-## Хотите помочь?
-Нашли ошибку и сами её исправили? Сделайте Pull-Request.
diff --git a/android/.gitignore b/android/.gitignore
index e2c2cc8..cf547f7 100644
--- a/android/.gitignore
+++ b/android/.gitignore
@@ -11,6 +11,6 @@ GeneratedPluginRegistrant.java
# See https://flutter.dev/to/reference-keystore
key.properties
app/key.properties
-app/komet-release.jks
+app/qlyra-release.jks
**/*.keystore
**/*.jks
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 169f484..2f636a8 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -17,7 +17,7 @@ if (hasReleaseSigning) {
}
android {
- namespace = "ru.komet.app"
+ namespace = "ru.qlyra.app"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
@@ -32,7 +32,7 @@ android {
}
defaultConfig {
- applicationId = "ru.komet.app"
+ applicationId = "ru.qlyra.app"
minSdk = maxOf(flutter.minSdkVersion, 23)
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
@@ -54,10 +54,10 @@ android {
flavorDimensions += "distribution"
productFlavors {
- create("komet") {
+ create("qlyra") {
dimension = "distribution"
isDefault = true
- applicationId = "ru.komet.app"
+ applicationId = "ru.qlyra.app"
}
create("oneme") {
dimension = "distribution"
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 0501773..b101f0c 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -33,15 +33,15 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -104,12 +95,12 @@
+ android:icon="@mipmap/ic_launcher"
+ android:label="Qlyra"
+ android:targetActivity="ru.qlyra.app.MainActivity">
@@ -130,10 +121,10 @@
+ android:resource="@xml/qlyra_nfc_apdu"/>
@@ -175,7 +166,7 @@
android:value="2" />
+ android:value="qlyra_messages" />