Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
37bb4cd
Add production L1 hq implementation snapshot
May 14, 2026
4a047b5
Add local FlowChain wallet page
May 14, 2026
640a061
Make wallet API fallback to active host
FlowmemoryAI May 14, 2026
5b88331
Redesign Flowchain wallet console
FlowmemoryAI May 14, 2026
f381bdb
Package Flowchain wallet desktop app
FlowmemoryAI May 14, 2026
91af54f
Add wallet app distribution builds
FlowmemoryAI May 14, 2026
05a3afd
Fix desktop wallet routing runtime
FlowmemoryAI May 14, 2026
edf377d
Add live-chain goals and wallet runtime send
FlowmemoryAI May 14, 2026
a086cd5
Fix desktop wallet local creation
FlowmemoryAI May 14, 2026
e0577b0
Add FlowChain RPC discovery readiness gate
FlowmemoryAI May 14, 2026
7327dee
Add runtime-backed FlowChain RPC e2e
FlowmemoryAI May 14, 2026
4b8afe4
Add FlowChain SDK docs goal prompt
FlowmemoryAI May 15, 2026
2cc0ae0
Add FlowChain live infra RPC goal prompt
FlowmemoryAI May 15, 2026
3e36ddc
Add FlowChain live infra readiness checks
FlowmemoryAI May 15, 2026
32e75ad
Complete FlowChain live infra readiness
FlowmemoryAI May 16, 2026
017ce7a
Add FlowChain backup restore proofing
FlowmemoryAI May 16, 2026
e4d8b2d
Refresh FlowChain service status evidence
FlowmemoryAI May 16, 2026
e71e388
Add FlowChain ops snapshot reporting
FlowmemoryAI May 16, 2026
8403414
Add public RPC deployment bundle
FlowmemoryAI May 16, 2026
fbe7a96
Fix public RPC bundle markdown generation
FlowmemoryAI May 16, 2026
67fa667
Add autonomous FlowChain worker goal queue
FlowmemoryAI May 16, 2026
053b41a
Add FlowChain production truth table
FlowmemoryAI May 16, 2026
346f587
Harden FlowChain completion audit gating
FlowmemoryAI May 16, 2026
c435e0f
Harden public RPC abuse gates
FlowmemoryAI May 16, 2026
55468d3
Add FlowChain incident drill gate
FlowmemoryAI May 16, 2026
9673e93
Harden FlowChain backup restore proof
FlowmemoryAI May 16, 2026
931a39a
Harden public RPC and bridge credit state
FlowmemoryAI May 16, 2026
4d711eb
Refresh FlowChain audit and dev ecosystem goals
FlowmemoryAI May 16, 2026
16774f9
Add FlowChain developer SDK devkit slice
FlowmemoryAI May 16, 2026
3d0d5d8
Add devkit local wallet send
FlowmemoryAI May 16, 2026
3c1d910
Harden FlowChain service port handoff
FlowmemoryAI May 16, 2026
81eab3c
Wire dev pack into FlowChain release gates
FlowmemoryAI May 16, 2026
9539196
Validate external tester packet smoke
FlowmemoryAI May 16, 2026
3248b66
Add Base bridge cursor scanning
FlowmemoryAI May 16, 2026
323ba08
Harden live L1 release gates
FlowmemoryAI May 16, 2026
9ad7f31
Expand FlowChain tester gateway and dev ecosystem
FlowmemoryAI May 17, 2026
e101312
Refresh FlowChain service status evidence
FlowmemoryAI May 17, 2026
bf6ec71
Recover FlowChain node PID during service checks
FlowmemoryAI May 17, 2026
c97ca67
Refresh live-profile completion audit evidence
FlowmemoryAI May 17, 2026
6fa3314
Add FlowChain service autorecovery supervisor
FlowmemoryAI May 17, 2026
3342619
Add supervisor unit to public RPC bundle
FlowmemoryAI May 17, 2026
d425e25
Harden Base bridge cursor readiness
FlowmemoryAI May 17, 2026
a400ee7
Add FlowChain ops alert rules
FlowmemoryAI May 17, 2026
84a720a
Add tester launch readiness rail
FlowmemoryAI May 17, 2026
3396b90
Harden public deployment readiness refresh
FlowmemoryAI May 17, 2026
a571ace
Bound backup restore validation children
FlowmemoryAI May 17, 2026
a5e31a2
Refresh live service status evidence
FlowmemoryAI May 17, 2026
a0a3817
Add Windows service install automation
FlowmemoryAI May 17, 2026
d3646d1
Add Windows public RPC edge preflight bundle
FlowmemoryAI May 17, 2026
5aa92d0
Add Windows backup schedule automation
FlowmemoryAI May 17, 2026
ae362cd
Add Windows alert schedule automation
FlowmemoryAI May 17, 2026
d9b986d
Harden bridge relayer L1 queue path
FlowmemoryAI May 17, 2026
67d5334
Add live readiness dashboard surface
FlowmemoryAI May 17, 2026
4a24179
Add wallet tester gateway controls
FlowmemoryAI May 17, 2026
9d69f36
Add capped tester faucet gateway
FlowmemoryAI May 17, 2026
f177e24
Tighten external tester gateway readiness
FlowmemoryAI May 17, 2026
5e78c4b
Add bridge relayer latency gate evidence
FlowmemoryAI May 17, 2026
eabd49d
Add bridge relayer ops alert coverage
FlowmemoryAI May 17, 2026
8a391e7
Expose tester faucet in public RPC edge bundle
FlowmemoryAI May 17, 2026
343abcf
Harden bridge relayer cursor commits
FlowmemoryAI May 17, 2026
2b319af
Add public RPC owner render automation
FlowmemoryAI May 17, 2026
f711bbb
Add Flowchain explorer route for tester activity
FlowmemoryAI May 17, 2026
70e81fe
Refresh backup restore readiness evidence
FlowmemoryAI May 17, 2026
bfd98ce
Add Flowchain ops center dashboard route
FlowmemoryAI May 17, 2026
815e169
Link tester wallet flow to explorer and ops
FlowmemoryAI May 17, 2026
6280838
Refresh completion audit truth table evidence
FlowmemoryAI May 17, 2026
442543a
Validate public RPC owner render bundle
FlowmemoryAI May 17, 2026
0c8dda0
Validate bridge relayer guardrails
FlowmemoryAI May 17, 2026
80afe9c
Harden L1 readiness guardrails
FlowmemoryAI May 17, 2026
aa7dec3
Refresh L1 service status evidence
FlowmemoryAI May 17, 2026
f9ddeb4
Add public RPC deployment automation gate
FlowmemoryAI May 17, 2026
7c66a7c
Validate bridge relayer service opt-in
FlowmemoryAI May 17, 2026
2b202fa
Add external tester launch dashboard
FlowmemoryAI May 17, 2026
68a6e1d
Validate bridge relayer loop lifecycle
FlowmemoryAI May 17, 2026
e1af396
Add ops escalation dry-run validation
FlowmemoryAI May 17, 2026
c7ab934
Add backup owner path dry-run proof
FlowmemoryAI May 17, 2026
c3e955b
Add tester launch workflow rail
FlowmemoryAI May 17, 2026
2d0eaf7
Harden bridge relayer loop health checks
FlowmemoryAI May 17, 2026
c02d92f
Add relayer loop health alert coverage
FlowmemoryAI May 17, 2026
b8d1428
Add public RPC rollback drill validation
FlowmemoryAI May 17, 2026
b20dc75
Add external tester connect pack gate
FlowmemoryAI May 17, 2026
5384745
Show tester connect pack in launch UI
FlowmemoryAI May 17, 2026
9f3cad8
Validate service install status and uninstall paths
FlowmemoryAI May 17, 2026
aab5307
Add tester write preflight to public RPC deployment
FlowmemoryAI May 17, 2026
e0809c3
Harden relayer loop stop proof
FlowmemoryAI May 17, 2026
fde1f01
Validate alert status and absent uninstall paths
FlowmemoryAI May 17, 2026
9c0e434
Refresh dev pack e2e quickstart timeout
FlowmemoryAI May 17, 2026
ffd0e44
Add explorer tester settlement trace
FlowmemoryAI May 17, 2026
a9c4985
Harden public RPC state boundary
FlowmemoryAI May 17, 2026
6fecba4
Refresh FlowChain service status evidence
FlowmemoryAI May 17, 2026
1512325
Expose launch gates in explorer
FlowmemoryAI May 17, 2026
e91a68d
Fail fast deployment contract refresh
FlowmemoryAI May 17, 2026
6ac2ff9
Harden deployment refresh ops alerts
FlowmemoryAI May 17, 2026
d87b422
Require startup recovery for service install
FlowmemoryAI May 18, 2026
633fe39
Fail closed public RPC origin render
FlowmemoryAI May 18, 2026
3874ea9
Bound bridge relayer child processes
FlowmemoryAI May 18, 2026
8da3193
Surface relayer safety in tester launch UI
FlowmemoryAI May 18, 2026
e6bf05f
Harden architecture audit relayer evidence
FlowmemoryAI May 18, 2026
d72f94e
Add FlowChain operator package gate
FlowmemoryAI May 18, 2026
79e8aa6
Verify FlowChain operator package contents
FlowmemoryAI May 18, 2026
18f0bf9
Expand FlowChain operator doctor checks
FlowmemoryAI May 18, 2026
8038fc6
Refresh live FlowChain block evidence
FlowmemoryAI May 18, 2026
f3475fb
Gate FlowChain operator doctor evidence
FlowmemoryAI May 18, 2026
c5c69cb
Gate FlowChain alert evidence
FlowmemoryAI May 18, 2026
4b91c2a
Gate FlowChain dashboard UI readiness
FlowmemoryAI May 18, 2026
5d5ed2d
Gate FlowChain service and relayer hardening
FlowmemoryAI May 18, 2026
0921371
Gate FlowChain second-computer readiness
FlowmemoryAI May 18, 2026
e286bc7
Refresh FlowChain truth table evidence
FlowmemoryAI May 18, 2026
b98807b
Gate FlowChain owner launch readiness
FlowmemoryAI May 18, 2026
714400b
Gate FlowChain systemd service install
FlowmemoryAI May 18, 2026
9528fdc
Gate FlowChain ops metrics export
FlowmemoryAI May 18, 2026
d1d0402
Gate FlowChain bridge deploy controls
FlowmemoryAI May 18, 2026
f13862c
Refresh FlowChain live wallet evidence
FlowmemoryAI May 18, 2026
d74978b
Gate FlowChain tester packet handoff
FlowmemoryAI May 18, 2026
743af6d
Harden FlowChain service supervisor evidence
FlowmemoryAI May 18, 2026
cee9f56
Harden FlowChain ops alert evidence
FlowmemoryAI May 18, 2026
09bcdce
Harden FlowChain public RPC bundle evidence
FlowmemoryAI May 18, 2026
d39f490
Harden FlowChain public RPC automation evidence
FlowmemoryAI May 18, 2026
d822b06
Harden FlowChain backup restore evidence
FlowmemoryAI May 18, 2026
3f23952
Harden FlowChain bridge relayer guardrail evidence
FlowmemoryAI May 18, 2026
6c2f245
Harden FlowChain bridge relayer loop evidence
FlowmemoryAI May 18, 2026
466a42f
Harden FlowChain backup owner-path evidence
FlowmemoryAI May 18, 2026
cfca481
Harden FlowChain ops alert evidence
FlowmemoryAI May 18, 2026
da34969
Harden FlowChain ops metrics evidence
FlowmemoryAI May 18, 2026
19e5fbe
Harden FlowChain alert install evidence
FlowmemoryAI May 18, 2026
fc5e733
Harden FlowChain escalation evidence
FlowmemoryAI May 18, 2026
06eb98d
Harden FlowChain service install evidence
FlowmemoryAI May 18, 2026
95985d7
Harden FlowChain systemd service evidence
FlowmemoryAI May 18, 2026
c8a887b
Refresh FlowChain service status evidence
FlowmemoryAI May 18, 2026
f94257a
Harden FlowChain service monitor evidence
FlowmemoryAI May 18, 2026
dfdd6e2
Harden FlowChain service status evidence
FlowmemoryAI May 18, 2026
588006b
Harden FlowChain public RPC validation evidence
FlowmemoryAI May 18, 2026
25fa8ff
Harden FlowChain public RPC abuse evidence
FlowmemoryAI May 18, 2026
858e6e7
Harden FlowChain wallet service transfer evidence
FlowmemoryAI May 18, 2026
1e6e49c
Harden FlowChain tester network evidence
FlowmemoryAI May 18, 2026
f4f0989
Harden FlowChain no-secret scan evidence
FlowmemoryAI May 18, 2026
de65269
Harden FlowChain incident drill evidence
FlowmemoryAI May 18, 2026
1bb446a
Harden FlowChain owner readiness evidence
FlowmemoryAI May 18, 2026
9d95f11
Harden FlowChain operator package evidence
FlowmemoryAI May 18, 2026
963cf51
Harden FlowChain second-computer and dashboard evidence
FlowmemoryAI May 18, 2026
2a51604
Add FlowChain owner activation plan
FlowmemoryAI May 18, 2026
cc59ce1
Add FlowChain tester token setup utility
FlowmemoryAI May 18, 2026
e2f1aec
Add FlowChain live cutover rehearsal gate
FlowmemoryAI May 18, 2026
4368cc1
Expose FlowChain cutover state in ops metrics
FlowmemoryAI May 18, 2026
23ab7c2
Add FlowChain external tester evidence validation
FlowmemoryAI May 18, 2026
6ce5e50
Expose tester evidence state in FlowChain ops metrics
FlowmemoryAI May 18, 2026
e0bdc4c
Refresh FlowChain live ops evidence
FlowmemoryAI May 18, 2026
002907d
Avoid hygiene false positives in secret marker scanners
FlowmemoryAI May 18, 2026
e801d52
Fix live infra CI checks
FlowmemoryAI May 18, 2026
93e4201
Merge main into live product infra RPC
FlowmemoryAI May 18, 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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
apps/dashboard/android/gradlew text eol=lf
157 changes: 157 additions & 0 deletions .github/workflows/wallet-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
name: Wallet release

