Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
1c62021
feat(tauri-app): initial tauri setup
May 13, 2024
734c6cf
feat(tauri-app): working offline signer | modal in progress
May 23, 2024
0b58621
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Jun 2, 2024
02df9e7
feat(tauri-app): working mnemonics modal
Jun 10, 2024
3c9419b
Create build_tauri_app.yml
dr-leevsey Jun 11, 2024
966df5d
fix(tauri-build): removed empty step
Jun 11, 2024
56dd77f
chore(tauri-app): trigger manually
Jun 11, 2024
cf53df6
feat(tauri-app): connect wallet modal updates and cleanup
Jun 16, 2024
5c6c6fa
feat(tauri-app): signer modal window
Jun 17, 2024
7021878
feat(tauri-app): cancel button and basic validation
Jun 17, 2024
2e01ed7
fix(tauri-app): webkit does not support persistent storage
Jun 18, 2024
be48fa2
feat(offline-signer): signer modal used to sign transaction
Jun 19, 2024
e99509a
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Jun 19, 2024
2080067
feat(tauri-app): use workers in app | modals refactoring
Jun 21, 2024
e7936b1
Merge branch 'chore/build-tauri-app' of https://github.com/cybercongr…
Jun 30, 2024
05168c6
feat(tauri-app): switched signer from modal to /sign page
Jul 3, 2024
0de0392
feat(tauri-app): changed action bar state management moved to redux
Jul 8, 2024
fa3ce94
feat(tauri-app): fetch and run kubo on app start
Jul 10, 2024
1e61c49
feat(tarui-app): detect platform when downloading ipfs
Jul 11, 2024
5c428fb
feat(tauri-app): wip
Jul 21, 2024
0fc73ab
feat(tauri-app): action bar refactoring, ipfs initialization after do…
Jul 26, 2024
ca86120
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
dr-leevsey Jul 31, 2024
619a6fa
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Aug 3, 2024
6bef546
- feat(tauri-app): cozodb with rocksdb as an engine
Aug 8, 2024
9ae6107
fix(tauri-app): should serialize cozoDB output with native methods
Aug 9, 2024
197d3f7
chore(tauri-app): version bump
Aug 13, 2024
d87d467
add tauriScript to build opt
mrlp4 Aug 13, 2024
f1472ed
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Aug 15, 2024
2b8eff3
debug tauri build workflow
mrlp4 Aug 19, 2024
8dc94d0
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Aug 20, 2024
ffe4957
Tauri app build action (#1257)
dr-leevsey Aug 20, 2024
a4bec24
chore(tauri-app): increased tauri window initial size
Aug 24, 2024
edea2c7
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
Aug 24, 2024
9dd6f9d
rename access token
mrlp4 Aug 25, 2024
77e3cd1
rename access token for actions (#1266)
mrlp4 Aug 25, 2024
078f995
feat(tauri-app): #1262 Add option to enable internal signer confirmat…
Aug 25, 2024
50d1b8b
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
Aug 25, 2024
f41ddf1
feat(tauri-app): make signer a separate app page with URL params
Aug 29, 2024
4967920
chore(tauri-app): merge branch master of https://github.com/cybercong…
Sep 22, 2024
3ad90ac
chore(tauri-app): rust deps upgraded and uncommented browser specific…
Sep 23, 2024
6cbe52d
chore(cyb): fixed phrasing
Sep 29, 2024
7f18399
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Sep 29, 2024
e7eb12f
chore(cyb): jsx to tsx
Sep 30, 2024
3b357d4
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Oct 3, 2024
48a6cd8
cleanup
Oct 3, 2024
d939ada
merge from master into tauri app
Oct 6, 2024
ef9dd19
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
Oct 7, 2024
3f7447a
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
Oct 7, 2024
eb3aa1c
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
Oct 7, 2024
377aa86
fix(tauri-app): lost merges and enabled keplr signer
Oct 7, 2024
55076b4
fix(tauri-app): error on fetching transaction
Oct 7, 2024
0398c17
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
Oct 11, 2024
45c710a
feat(tauri-app): sign full screen modal instead of global transaction…
Oct 13, 2024
a2700b9
fix(tauri-app): offline signer when keplr not available and getting g…
Oct 17, 2024
c3ec103
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Oct 18, 2024
7eeb994
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Oct 19, 2024
4c50514
fix(tauri-app): version bump and review comments
Oct 19, 2024
3c0eb6e
fix(tauri-app): review comments
Oct 19, 2024
d39f95c
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Nov 18, 2024
b2be0e7
feat(tauri-app): restart kubo on reconnect | fix: concurrency issue f…
Nov 23, 2024
469ff12
chore(tauri-app): version bump
Nov 23, 2024
67ffb1e
chore(tauri-app): consider to use yarn.lock when build on pipeline
Nov 27, 2024
e9d2bf9
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
Dec 3, 2024
324e1b6
fix(tauri-app): start ipfs before app has started
Dec 5, 2024
c0aee7b
feat(tauri-app): load latest ipfs version
Dec 8, 2024
0afa6b8
feat(tauri-app): basic splashscreen implementation
Dec 8, 2024
6d15c8c
feat(tauri-app): splashscreen
Dec 27, 2024
31e911a
feat(mining): full mining page, iOS/Android builds, continuous mining
Feb 14, 2026
4908dfc
chore(merge): resolve conflicts with origin/master
Feb 14, 2026
474eea5
feat(mining): add dedicated mining icon to app menu
Feb 14, 2026
fff6b0d
feat(build): add Makefile for cross-platform build system
Feb 14, 2026
d608590
fix(build): make Makefile cross-platform (macOS + Ubuntu)
Feb 14, 2026
421efd8
fix(tauri): use correct lib crate name app_lib in main.rs
Feb 14, 2026
8118733
feat(icons): replace app icon with robot eye from cyb branding
Feb 15, 2026
cab5fc0
feat(build): add 'make icons' to generate app icons from SVG
Feb 15, 2026
2b3f503
docs(readme): add Makefile build instructions for all platforms
Feb 15, 2026
c871c22
feat(mobile): auto-generate wallet for new users, show Settings button
Feb 15, 2026
332539f
feat(mining): auto-activate new accounts, proof submission queue
Feb 15, 2026
56b64e0
feat(mining): relay proofs for new accounts, fix LI mined counter
Feb 15, 2026
432662a
feat(mining): lock relay endpoint and use uhash-core v0.2.9
Feb 16, 2026
92f5e27
chore(git): stop tracking .DS_Store
Feb 16, 2026
c45d5f0
feat(mining): show lithium epoch/target/proof stats
Feb 18, 2026
2ab59d6
feat(mining): add network hashrate and peer estimate to dashboard
Feb 21, 2026
dee4d93
feat(mining): switch to Lithium v1 economic model with staking, refer…
Feb 24, 2026
41a4af4
Merge remote-tracking branch 'origin/master' into feat/tauri-mining
Feb 24, 2026
8ff6348
feat(tauri): fix mining resume, IPFS connectivity, signing & notariza…
Feb 25, 2026
2ae1e70
feat(tauri): CI yarn→deno, iOS/Android signing, IPFS & caching fixes
Feb 25, 2026
4ad88f1
fix: auto-generated wallet coexists with imported accounts
Feb 25, 2026
ace61ab
fix: move clearState above useEffect to avoid TDZ error
Feb 25, 2026
20ff588
fix: mining hashrate estimation, reward calc, and refresh countdown
Feb 25, 2026
b6f8f15
fix: serialize websocket errors to strings for Comlink transfer
Feb 26, 2026
dfeb169
feat(tauri): hide Keplr buttons and add build-tauri to Makefile
Feb 26, 2026
c98e26f
Merge branch 'master' into feat/tauri-mining
Feb 26, 2026
5771899
fix: account creation, multi-account switching and mining safety
Feb 26, 2026
44bfdb4
feat: devtools toggle for desktop and mobile debugging
Feb 26, 2026
34ed698
fix: cleanup rspack config, refactor balance/vesting hooks, improve p…
Feb 26, 2026
9c2a1b5
fix: update robot logo
saint-Joy Feb 27, 2026
5e6a2ad
fix: update cyb logo
saint-Joy Feb 27, 2026
b7d4e5d
fix: use uhash-prover 0.4.3 Solver trait, fix hashrate inflation
Feb 27, 2026
2b5ce07
fix: update alpha_permille → alpha_micros for litium-mine v0.3.0
Feb 27, 2026
a95efb6
update: new icon
Feb 27, 2026
b2d2e1b
fix: eliminate WebKit 85% CPU from D3 timer cascade, disable graph du…
Feb 28, 2026
7c32cca
fix: remove global input:focus placeholder opacity:0 causing WebKit r…
Feb 28, 2026
70265a6
feat: persistent mining with app-level status monitor
Mar 5, 2026
84bf2aa
fix: add optional chaining and reduce retries in IPFS hooks
Mar 5, 2026
a5b2414
merge: resolve conflict in deleted browser.rs
Mar 5, 2026
25a4df1
fix: eliminate 85% CPU drain from RxJS bufferTime(0) cascade
Mar 6, 2026
94fe4ba
update: new app icons, portal menu glow icon, menu styling
Mar 6, 2026
584d0fa
fix: relay activates accounts instead of submitting proofs, add Expor…
Mar 6, 2026
ea175fd
feat: cyb-boot thin installer + desktop download + macOS CI
Mar 6, 2026
f27ebcf
ci: trigger macOS release on feat/tauri-mining push
Mar 6, 2026
4248801
ci: pin Rust 1.93.0 to fix ring 0.17.14 build on CI
Mar 6, 2026
1836dc1
ci: set MACOSX_DEPLOYMENT_TARGET=11.0 to fix ring arm64 features
Mar 6, 2026
f1c387e
ci: add RUSTFLAGS target-cpu=apple-m1 to fix ring feature detection
Mar 6, 2026
dd0c5df
Merge branch 'master' into feat/tauri-mining
Mar 7, 2026
4becdb9
feat: deep links + enhanced mining log export
Mar 7, 2026
2212cd2
feat: move cyb-boot server to Cyberproxy + webhook CI deploy
Mar 7, 2026
32d4599
feat: mining UI, tauri mining commands, deep links improvements
Mar 7, 2026
1533882
fix: indent plist heredoc to fix YAML parsing in CI workflow
Mar 7, 2026
2fff53c
fix: rename boot artifacts to boot_cyb.zip/Boot Cyb.app + improve boo…
Mar 7, 2026
aef540e
fix: bootstrap.json should override existing wallet on desktop
Mar 7, 2026
942142c
feat: update download section — platform-aware buttons + new copy
Mar 7, 2026
8c401f0
feat: native save dialog for mining log export on desktop
Mar 7, 2026
650de61
fix: referral link copies cyb.ai URL instead of tauri:// on desktop
Mar 7, 2026
7fa866c
fix: smooth hashrate display + add retry queue and sleep/wake recovery
Mar 8, 2026
1c6211c
fix: event-driven refresh, local sequence tracking, session-scoped ex…
Mar 8, 2026
171d26a
fix: don't reset session LI counter on mining restart
Mar 8, 2026
1c971af
fix: mining dashboard clarity — drop misleading emission rates, add e…
Mar 9, 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
  •  
  •  
  •  
231 changes: 231 additions & 0 deletions .github/workflows/build_tauri_app.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
name: 'Build Tauri Desktop App'

on:
push:
tags:
- 'v*'
workflow_dispatch:

env:
NODE_OPTIONS: '--max-old-space-size=8192'

jobs:
# macOS builds with code signing + notarization
build-macos:
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
os: macos-14
name: macOS-ARM64
- target: x86_64-apple-darwin
os: macos-latest
name: macOS-x64

runs-on: ${{ matrix.os }}
name: Cyb ${{ matrix.name }}

steps:
- uses: actions/checkout@v4

- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Install dependencies
run: deno install

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'

- name: Install Tauri CLI
run: cargo install tauri-cli

# Import signing certificates into a temporary keychain
- name: Import Apple certificates
if: env.APPLE_CERTIFICATE != ''
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_INSTALLER_CERTIFICATE: ${{ secrets.APPLE_INSTALLER_CERTIFICATE }}
APPLE_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }}
run: |
KEYCHAIN_PATH="$RUNNER_TEMP/app-signing.keychain-db"
KEYCHAIN_PASSWORD="$(openssl rand -hex 16)"
security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"

