Commit Graph
3 Commits
Author SHA1 Message Date
jwinterm e8f766dfe6 Rebrand: 'Hash Wallet' → 'Hash Bags' (visible name only)
Avoids any confusion / potential trademark friction with HashWallet
(Spanish hardware-wallet company). Hash Bags is a more distinctive
name, harder to collide with, and we can still rank for 'hash wallet'
search via App Store / Play Store subtitle ('Hash Bags - A Wallet
for your Coins').

What changed (all user-visible strings):
- Launcher labels: android/app.properties, scripts/android/app_env.sh,
  scripts/ios/app_env.sh, linux window title (CMakeLists +
  my_application.cc)
- In-app text: lib/generated/i18n.dart + ARB sources under res/values/
- Brand docs: README.md, CONTRIBUTING.md, PRIVACY.md,
  assets/text/Terms_of_Use.txt, assets/text/Release_Notes.txt
- hash.boats website: index.html, og-image.svg + regen og-image.png,
  site.webmanifest, styles.css comment, splash/confirm/pulse/mark/
  lockup svg titles, report/index.html, server/server.js
- CI workflow display names ("Hash Bags Linux build", etc.)

What did NOT change (deliberate):
- Bundle ID / Package: com.suchsoftware.hashwallet (immutable app
  identity on App Store + Play Store — changing == orphaning the app)
- Binary name: hash_wallet (Linux executable)
- Dart import paths: package:hash_wallet/...
- Git repo: hash-wallet (Such-Software/hash-wallet)
- URL scheme: hashwallet:// (internal deep links)
- support@such.software (no domain change yet)
- App Store / Play Store listing names (whatever was registered there
  stays; we updated launcher label only)
- hash.boats domain (still the wallet site)

Also kept the '#ash Wallet' wordplay in the nav but updated to
'#ash Bags' so the # mark still serves as the H. Nav reads:
[# mark] #ash Bags

Website hero tagline now matches the App Store sub-title concept:
'A wallet for your coins. Open-source, non-custodial, multi-chain.
Privacy-leaning by default.'

108 files modified, ~674 string replacements.
2026-05-19 07:26:45 -04:00
jwinterm 93744af5ba CI: conditional Flutter install + concurrency + wget→curl for Mac runner
iOS workflows were broken on the Mac mini runner because Flutter
wasn't installed. Three fixes:

1) Conditional Flutter setup. Check 'flutter --version' first; only
   pull subosito/flutter-action@v2 if missing or wrong version. Self-
   hosted Mac runner persists SDKs between runs, so steady-state is
   zero-cost. First run on the runner triggers a full SDK download
   via subosito (with cache: true so subsequent fresh installs are
   still fast).

2) wget → curl across all iOS workflow steps. macOS doesn't ship
   wget by default; curl is always present and respects -fsSL +
   redirect properly.

3) Concurrency groups on all four workflows. A burst of commits no
   longer queues N copies of the same build — newer pushes cancel
   in-flight runs on the same branch. Groups:
     linux-<ref>, android-<ref>, ios-sim-<ref>, ios-testflight-<ref>

   This addresses the '6 runs from one merge' issue: each commit in
   the merge triggered all 3 push-listening workflows. Concurrency
   cancels the earlier 3 the moment the newer commit's runs start.

4) CocoaPods install is also conditional (was already 'if ! command -v
   pod' under the hood; just tightened the step name).
2026-05-18 21:29:59 -04:00
jwinterm 6304521e92 CI: iOS Simulator build workflow (no signing)
Phase 1 of iOS CI. Validates the Mac runner end-to-end with the
simplest possible target: an unsigned simulator .app.

Runs on the mac-mini-m2 self-hosted runner (label: macos-latest).
Mirrors the Linux/Android workflows for the shared prep steps
(torch_dart, reown_flutter, bitbox_flutter, monero_c prebuilt bundle,
configure, codegen, Trocador secrets), then does flutter build ios
--simulator --no-codesign and zips Runner.app.

Artifact: hash-wallet-ios-sim-<sha>. Unzip on any Apple Silicon Mac,
drag Runner.app into Simulator to run.

Phase 2 (TestFlight, separate file) follows after Phase 1 is green —
adds keychain setup, .p12 + provisioning profile install, ipa build,
xcrun altool upload using the App Store Connect API key. All Apple
secrets are already configured in Gitea.

The 'Inspect iOS targets in monero_c bundle' debug step will reveal
which Apple targets the prebuilt bundle ships — we'll need
aarch64-apple-ios-sim (or similar) for arm64 simulator builds on
M-series Macs. If missing, follow-up will either fetch from a different
source or build the iOS .a archives from source via Cake's scripts/ios/
build_*.sh chain (slow but reliable).
2026-05-18 21:22:07 -04:00