Skip to content
Merged
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
f3b2107
build(babel): babel.config.js + explicit class-static-block plugin (#86)
epicexcelsior May 25, 2026
8d590ed
fix(qr-scan): gate CameraView on permission + surface unrecognized QR
epicexcelsior May 19, 2026
590ae74
build(deps): add expo-audio as expo-camera 17 peer dep
epicexcelsior May 20, 2026
36dfd23
refactor(scanner): present QR scanner as a route, not a nested modal
epicexcelsior May 25, 2026
5b9c2e3
test(tier0): align solanaPayUri label/message expectations with shipp…
epicexcelsior May 26, 2026
7928098
fix(lxmf): surface silent identity-persist failures and fix peer-hist…
epicexcelsior May 26, 2026
c0ed5d7
feat(dev): guard app/dev/* routes behind __DEV__
epicexcelsior May 26, 2026
ad82480
fix(lxmf): gate dev local-PC hub behind __DEV__, not just an env var
epicexcelsior May 26, 2026
8557526
feat(dev): tutorial reset + dev menu for rehearsing first-run flows
epicexcelsior May 26, 2026
f605c25
fix(scripts): use a portable shebang for lxmf_send.py
epicexcelsior May 26, 2026
22d2f37
fix(beacon): label beacon economic stats as a preview, not live earnings
epicexcelsior May 26, 2026
0c46c86
Merge branch 'overnight/dev-env' into overnight/integration
epicexcelsior May 26, 2026
9a1bfce
Merge branch 'overnight/honesty-stake' into overnight/integration
epicexcelsior May 26, 2026
104bfbe
Merge branch 'overnight/lxmf-fixes' into overnight/integration
epicexcelsior May 26, 2026
b1959df
test(lxmf): extract + unit-test the peer-history window algorithm (MS…
epicexcelsior May 26, 2026
47bd71e
fix(lxmf): stop getGroupMembers triggering setState during render
epicexcelsior May 26, 2026
a46ac0e
Merge branch 'overnight/fix-msg-render' into overnight/integration
epicexcelsior May 26, 2026
557ad47
perf(lxmf): single bounded fetch in getPeerMessages (revert escalatin…
epicexcelsior May 26, 2026
d672346
Merge branch 'overnight/lxmf-fixes' into overnight/integration
epicexcelsior May 26, 2026
6892823
refactor(ui): drop dead Expo-template theme island, add shared state …
epicexcelsior May 27, 2026
afe73cd
refactor(onboarding): route hardcoded styling through design tokens
epicexcelsior May 27, 2026
dc040a3
refactor(messages): tokenize styling + use shared EmptyState
epicexcelsior May 27, 2026
4573ecb
refactor(wallet): tokenize wallet + home-dashboard styling
epicexcelsior May 27, 2026
fb8dce2
refactor(nodes): tokenize peers/mesh styling
epicexcelsior May 27, 2026
096237f
refactor(settings): tokenize settings + contacts/receive styling
epicexcelsior May 27, 2026
df5a392
refactor(send): tokenize send-flow styling
epicexcelsior May 27, 2026
a886941
refactor(ui): tokenize shared chrome + primitive nits
epicexcelsior May 27, 2026
2362bdb
feat(observability): Sentry crash-only telemetry (ErrorBoundary, PII …
epicexcelsior May 27, 2026
ffefc10
feat(crash-safety): add ErrorBoundary + global async error handler
epicexcelsior May 27, 2026
81ffe47
fix(wallet): remove hardcoded pending co-sign array
epicexcelsior May 27, 2026
070a6a4
fix(beacon): zero fake stats, fix PREVIEW pill, disable stake chip (Q…
epicexcelsior May 27, 2026
9d2b8a8
fix(ux): network-aware explorer URL, drop devnet copy in contacts
epicexcelsior May 27, 2026
b223e01
fix(mesh): throw typed error on malformed beacon RPC response
epicexcelsior May 27, 2026
1609960
fix(send): bound every direct-RPC await with withTimeout
epicexcelsior May 27, 2026
ca26dcf
fix(wallet): drop stale balance fetch on adapter swap; bound getBalance
epicexcelsior May 27, 2026
88bfd5e
fix(wallet): never delete a wallet on a transient keychain read error…
epicexcelsior May 27, 2026
084b999
fix(send): repair review failure-recovery, cancel, and address save
epicexcelsior May 27, 2026
6f760a5
fix(wallet): zero transient seed/AES buffers after wallet create (QA-54)
epicexcelsior May 27, 2026
57f603b
fix(messages): harden inbound req-pay/req-addr against malformed peer…
epicexcelsior May 27, 2026
1c934f0
fix(wallet): wipe exported private key from clipboard (QA-23)
epicexcelsior May 27, 2026
17db574
fix(identity): always authenticate before keypair rotation (QA-19)
epicexcelsior May 27, 2026
83ead9a
fix(messages): tell the truth in the no-peers empty state
epicexcelsior May 27, 2026
6b9599f
fix(messages): stop silently dropping pay-request / share-address act…
epicexcelsior May 27, 2026
5de1665
fix(messages): validate deep-link and notification dest hashes as hex
epicexcelsior May 27, 2026
4a146e0
fix(crash-safety): always chain to previous global error handler
epicexcelsior May 27, 2026
f8525e7
fix(messages): harden ShareAddressBubble, tighten amount parse, guard…
epicexcelsior May 27, 2026
6ea54f8
fix(send): never blind-retry on submit timeout (double-send guard)
epicexcelsior May 27, 2026
57662e8
fix(wallet): make stale-fetch guard survive the refetch cooldown
epicexcelsior May 27, 2026
f2f993d
fix(lxmf): treat shrinking event log as reset, not all-new (QA-25)
epicexcelsior May 27, 2026
d206be6
fix(lxmf): clear activeConversationRef on resetIdentity (QA-26)
epicexcelsior May 27, 2026
001a41d
fix(lxmf): pause UI poll loops in background + clear debounce timers …
epicexcelsior May 27, 2026
ff8c0ef
merge: night2/crash-safety into night2/integration
epicexcelsior May 27, 2026
bb89e10
merge: night2/send-resilience into night2/integration
epicexcelsior May 27, 2026
b32c737
merge: night2/key-safety into night2/integration
epicexcelsior May 27, 2026
31eeb71
merge: night2/inbound-hardening into night2/integration
epicexcelsior May 27, 2026
ff7f4fe
merge: night2/no-fake-data into night2/integration
epicexcelsior May 27, 2026
6da80fd
fix(wallet): allow device passcode fallback when creating local wallet
epicexcelsior May 27, 2026
010bcaf
fix(notifications): defer permission prompt until after onboarding
epicexcelsior May 27, 2026
70bba99
fix(settings): confirm before disconnect + label dead cellular toggle
epicexcelsior May 27, 2026
3068fc9
merge: night2/lifecycle into night2/integration
epicexcelsior May 27, 2026
e23744c
fix(onboarding): single auth prompt, recovery-key backup on create, n…
epicexcelsior May 27, 2026
65b4ee0
fix(android): inject android.os.Build import in content-capture plugin
epicexcelsior May 27, 2026
2f67e86
merge: night2/onboarding into night2/integration
epicexcelsior May 27, 2026
afdaf69
refactor(send): extract withTimeout to a dep-free util (fix tier0 val…
epicexcelsior May 27, 2026
294c576
merge: night2/send-resilience tier0 validator fix
epicexcelsior May 27, 2026
440edd3
style(send): hoist withTimeout import to the top import block
epicexcelsior May 27, 2026
3baaa6a
merge: night2/send-resilience lint hoist
epicexcelsior May 27, 2026
59db686
fix(nodes): surface denied Bluetooth permission with a recovery path
epicexcelsior May 27, 2026
dfd612b
merge: night2/ble-recovery into night2/integration
epicexcelsior May 27, 2026
d347a2f
fix(notifications): gate peer-count notif on isConnected too (complet…
epicexcelsior May 27, 2026
8915783
merge: night2/onboarding peer-count notif gate (SU-D completion)
epicexcelsior May 27, 2026
19d1f22
fix(nodes): stop the 'Starting mesh…' lie once the node is up
epicexcelsior May 27, 2026
0f3dfe4
merge: night2/ble-recovery honest nodes empty-state
epicexcelsior May 27, 2026
dd62233
fix(wallet): flag a stale balance instead of showing it as live
epicexcelsior May 27, 2026
f0c1539
merge: night2/balance-staleness (stale-balance surface)
epicexcelsior May 27, 2026
8675eb0
fix(tabs): swipe back to Messages no longer boots to onboarding
epicexcelsior May 27, 2026
c235c61
merge: night2/tab-swipe-fix into night2/integration
epicexcelsior May 27, 2026
c8700de
fix(messages): don't stack the QR scanner over the Join-channel sheet
epicexcelsior May 27, 2026
ff5a8fa
merge: night2/joingroup-scanner (un-nest the scanner Modal)
epicexcelsior May 27, 2026
126bc7d
refactor(ui): delete dead components + the unused light theme
epicexcelsior May 27, 2026
c4eeb81
feat(ui): add AppText + ScreenHeader foundation primitives
epicexcelsior May 27, 2026
85fa0ce
refactor(wallet): adopt shared ScreenHeader masthead
epicexcelsior May 27, 2026
79e50a4
refactor(nodes): adopt shared ScreenHeader masthead
epicexcelsior May 27, 2026
c0709eb
refactor(contacts): adopt shared ScreenHeader masthead
epicexcelsior May 27, 2026
e3ef501
refactor(messages): migrate ChannelShareSheet to AppBottomSheet primi…
epicexcelsior May 27, 2026
23e74c1
refactor(messages): migrate GroupMembersSheet to AppBottomSheet primi…
epicexcelsior May 27, 2026
71ad8c0
merge: ScreenHeader adoption into design/foundation
epicexcelsior May 27, 2026
55ab3fe
merge: bottom-sheet proof into design/foundation
epicexcelsior May 27, 2026
d48cabf
feat(ui): add Toast primitive, replace copy-confirmation Alerts
epicexcelsior May 27, 2026
30d4d1a
refactor(nodes): migrate beacon opt-in modal to AppBottomSheet
epicexcelsior May 27, 2026
e7b7b11
merge: Toast primitive + copy-Alert replacement into design/foundation
epicexcelsior May 27, 2026
e7bf0b0
merge: BeaconRegistry beacon-modal → AppBottomSheet into design/found…
epicexcelsior May 27, 2026
551e945
feat(ui): themed ConfirmSheet + useConfirm on AppBottomSheet
epicexcelsior May 27, 2026
efc3bab
refactor(ui): route confirm/destructive Alerts through ConfirmSheet
epicexcelsior May 27, 2026
da0c883
merge: ConfirmSheet + confirm-Alert replacement into design/foundation
epicexcelsior May 27, 2026
5470e81
test(tier0): align Solana Pay brand-casing assertions with canonical …
epicexcelsior May 27, 2026
4aed36b
feat(ui): ScreenHeader size variant + complete masthead adoption
epicexcelsior May 27, 2026
95a1a4a
fix(ui): ConfirmSheet resolves its promise on overlap/unmount instead…
epicexcelsior May 27, 2026
0193792
fix(send): P1 double-send — treat all post-broadcast errors as unknow…
epicexcelsior May 27, 2026
4786c07
feat(mesh-payment): offline Solana payments through beacon relay (#79)
Magicred-1 May 18, 2026
f3cbf77
feat(mesh-rpc): migrate MeshRpcAdapter to beaconRpcWait link protocol…
Magicred-1 May 18, 2026
147685c
feat(mesh-rpc): beacon broadcast RPC + sendTransaction fix (#81)
Magicred-1 May 18, 2026
eb29bda
feat(messages): tab filtering — Contacts / Groups / All Peers
Magicred-1 May 27, 2026
c81f20d
Feature/messages tab filtering (#88)
Magicred-1 May 27, 2026
8472bb1
feat(contacts): open peer conversation → pin to Contacts tab (#89)
Magicred-1 May 27, 2026
11276ae
fix(observability): scrub raw key bytes + align brand-casing test
epicexcelsior May 27, 2026
783aef7
chore(deps): bump react-native-lxmf to 0.2.73
Magicred-1 May 29, 2026
211bdc5
Merge pull request #85 from epicexcelsior/epic/iou-qr-camera-fix
epicexcelsior May 30, 2026
2888be8
merge: staging (route scanner #85) into night2/integration
epicexcelsior May 30, 2026
f4308d9
chore(lxmf): neutralize dev-gate comment wording
epicexcelsior May 30, 2026
6bd8786
merge: night2/integration into design/foundation
epicexcelsior May 30, 2026
d1333e6
merge: night2/integration into epic/telemetry-crash
epicexcelsior May 30, 2026
79c73a9
merge: re-link staging ancestry into night2/integration
epicexcelsior May 30, 2026
c5c7c6b
merge: re-link staging ancestry into design/foundation
epicexcelsior May 30, 2026
c929966
merge: re-link staging ancestry into epic/telemetry-crash
epicexcelsior May 30, 2026
d6e67f7
fix(onboarding): drop 'Confidential' overclaim from welcome subtitle
epicexcelsior May 30, 2026
5834c81
fix(onboarding): drop 'Confidential' overclaim from welcome subtitle
epicexcelsior May 30, 2026
dcec1bf
fix(onboarding): drop 'Confidential' overclaim from welcome subtitle
epicexcelsior May 30, 2026
5593c6a
Merge pull request #90 from epicexcelsior/night2/integration
epicexcelsior May 31, 2026
545ab6f
Merge pull request #91 from epicexcelsior/design/foundation
epicexcelsior May 31, 2026
28153c7
Merge pull request #92 from epicexcelsior/epic/telemetry-crash
epicexcelsior May 31, 2026
874febd
fix(lxmf): v0.2.78 integration — decode, peer transport, event-id, an…
Magicred-1 Jun 3, 2026
acc6218
Merge branch 'v3' into staging
Magicred-1 Jun 3, 2026
3fae05f
chore(deps): bump react-native-lxmf to 0.2.79; fix beaconRpcWait
Magicred-1 Jun 4, 2026
f3cd71c
Merge branch 'v3' into fix/lxmf-v0.2.79
Magicred-1 Jun 4, 2026
d08f8d2
chore: remove @sentry/react-native (breaks EAS iOS archive + metro)
Magicred-1 Jun 4, 2026
ee22b05
bump @magicred-1/react-native-lxmf to 0.2.80
Magicred-1 Jun 12, 2026
707435b
Merge branch 'v3' into fix/lxmf-v0.2.80
Magicred-1 Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 7 additions & 43 deletions mobile_app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion mobile_app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"dependencies": {
"@expo-google-fonts/space-grotesk": "^0.4.1",
"@expo/vector-icons": "^15.0.3",
"@magicred-1/react-native-lxmf": "^0.2.79",
"@magicred-1/react-native-lxmf": "^0.2.80",
"@msgpack/msgpack": "^3.1.3",
"@noble/ciphers": "^2.2.0",
"@noble/curves": "^2.2.0",
Expand Down
48 changes: 17 additions & 31 deletions mobile_app/src/observability/sentry.ts
Original file line number Diff line number Diff line change
@@ -1,44 +1,30 @@
/**
* Crash/error observability — Sentry removed.
*
* `@sentry/react-native` was removed: its native Gradle step (`sentry.gradle`
* source-map/symbol upload via `sentry-cli`) broke CI, and the app opted out of
* third-party crash reporting. This is a no-op shim that preserves the former
* import surface (`Sentry`, `initObservability`, `observabilityEnabled`) so
* `app/_layout.tsx` and `ErrorBoundary.tsx` compile and run unchanged. The
* ErrorBoundary still renders its fallback UI — it just no longer reports.
*
* The `errorHandler` global handler (console.error + native crash path) is
* unaffected and remains the crash signal.
* @sentry/react-native was removed: its native Gradle/Xcode steps (source-map
* upload via sentry-cli) require an auth token and break CI builds.
* This no-op shim preserves the import surface so app/_layout.tsx and
* ErrorBoundary.tsx compile and run unchanged. The ErrorBoundary still renders
* its fallback UI — it just no longer reports to Sentry. The global
* errorHandler (console.error + native crash path) remains the crash signal.
*/

/** Always false — Sentry is gone. Kept for callers that gate on it. */
export const observabilityEnabled = false;

/** No-op: Sentry removed. Safe to call once at app entry. */
export function initObservability(): void {
/* no-op */
}

interface NoopScope {
setTag(key: string, value: string): void;
setContext(key: string, value: Record<string, unknown> | null): void;
}

const noopScope: NoopScope = {
setTag: () => {},
setContext: () => {},
};
const noopScope: NoopScope = { setTag: () => {}, setContext: () => {} };

/** Always false — Sentry is gone. */
export const observabilityEnabled = false;

/** No-op. */
export function initObservability(): void { /* no-op */ }

/** No-op stand-in for the `@sentry/react-native` API the app referenced. */
/** No-op stand-in for @sentry/react-native. */
export const Sentry = {
wrap<T>(component: T): T {
return component;
},
withScope(callback: (scope: NoopScope) => void): void {
callback(noopScope);
},
captureException(_error: unknown): void {
/* no-op */
},
wrap<T>(component: T): T { return component; },
withScope(callback: (scope: NoopScope) => void): void { callback(noopScope); },
captureException(_error: unknown): void { /* no-op */ },
};
Loading