-
Notifications
You must be signed in to change notification settings - Fork 53
feat(mining): mining page, iOS/Android builds, continuous mining #1373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
InspektorKek
wants to merge
128
commits into
master
Choose a base branch
from
feat/tauri-mining
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
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
734c6cf
feat(tauri-app): working offline signer | modal in progress
0b58621
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
02df9e7
feat(tauri-app): working mnemonics modal
3c9419b
Create build_tauri_app.yml
dr-leevsey 966df5d
fix(tauri-build): removed empty step
56dd77f
chore(tauri-app): trigger manually
cf53df6
feat(tauri-app): connect wallet modal updates and cleanup
5c6c6fa
feat(tauri-app): signer modal window
7021878
feat(tauri-app): cancel button and basic validation
2e01ed7
fix(tauri-app): webkit does not support persistent storage
be48fa2
feat(offline-signer): signer modal used to sign transaction
e99509a
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
2080067
feat(tauri-app): use workers in app | modals refactoring
e7936b1
Merge branch 'chore/build-tauri-app' of https://github.com/cybercongr…
05168c6
feat(tauri-app): switched signer from modal to /sign page
0de0392
feat(tauri-app): changed action bar state management moved to redux
fa3ce94
feat(tauri-app): fetch and run kubo on app start
1e61c49
feat(tarui-app): detect platform when downloading ipfs
5c428fb
feat(tauri-app): wip
0fc73ab
feat(tauri-app): action bar refactoring, ipfs initialization after do…
ca86120
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
dr-leevsey 619a6fa
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
6bef546
- feat(tauri-app): cozodb with rocksdb as an engine
9ae6107
fix(tauri-app): should serialize cozoDB output with native methods
197d3f7
chore(tauri-app): version bump
d87d467
add tauriScript to build opt
mrlp4 f1472ed
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
2b8eff3
debug tauri build workflow
mrlp4 8dc94d0
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
ffe4957
Tauri app build action (#1257)
dr-leevsey a4bec24
chore(tauri-app): increased tauri window initial size
edea2c7
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
9dd6f9d
rename access token
mrlp4 77e3cd1
rename access token for actions (#1266)
mrlp4 078f995
feat(tauri-app): #1262 Add option to enable internal signer confirmat…
50d1b8b
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
f41ddf1
feat(tauri-app): make signer a separate app page with URL params
4967920
chore(tauri-app): merge branch master of https://github.com/cybercong…
3ad90ac
chore(tauri-app): rust deps upgraded and uncommented browser specific…
6cbe52d
chore(cyb): fixed phrasing
7f18399
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
e7eb12f
chore(cyb): jsx to tsx
3b357d4
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
48a6cd8
cleanup
d939ada
merge from master into tauri app
ef9dd19
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
3f7447a
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
eb3aa1c
Merge branch 'feat/tauri-app' of https://github.com/cybercongress/cyb…
377aa86
fix(tauri-app): lost merges and enabled keplr signer
55076b4
fix(tauri-app): error on fetching transaction
0398c17
Merge branch master of https://github.com/cybercongress/cyb-ts into f…
45c710a
feat(tauri-app): sign full screen modal instead of global transaction…
a2700b9
fix(tauri-app): offline signer when keplr not available and getting g…
c3ec103
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
7eeb994
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
4c50514
fix(tauri-app): version bump and review comments
3c0eb6e
fix(tauri-app): review comments
d39f95c
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
b2be0e7
feat(tauri-app): restart kubo on reconnect | fix: concurrency issue f…
469ff12
chore(tauri-app): version bump
67ffb1e
chore(tauri-app): consider to use yarn.lock when build on pipeline
e9d2bf9
Merge branch 'master' of https://github.com/cybercongress/cyb-ts into…
324e1b6
fix(tauri-app): start ipfs before app has started
c0aee7b
feat(tauri-app): load latest ipfs version
0afa6b8
feat(tauri-app): basic splashscreen implementation
6d15c8c
feat(tauri-app): splashscreen
31e911a
feat(mining): full mining page, iOS/Android builds, continuous mining
4908dfc
chore(merge): resolve conflicts with origin/master
474eea5
feat(mining): add dedicated mining icon to app menu
fff6b0d
feat(build): add Makefile for cross-platform build system
d608590
fix(build): make Makefile cross-platform (macOS + Ubuntu)
421efd8
fix(tauri): use correct lib crate name app_lib in main.rs
8118733
feat(icons): replace app icon with robot eye from cyb branding
cab5fc0
feat(build): add 'make icons' to generate app icons from SVG
2b3f503
docs(readme): add Makefile build instructions for all platforms
c871c22
feat(mobile): auto-generate wallet for new users, show Settings button
332539f
feat(mining): auto-activate new accounts, proof submission queue
56b64e0
feat(mining): relay proofs for new accounts, fix LI mined counter
432662a
feat(mining): lock relay endpoint and use uhash-core v0.2.9
92f5e27
chore(git): stop tracking .DS_Store
c45d5f0
feat(mining): show lithium epoch/target/proof stats
2ab59d6
feat(mining): add network hashrate and peer estimate to dashboard
dee4d93
feat(mining): switch to Lithium v1 economic model with staking, refer…
41a4af4
Merge remote-tracking branch 'origin/master' into feat/tauri-mining
8ff6348
feat(tauri): fix mining resume, IPFS connectivity, signing & notariza…
2ae1e70
feat(tauri): CI yarn→deno, iOS/Android signing, IPFS & caching fixes
4ad88f1
fix: auto-generated wallet coexists with imported accounts
ace61ab
fix: move clearState above useEffect to avoid TDZ error
20ff588
fix: mining hashrate estimation, reward calc, and refresh countdown
b6f8f15
fix: serialize websocket errors to strings for Comlink transfer
dfeb169
feat(tauri): hide Keplr buttons and add build-tauri to Makefile
c98e26f
Merge branch 'master' into feat/tauri-mining
5771899
fix: account creation, multi-account switching and mining safety
44bfdb4
feat: devtools toggle for desktop and mobile debugging
34ed698
fix: cleanup rspack config, refactor balance/vesting hooks, improve p…
9c2a1b5
fix: update robot logo
saint-Joy 5e6a2ad
fix: update cyb logo
saint-Joy b7d4e5d
fix: use uhash-prover 0.4.3 Solver trait, fix hashrate inflation
2b5ce07
fix: update alpha_permille → alpha_micros for litium-mine v0.3.0
a95efb6
update: new icon
b2d2e1b
fix: eliminate WebKit 85% CPU from D3 timer cascade, disable graph du…
7c32cca
fix: remove global input:focus placeholder opacity:0 causing WebKit r…
70265a6
feat: persistent mining with app-level status monitor
84bf2aa
fix: add optional chaining and reduce retries in IPFS hooks
a5b2414
merge: resolve conflict in deleted browser.rs
25a4df1
fix: eliminate 85% CPU drain from RxJS bufferTime(0) cascade
94fe4ba
update: new app icons, portal menu glow icon, menu styling
584d0fa
fix: relay activates accounts instead of submitting proofs, add Expor…
ea175fd
feat: cyb-boot thin installer + desktop download + macOS CI
f27ebcf
ci: trigger macOS release on feat/tauri-mining push
4248801
ci: pin Rust 1.93.0 to fix ring 0.17.14 build on CI
1836dc1
ci: set MACOSX_DEPLOYMENT_TARGET=11.0 to fix ring arm64 features
f1c387e
ci: add RUSTFLAGS target-cpu=apple-m1 to fix ring feature detection
dd0c5df
Merge branch 'master' into feat/tauri-mining
4becdb9
feat: deep links + enhanced mining log export
2212cd2
feat: move cyb-boot server to Cyberproxy + webhook CI deploy
32d4599
feat: mining UI, tauri mining commands, deep links improvements
1533882
fix: indent plist heredoc to fix YAML parsing in CI workflow
2fff53c
fix: rename boot artifacts to boot_cyb.zip/Boot Cyb.app + improve boo…
aef540e
fix: bootstrap.json should override existing wallet on desktop
942142c
feat: update download section — platform-aware buttons + new copy
8c401f0
feat: native save dialog for mining log export on desktop
650de61
fix: referral link copies cyb.ai URL instead of tauri:// on desktop
7fa866c
fix: smooth hashrate display + add retry queue and sleep/wake recovery
1c6211c
fix: event-driven refresh, local sequence tracking, session-scoped ex…
171d26a
fix: don't reset session LI counter on mining restart
1c971af
fix: mining dashboard clarity — drop misleading emission rates, add e…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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, '-') }} | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.