# Import Developer ID Application certificate
APP_CERT_PATH="$RUNNER_TEMP/app_cert.p12"
echo "$APPLE_CERTIFICATE" | base64 --decode > "$APP_CERT_PATH"
security import "$APP_CERT_PATH" -P "$APPLE_CERTIFICATE_PASSWORD" \
-A -t cert -f pkcs12 -k "$KEYCHAIN_PATH"
rm "$APP_CERT_PATH"

# Import Developer ID Installer certificate
if [[ -n "$APPLE_INSTALLER_CERTIFICATE" ]]; then
INSTALLER_CERT_PATH="$RUNNER_TEMP/installer_cert.p12"
echo "$APPLE_INSTALLER_CERTIFICATE" | base64 --decode > "$INSTALLER_CERT_PATH"
security import "$INSTALLER_CERT_PATH" -P "$APPLE_INSTALLER_CERTIFICATE_PASSWORD" \
-A -t cert -f pkcs12 -k "$KEYCHAIN_PATH"
rm "$INSTALLER_CERT_PATH"
fi

security list-keychain -d user -s "$KEYCHAIN_PATH"
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"

# Write App Store Connect API key for notarization
- name: Write API key for notarization
if: env.APPLE_API_KEY_BASE64 != ''
env:
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
run: |
mkdir -p "$RUNNER_TEMP/private_keys"
echo "$APPLE_API_KEY_BASE64" | base64 --decode > "$RUNNER_TEMP/private_keys/AuthKey_${APPLE_API_KEY}.p8"

