Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
f23ff96
refactor: refactor sources (#619) (#620)
re2zero Apr 22, 2025
7d0dc8a
chore: [tag] New v1.1.0 tag
re2zero Apr 24, 2025
8569385
chore: New v1.1.1 tag (#622)
re2zero Apr 25, 2025
24dd8b2
fix: Fix open dir in notification issue
re2zero Apr 25, 2025
817df50
docs: Update README and docs
re2zero Apr 27, 2025
ad68569
fix: Fix the compatible communication issue
re2zero Apr 27, 2025
38852f0
fix: Fix crash issue if network disconnected.
re2zero Apr 28, 2025
95ba4f4
chore: [tag] New tag v1.1.2
re2zero Apr 29, 2025
2fb6497
chore: [tag] New tag v1.1.3
re2zero May 19, 2025
112edce
chore: [log]More logs
re2zero May 27, 2025
698bdad
fix: Improve device item handling and logging
re2zero Jun 5, 2025
591876b
fix: Enhance device discovery and history management
re2zero Jun 5, 2025
db9098b
fix: Enhance wallpaper setting functionality
re2zero Jun 5, 2025
90c050f
feat: Add NAT IP mapping solution documentation and enhance SessionWo…
re2zero Jun 6, 2025
ca7bfaf
fix: Improve service manager and single application socket handling
re2zero Jun 6, 2025
9fed942
chore: New 1.1.4 tag
re2zero Jun 12, 2025
4ce2d47
fix: Fix coredump
re2zero Jun 18, 2025
aac8073
fix: Introduce IPC name generation for service management
re2zero Jun 18, 2025
91aa320
chore: New 1.1.5 tag (#637)
re2zero Jun 18, 2025
bc29c5f
chore: Update dman's resources
dengzhongyuan365-dev Jun 19, 2025
51c0001
fix: Handle network errors
re2zero Jun 19, 2025
9729ce5
chore: New 1.1.6 tag
re2zero Jun 19, 2025
650989e
fix: Ensure timer management in ShareHelper
re2zero Jun 20, 2025
7023305
fix: Fix screen rotation issues (#643)
re2zero Jun 22, 2025
e89073d
chore: Modify AI translations (#645)
pengfeixx Jun 23, 2025
7ddfe53
chore: update changelog (#646)
pengfeixx Jun 23, 2025
2808388
chore: New 1.1.7 tag (#647)
re2zero Jun 24, 2025
d9cbf7a
chore: New 1.1.10 tag (#648)
re2zero Jun 27, 2025
e260b81
chore: more logs for common
re2zero Jul 1, 2025
076e4bc
fix: update translations file (#651)
JWWTSL Jul 1, 2025
47bbaf8
fix: update version. (#653)
JWWTSL Jul 1, 2025
8dbe606
chore: more logs for cooperation
re2zero Jul 1, 2025
f5e621b
chore: more logs for datatransfer
re2zero Jul 3, 2025
775d9ea
chore: Update Traditional Chinese translations
re2zero Jul 3, 2025
58fb3dd
fix: 添加缺失的 dfm-base 依赖库
re2zero Jul 3, 2025
9af3186
chore: New 1.1.12 tag (#656)
re2zero Jul 3, 2025
4240126
chore: Remove http web link
re2zero Jul 8, 2025
71b36b6
chore: Update the data transfer's man docs
re2zero Jul 9, 2025
1b0b975
chore: Update deepin-manual resources (#658)
dengzhongyuan365-dev Jul 10, 2025
49eb4a8
fix: update homepage url in debian/control
xzl01 Jul 24, 2025
f6d9209
chore: Update Qt version compatibility in signal connections
re2zero Jul 28, 2025
d7715f0
fix: Enhance cooperation status management
re2zero Aug 7, 2025
1bd0894
chore: New 1.1.14 tag
re2zero Aug 7, 2025
d4aa110
fix: update translations (#663)
JWWTSL Aug 8, 2025
d9c7bb7
chore: Update version to 1.1.16
dengzhongyuan365-dev Aug 13, 2025
a51cd16
chore: Update version to 1.1.17 (#666)
dengzhongyuan365-dev Aug 14, 2025
f30d0dc
fix: update translations of fr (#667)
JWWTSL Aug 21, 2025
b1b90a4
fix: fix long text was cut issue
re2zero Sep 5, 2025
354c21a
fix: disable logging for sensitive information
re2zero Sep 9, 2025
8c5e618
fix: Update notification handling to prevent showing in notification …
re2zero Sep 10, 2025
9079b94
i18n: Updates for project Deepin Desktop Environment (#672)
transifex-integration[bot] Sep 11, 2025
bda5ac2
chore: update .tx/config
BLumia Sep 11, 2025
8b6a621
chore: Update version to 1.1.19 (#674)
re2zero Sep 11, 2025
5c82365
fix: update translations of ja
JWWTSL Sep 12, 2025
eaf6437
fix: update translations of ja
JWWTSL Sep 15, 2025
3482380
fix: Disable search by self IP
re2zero Sep 16, 2025
f2f654c
fix: Local IP address display incomplete
JWWTSL Sep 17, 2025
0cbedde
fix: Add delay before application exit to ensure config is saved (#679)
re2zero Sep 17, 2025
fca797e
fix: Fix some UI issues.
re2zero Sep 18, 2025
87e9335
chore: Update version to 1.1.20 (#682)
re2zero Sep 18, 2025
a47facb
fix: Fix transfer dialog still show issue
re2zero Sep 29, 2025
0b882ca
fix: Fix not show device for NotAllow mode
re2zero Sep 29, 2025
32f2157
fix: Fix not show offline device if not same subnet.
re2zero Sep 29, 2025
37e9c6e
fix: Fix network connect tips
re2zero Sep 30, 2025
dc2019e
fix: Implement graceful shutdown process in TransferHelper (#687)
re2zero Oct 10, 2025
3bcc7f2
chore: Update version to 1.1.21 (#688)
re2zero Oct 10, 2025
f078cf9
i18n(dde-cooperation): Updates for project Deepin Desktop Environment…
transifex-integration[bot] Oct 21, 2025
0386682
fix: Add file transfer settings dialog improvements
re2zero Oct 28, 2025
b8c9713
fix: Enhance file watcher and connection history management
re2zero Oct 27, 2025
8b7eb75
fix: [CI] Fix windows building env issue. (#691)
re2zero Oct 30, 2025
2db8c25
chore: Update compiler flags for security enhancements
wangrong1069 Dec 1, 2025
0c6ed3c
chore: Update version to 1.1.23 (#694)
wangrong1069 Dec 2, 2025
b86a57f
fix(cooperation): change dirPath to QString in qInfo log
pppanghu77 Dec 22, 2025
c5d8978
fix: (data-transfer) replace QNetworkInterface with CommonUtils for I…
pppanghu77 Dec 1, 2025
30621c5
chore: improve translation tool detection
re2zero Dec 26, 2025
6f0816e
ci: add Windows MSVC 32-bit build support and improve installer packa…
re2zero Dec 30, 2025
f10db31
feat: Enable build barrier for win
re2zero Jan 6, 2026
81ae1e3
fix: Fix sw64 gcc not support pie by default (#701)
wangrong1069 Jan 7, 2026
c941e39
fix: Fix build and package setup issue
re2zero Jan 7, 2026
db4dab3
chore: Update version to 1.2.0 (#704)
re2zero Jan 15, 2026
a23bb62
ci: add opencode review workflow for PR comments
re2zero Jan 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
78 changes: 78 additions & 0 deletions .github/workflows/opencode-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: opencode-review

on:
# issue_comment covers both issues and PR comments
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]

jobs:
review:
# Only trigger in PRs (not issues), and require @opencode or /opencode trigger
if: |
(
github.event_name == 'issue_comment' &&
github.event.issue.pull_request &&
(
contains(github.event.comment.body, '@opencode') ||
contains(github.event.comment.body, '/opencode')
)
) ||
(
github.event_name == 'pull_request_review_comment' &&
(
contains(github.event.comment.body, '@opencode') ||
contains(github.event.comment.body, '/opencode')
)
)
runs-on: ubuntu-latest
permissions:
contents: read # Change to 'write' to allow OpenCode to push commits
pull-requests: write # Required to post comments (kept as write for responses)
issues: read # Change to 'write' if you enable issue workflows later
actions: read # Required to read CI results on PRs
id-token: write # Required for OIDC token generation (OpenCode GitHub App)
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: anomalyco/opencode/github@latest
env:
# ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
ZHIPU_API_KEY: ${{ secrets.ZHIPU_API_KEY }}
ZHIPU_BASE_URL: ${{ secrets.ZHIPU_BASE_URL }}
# with:
# # model: anthropic/claude-sonnet-4-20250514
# model: zai-coding-plan/glm-4.7
# use_github_token: true
# prompt: |
# Review this pull request:
# - Check for code quality issues
# - Look for potential bugs
# - Suggest improvements
with:
model: ${{ secrets.OPENCODE_PR_REVIEW_MODEL }}
use_github_token: true
share: false
prompt: |
Review this pull request with focus on:
- Code quality and best practices
- Security vulnerabilities
- Performance implications
- Breaking changes
- Test coverage
- Documentation updates needed

Please provide specific, actionable feedback.
Do not attempt to push changes, only suggest them in the review.

Additionally, update the PR description if needed:
- Summarize key changes
- Do not suggest description changes in a comment, update the description directly.
- If there is a description already, improve it rather than replacing it entirely.

Do not:
- Duplicate information in the PR description and comments.
- Make assumptions about the code outside of the diff.
- Add multiple comments on the same PR
223 changes: 181 additions & 42 deletions .github/workflows/windows-msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,90 @@ jobs:
matrix:
include:
- name: win64_msvc
os: windows-2019
os: windows-2022
build_type: Release
compiler_type: msvc2019_64
build_arch: x64
msvc_arch: x64
qt_arch: win64_msvc2019_64
qt_version: 5.15.2
qt_target: desktop
openssl_root: C:\Program Files\OpenSSL-Win64
cmake_gen: Visual Studio 17 2022
vcpkg_triplet: x64-windows-release
- name: win32_msvc
os: windows-2022
build_type: Release
compiler_type: msvc2019
build_arch: x86
msvc_arch: Win32
qt_arch: win32_msvc2019
qt_version: 5.15.2
qt_target: desktop
openssl_root: C:\Program Files (x86)\OpenSSL-Win32
cmake_gen: Visual Studio 17 2022
vcpkg_triplet: x86-windows
runs-on: ${{ matrix.os }}
env:
BUILD_TYPE: ${{ matrix.build_type }}
COMPILER_TYPE: ${{ matrix.compiler_type }}
QT_VERSION: ${{ matrix.qt_version }}
OPENSSL_ROOT_DIR: C:\Program Files\OpenSSL
OPENSSL_ROOT_DIR: ${{ matrix.openssl_root }}
OPENSSL_INCLUDE_DIR: ${{ matrix.openssl_root }}\include
OPENSSL_CRYPTO_LIBRARY: ${{ matrix.openssl_root }}\lib
steps:
# force 6.2.2 version of Inno Setup
# - name: Install Inno Setup
# Cache OpenSSL to speed up builds
# - name: '⚙️ Cache OpenSSL'
# id: cache-openssl
# uses: actions/cache@v3
# with:
# path: ${{ matrix.openssl_root }}
# key: Windows-OpenSSL-${{ matrix.build_arch }}-3.2.6

# # Install OpenSSL 3.2.6 for both x86 and x64 architectures
# - name: Install OpenSSL ${{ matrix.build_arch }}
# shell: pwsh
# run: |
# $arch = "${{ matrix.build_arch }}"
# $version = "3_2_6"
# $opensslUrl = if ($arch -eq "x64") {
# "https://slproweb.com/download/Win64OpenSSL-${version}.msi"
# } else {
# "https://slproweb.com/download/Win32OpenSSL-${version}.msi"
# }
# $installerPath = "$env:TEMP\OpenSSL-${version}_${arch}.msi"
# $installDir = "${{ matrix.openssl_root }}"

# # 下载安装包
# Invoke-WebRequest -Uri $opensslUrl -OutFile $installerPath

# # 静默安装到指定目录并等待完成
# Start-Process msiexec.exe -ArgumentList "/i $installerPath /quiet /qn INSTALLDIR=$installDir"

# # 等待安装完全完成
# Start-Sleep -Seconds 10

# - name: Verify OpenSSL installation
# run: |
# openssl version
# echo "OPENSSL_ROOT_DIR is: $env:OPENSSL_ROOT_DIR"


# - name: Verify OpenSSL cached
# if: steps.cache-openssl.outputs.cache-hit == 'true'
# shell: pwsh
# run: |
# choco install innosetup --version 6.2.2 --allow-downgrade -y
# Write-Host "Using cached OpenSSL:"
# & "${{ matrix.openssl_root }}\bin\openssl.exe" version

- name: '⚙️ Cache Qt'
id: cache-qt
uses: actions/cache@v3
with:
path: ..\Qt
key: Windows-QtCache-${{ env.QT_VERSION }}
path: ${{ env.HOME }}/Qt
key: Windows-${{ matrix.os }}-Qt-${{ env.QT_VERSION }}-${{ matrix.qt_arch }}
restore-keys: |
Windows-${{ matrix.os }}-Qt-${{ env.QT_VERSION }}-

- name: Install Qt ${{ env.QT_VERSION }}
uses: jurplel/install-qt-action@v3
Expand All @@ -43,14 +102,14 @@ jobs:
version: ${{ env.QT_VERSION }}
target: ${{ matrix.qt_target }}
arch: ${{ matrix.qt_arch }}
# cached: 'false'
# modules: 'qt5compat'
cached: ${{ steps.cache-qt.outputs.cache-hit }}

# 3.20.0 高版本无法找到OPENSSL和ZLIB
# Use CMake 3.31.x for better OpenSSL 3.x compatibility while supporting VS 2022
- name: Setup cmake
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.20.0
cmakeVersion: 3.31.5
ninjaVersion: 1.11.1

- name: Checkout
Expand All @@ -59,46 +118,133 @@ jobs:
path: source
fetch-depth: 0

- name: Build and cache vcpkg
id: vcpkg
uses: johnwason/vcpkg-action@v7
with:
pkgs: zlib openssl
# manifest-dir: ${{ github.workspace }}\source
extra-args: --classic --host-triplet=${{matrix.vcpkg_triplet}}
triplet: ${{matrix.vcpkg_triplet}}
token: ${{ github.token }}
revision: master

- name: msvc-build
id: build
shell: cmd
env:
build_arch: ${{ matrix.build_arch }}
vc_arch: ${{ matrix.msvc_arch }}
cmake_gen: Visual Studio 16 2019
cmake_gen: ${{ matrix.cmake_gen }}
COO_PROJECT: dde-cooperation
DT_PROJECT: data-transfer
BONJOUR_SDK: ${{ github.workspace }}\source\3rdparty\ext\BonjourSDK
VCPKG_INSTALLED: ${{ github.workspace }}\vcpkg\installed\${{ matrix.vcpkg_triplet }}
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" %vc_arch%
REM Use Visual Studio 2022 Enterprise (pre-installed on Windows 2022 runner)
set "VS2022_PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
if not exist "%VS2022_PATH%\VC\Auxiliary\Build\vcvarsall.bat" (
echo Visual Studio 2022 Enterprise not found at expected location!
exit /b 1
)
echo Using Visual Studio 2022 at: %VS2022_PATH%
call "%VS2022_PATH%\VC\Auxiliary\Build\vcvarsall.bat" %build_arch%

REM Initialize OpenSSL environment (based on start.bat logic)
echo ============== OpenSSL Initialization ==============
echo Setting up OpenSSL environment...

REM Add OpenSSL bin directory to PATH (following start.bat pattern)
set "PATH=%PATH%;%OPENSSL_ROOT_DIR%\bin"
echo Updated PATH: %OPENSSL_ROOT_DIR%\bin added to PATH

REM Verify OpenSSL installation (like start.bat does)
echo.
echo Verifying OpenSSL installation:
openssl version -a
echo.
echo OpenSSL environment ready
echo ================================================

REM Display key OpenSSL environment variables
echo OpenSSL Configuration:
echo OPENSSL_ROOT_DIR: %OPENSSL_ROOT_DIR%
echo OPENSSL_INCLUDE_DIR: %OPENSSL_INCLUDE_DIR%
echo OPENSSL_CRYPTO_LIBRARY: %OPENSSL_CRYPTO_LIBRARY%
echo.

mkdir build && cd build
mkdir installer-inno
cmake -G "%cmake_gen%" -A %vc_arch% -D CMAKE_BUILD_TYPE=%BUILD_TYPE% -D APP_VERSION="${{ github.ref_name }}" ../source/
echo Current working directory: %CD%
echo Source directory: %GITHUB_WORKSPACE%\source
echo Using vcpkg triplet: ${{ matrix.vcpkg_triplet }}
echo Vcpkg toolchain file: %GITHUB_WORKSPACE%\vcpkg\scripts\buildsystems\vcpkg.cmake

cmake -G "%cmake_gen%" -A %vc_arch% -D CMAKE_BUILD_TYPE=%BUILD_TYPE% ^
-D CMAKE_TOOLCHAIN_FILE="%GITHUB_WORKSPACE%\vcpkg\scripts\buildsystems\vcpkg.cmake" ^
-D VCPKG_TARGET_TRIPLET=${{ matrix.vcpkg_triplet }} ^
-D APP_VERSION="${{ github.ref_name }}" "%GITHUB_WORKSPACE%\source"

cmake --build . --config %BUILD_TYPE%

echo ------------copy files to output directory------------

if exist output\%BUILD_TYPE% (
copy output\%BUILD_TYPE%\* output\%COO_PROJECT%\%BUILD_TYPE%\ > NUL
del output\%COO_PROJECT%\%BUILD_TYPE%\quazip5.* > NUL
copy "%OPENSSL_ROOT_DIR%\libcrypto-1_1-x64.dll" output\%COO_PROJECT%\%BUILD_TYPE%\ > NUL
copy "%OPENSSL_ROOT_DIR%\libssl-1_1-x64.dll" output\%COO_PROJECT%\%BUILD_TYPE%\ > NUL

mkdir installer-inno\%COO_PROJECT%
copy "%BONJOUR_SDK%\Bonjour64.msi" installer-inno\%COO_PROJECT%\ > NUL
if exist output\%COO_PROJECT%\%BUILD_TYPE%\vc_redist.x64.exe (
move output\%COO_PROJECT%\%BUILD_TYPE%\vc_redist.x64.exe installer-inno\%COO_PROJECT%\ > NUL
)


copy output\%BUILD_TYPE%\quazip5.* output\%DT_PROJECT%\%BUILD_TYPE%\ > NUL
copy "%OPENSSL_ROOT_DIR%\libcrypto-1_1-x64.dll" output\%DT_PROJECT%\%BUILD_TYPE%\ > NUL
copy "%OPENSSL_ROOT_DIR%\libssl-1_1-x64.dll" output\%DT_PROJECT%\%BUILD_TYPE%\ > NUL
mkdir installer-inno\%DT_PROJECT%
if exist output\%DT_PROJECT%\%BUILD_TYPE%\vc_redist.x64.exe (
move output\%DT_PROJECT%\%BUILD_TYPE%\vc_redist.x64.exe installer-inno\%DT_PROJECT%\ > NUL
)
REM Set architecture-specific file names
if "%build_arch%"=="x86" (
set OPENSSL_CRYPTO=libcrypto-3.dll
set OPENSSL_SSL=libssl-3.dll
set BONJOUR_FILE=Bonjour.msi
) else (
set OPENSSL_CRYPTO=libcrypto-3-x64.dll
set OPENSSL_SSL=libssl-3-x64.dll
set BONJOUR_FILE=Bonjour64.msi
)

REM Create output directories if they don't exist
if not exist "output\%COO_PROJECT%\%BUILD_TYPE%" mkdir "output\%COO_PROJECT%\%BUILD_TYPE%"
if not exist "output\%DT_PROJECT%\%BUILD_TYPE%" mkdir "output\%DT_PROJECT%\%BUILD_TYPE%"

REM Copy files for cooperation
if exist "output\%BUILD_TYPE%\*" (
copy output\%BUILD_TYPE%\* output\%COO_PROJECT%\%BUILD_TYPE%\
REM quazip is only used by data-transfer, not cooperation
if exist "output\%COO_PROJECT%\%BUILD_TYPE%\quazip*" del output\%COO_PROJECT%\%BUILD_TYPE%\quazip*
)

REM Copy OpenSSL DLLs from vcpkg installed directory
if exist "%VCPKG_INSTALLED%\bin\%OPENSSL_CRYPTO%" (
copy "%VCPKG_INSTALLED%\bin\%OPENSSL_CRYPTO%" output\%COO_PROJECT%\%BUILD_TYPE%\
) else (
echo WARNING: OpenSSL DLL not found in vcpkg: %VCPKG_INSTALLED%\bin\%OPENSSL_CRYPTO%
)

if exist "%VCPKG_INSTALLED%\bin\%OPENSSL_SSL%" (
copy "%VCPKG_INSTALLED%\bin\%OPENSSL_SSL%" output\%COO_PROJECT%\%BUILD_TYPE%\
) else (
echo WARNING: OpenSSL DLL not found in vcpkg: %VCPKG_INSTALLED%\bin\%OPENSSL_SSL%
)

REM Copy Bonjour SDK
if exist "%BONJOUR_SDK%\%BONJOUR_FILE%" (
copy "%BONJOUR_SDK%\%BONJOUR_FILE%" output\%COO_PROJECT%\%BUILD_TYPE%\
) else (
echo Remember to copy supporting binaries and configuration files!
echo WARNING: Bonjour file not found: %BONJOUR_SDK%\%BONJOUR_FILE%
)

REM Copy files for data-transfer
REM quazip is only built and used by data-transfer
if exist "output\%BUILD_TYPE%\quazip.dll" (
copy output\%BUILD_TYPE%\quazip.dll output\%DT_PROJECT%\%BUILD_TYPE%\
) else (
echo WARNING: quazip.dll not found in output\%BUILD_TYPE%
)

if exist "%VCPKG_INSTALLED%\bin\%OPENSSL_CRYPTO%" (
copy "%VCPKG_INSTALLED%\bin\%OPENSSL_CRYPTO%" output\%DT_PROJECT%\%BUILD_TYPE%\
)

if exist "%VCPKG_INSTALLED%\bin\%OPENSSL_SSL%" (
copy "%VCPKG_INSTALLED%\bin\%OPENSSL_SSL%" output\%DT_PROJECT%\%BUILD_TYPE%\
)

echo Build completed successfully
Expand All @@ -113,19 +259,12 @@ jobs:
with:
filepath: build/dde-cooperation-setup.iss

- name: Make Installer Directories
run: |
move build/installer-inno/deepin-cooperation-* build/installer-inno/dde-cooperation/ > NUL
powershell -Command "Compress-Archive -Path build/installer-inno/dde-cooperation/* -DestinationPath build/installer-inno/dde-cooperation.zip"
move build/installer-inno/deepin-datatransfer-* build/installer-inno/data-transfer/ > NUL
powershell -Command "Compress-Archive -Path build/installer-inno/data-transfer/* -DestinationPath build/installer-inno/deepin-data-transfer.zip"

- name: Create Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build/installer-inno/*.zip
files: build/installer-inno/*.exe
generate_release_notes: true
draft: true
Loading
Loading