on:
workflow_dispatch:
push:
tags:
- "wallet-v*"

permissions:
contents: write

jobs:
desktop:
name: Desktop wallet (${{ matrix.name }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: windows
os: windows-latest
command: npm run desktop:installer:win
artifact: apps/dashboard/release/*
- name: macos
os: macos-latest
command: npm run desktop:installer:mac
artifact: apps/dashboard/release/*
- name: linux
os: ubuntu-latest
command: npm run desktop:installer:linux
artifact: apps/dashboard/release/*

defaults:
run:
working-directory: apps/dashboard

env:
CSC_IDENTITY_AUTO_DISCOVERY: "false"

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: apps/dashboard/package-lock.json

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm test

- name: Build desktop app
run: ${{ matrix.command }}

- name: Upload desktop artifact
uses: actions/upload-artifact@v4
with:
name: flowchain-wallet-desktop-${{ matrix.name }}
path: ${{ matrix.artifact }}
if-no-files-found: error

android:
name: Android wallet APK
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/dashboard
env:
HAS_ANDROID_RELEASE_KEYSTORE: ${{ secrets.FLOWCHAIN_ANDROID_KEYSTORE_BASE64 != '' }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: apps/dashboard/package-lock.json

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"

- name: Install dependencies
run: npm ci

- name: Sync Android project
run: npm run mobile:android:sync

- name: Make Gradle wrapper executable
run: chmod +x ./gradlew
working-directory: apps/dashboard/android

- name: Build debug APK
run: ./gradlew assembleDebug
working-directory: apps/dashboard/android

- name: Decode Android release keystore
if: env.HAS_ANDROID_RELEASE_KEYSTORE == 'true'
shell: bash
run: |
echo "$FLOWCHAIN_ANDROID_KEYSTORE_BASE64" | base64 -d > flowchain-release.keystore
env:
FLOWCHAIN_ANDROID_KEYSTORE_BASE64: ${{ secrets.FLOWCHAIN_ANDROID_KEYSTORE_BASE64 }}

- name: Build signed release APK
if: env.HAS_ANDROID_RELEASE_KEYSTORE == 'true'
run: ./gradlew assembleRelease
working-directory: apps/dashboard/android
env:
FLOWCHAIN_ANDROID_KEYSTORE_FILE: ${{ github.workspace }}/apps/dashboard/flowchain-release.keystore
FLOWCHAIN_ANDROID_KEYSTORE_PASSWORD: ${{ secrets.FLOWCHAIN_ANDROID_KEYSTORE_PASSWORD }}
FLOWCHAIN_ANDROID_KEY_ALIAS: ${{ secrets.FLOWCHAIN_ANDROID_KEY_ALIAS }}
FLOWCHAIN_ANDROID_KEY_PASSWORD: ${{ secrets.FLOWCHAIN_ANDROID_KEY_PASSWORD }}

- name: Upload Android APKs
uses: actions/upload-artifact@v4
with:
name: flowchain-wallet-android
path: |
apps/dashboard/android/app/build/outputs/apk/debug/*.apk
apps/dashboard/android/app/build/outputs/apk/release/*.apk
if-no-files-found: error

github-release:
name: Publish tagged GitHub release
runs-on: ubuntu-latest
needs:
- desktop
- android
if: startsWith(github.ref, 'refs/tags/wallet-v')
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: release-artifacts

- name: Publish release
shell: bash
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: |
gh release create "$GITHUB_REF_NAME" \
--title "Flowchain Wallet $GITHUB_REF_NAME" \
--notes "Desktop and Android wallet builds generated from $GITHUB_SHA."
find release-artifacts -type f -print0 \
| xargs -0 -I {} gh release upload "$GITHUB_REF_NAME" "{}" --clobber
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ crates/flowmemory-devnet/target/

apps/dashboard/node_modules/
apps/dashboard/dist/
apps/dashboard/test-results/
apps/dashboard/playwright-report/
crypto/node_modules/
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ powershell -ExecutionPolicy Bypass -File .\INSTALL_FLOWCHAIN_WINDOWS.ps1
```

Detailed guide: `docs/EASY_SECOND_COMPUTER_SETUP.md`.
FlowChain developer, wallet, bridge, node-operator, explorer/indexer, faucet,
and troubleshooting guides start at `docs/developer/README.md`.

Every contributor and agent should read:

Expand All @@ -59,7 +61,9 @@ Every contributor and agent should read:
7. `docs/V0_LAUNCH_ACCEPTANCE.md`
8. `docs/PRODUCTION_READINESS_CHECKLIST.md`
9. `docs/MARKETING_CLAIMS_GUARDRAILS.md`
10. `docs/DAILY_HQ_RUNBOOK.md` if operating HQ or coordinating agents
10. `docs/developer/README.md` if working on FlowChain L1, wallets, RPC,
bridge, SDK, or external tester flows
11. `docs/DAILY_HQ_RUNBOOK.md` if operating HQ or coordinating agents

Then work only inside the assigned scope.

Expand Down
1 change: 1 addition & 0 deletions apps/dashboard/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
node_modules/
dist/
release/
.vite/
coverage/
*.tsbuildinfo
Expand Down
43 changes: 43 additions & 0 deletions apps/dashboard/WALLET_DISTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Flowchain Wallet Distribution

The wallet is distributed as native desktop builds through Electron and as a native Android shell through Capacitor.

## Local Windows Desktop Build

```powershell
npm run desktop:installer:win --prefix apps/dashboard
```

Artifacts are written to `apps/dashboard/release/`.

For a local unsigned unpacked build plus zip:

```powershell
npm run desktop:pack --prefix apps/dashboard
```

## Android Build

The Android app source lives in `apps/dashboard/android`.

```powershell
npm run mobile:android:sync --prefix apps/dashboard
```

Building an APK requires Java and the Android SDK. On CI, `.github/workflows/wallet-release.yml` builds a debug APK automatically. For a signed release APK, add these repository secrets:

- `FLOWCHAIN_ANDROID_KEYSTORE_BASE64`
- `FLOWCHAIN_ANDROID_KEYSTORE_PASSWORD`
- `FLOWCHAIN_ANDROID_KEY_ALIAS`
- `FLOWCHAIN_ANDROID_KEY_PASSWORD`

## Public Downloads

Run the `Wallet release` GitHub workflow manually for downloadable CI artifacts, or push a tag like:

```powershell
git tag wallet-v0.0.0
git push origin wallet-v0.0.0
```

Tagged runs publish a GitHub Release containing the desktop and Android artifacts.
101 changes: 101 additions & 0 deletions apps/dashboard/android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore

# Built application files
*.apk
*.aar
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/
# Uncomment the following line in case you need and you don't have the release build type files in your app
# release/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
# Android Studio 3 in .gitignore file.
.idea/caches
.idea/modules.xml
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
.idea/navEditor.xml

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild
.cxx/

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

# Version control
vcs.xml

# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

# Android Profiling
*.hprof

# Cordova plugins for Capacitor
capacitor-cordova-android-plugins

# Copied web assets
app/src/main/assets/public

# Generated Config files
app/src/main/assets/capacitor.config.json
app/src/main/assets/capacitor.plugins.json
app/src/main/res/xml/config.xml
2 changes: 2 additions & 0 deletions apps/dashboard/android/app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build/*
!/build/.npmkeep
Loading
Loading