# Build .app with Tauri (signed via APPLE_SIGNING_IDENTITY)
- name: Build Tauri App
run: cargo tauri build --target ${{ matrix.target }}
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY_PATH: ${{ runner.temp }}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY }}.p8

# Build signed+notarized .pkg
- name: Build .pkg
env:
PKG_SIGNING_IDENTITY: ${{ secrets.PKG_SIGNING_IDENTITY }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY_PATH: ${{ runner.temp }}/private_keys/AuthKey_${{ secrets.APPLE_API_KEY }}.p8
run: |
./src-tauri/scripts/macos-pkg.sh \
--app-path "src-tauri/target/${{ matrix.target }}/release/bundle/macos/cyb.app" \
--output-dir "src-tauri/target/${{ matrix.target }}/release/bundle/pkg"

# Cleanup keychain
- name: Cleanup Apple keychain
if: always()
run: |
KEYCHAIN_PATH="$RUNNER_TEMP/app-signing.keychain-db"
if security list-keychains 2>/dev/null | grep -q "$KEYCHAIN_PATH"; then
security delete-keychain "$KEYCHAIN_PATH"
fi

- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: Cyb-${{ matrix.name }}
path: |
src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg
src-tauri/target/${{ matrix.target }}/release/bundle/pkg/*.pkg

# Linux + Windows builds
build-desktop:
strategy:
fail-fast: false
matrix:
include:
- platform: ubuntu-22.04
target: x86_64-unknown-linux-gnu
name: Linux-x64
- platform: windows-latest
target: x86_64-pc-windows-msvc
name: Windows-x64

runs-on: ${{ matrix.platform }}
name: Cyb ${{ matrix.name }}

steps:
- uses: actions/checkout@v4

- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

- name: Set up Deno
uses: denoland/setup-deno@v2
with:
deno-version: v2.x

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'

- name: Install dependencies
run: deno install

- name: Install Tauri CLI
run: cargo install tauri-cli

- name: Build Tauri App
run: cargo tauri build --target ${{ matrix.target }}

- name: Upload Linux artifacts
if: matrix.platform == 'ubuntu-22.04'
uses: actions/upload-artifact@v4
with:
name: Cyb-${{ matrix.name }}
path: |
src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb
src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage

- name: Upload Windows artifacts
if: matrix.platform == 'windows-latest'
uses: actions/upload-artifact@v4
with:
name: Cyb-${{ matrix.name }}
path: |
src-tauri/target/${{ matrix.target }}/release/bundle/msi/*.msi
src-tauri/target/${{ matrix.target }}/release/bundle/nsis/*.exe

release:
needs: [build-macos, build-desktop]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
permissions:
contents: write

steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: artifacts/**/*
generate_release_notes: true
draft: true
prerelease: ${{ contains(github.ref, '-') }}
Loading
Loading