Add on-device debug logging: file capture + share (for real-session testing)

- fileLogger: append redacted API requests/responses + app events to an on-device
  log file (persists across restarts); the client's logSink now writes to it
- Diagnostics screen (Account > Diagnostics): toggle recording, Share log file
  (expo-sharing), clear. StartSession logs the session attempt/result explicitly.
- Lets a real parking session be captured while away from a computer, then shared.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hank 2026-07-06 11:59:41 -07:00
parent 80812d25cf
commit 7ec7ae9200
8 changed files with 216 additions and 19 deletions

View file

@ -21,6 +21,7 @@ import { VehiclesScreen } from '@/screens/VehiclesScreen';
import { PaymentMethodsScreen } from '@/screens/PaymentMethodsScreen';
import { NotificationsScreen } from '@/screens/NotificationsScreen';
import { StartSessionScreen } from '@/screens/StartSessionScreen';
import { DiagnosticsScreen } from '@/screens/DiagnosticsScreen';
import { useTheme } from '@/theme/ThemeContext';
import type { Zone } from 'parksmarter-client';
@ -33,6 +34,7 @@ export type RootStackParamList = {
Vehicles: undefined;
PaymentMethods: undefined;
Notifications: undefined;
Diagnostics: undefined;
};
export type TabParamList = {
@ -131,6 +133,11 @@ export function RootNavigator() {
component={NotificationsScreen}
options={{ title: 'Notifications' }}
/>
<Stack.Screen
name="Diagnostics"
component={DiagnosticsScreen}
options={{ title: 'Diagnostics' }}
/>
</Stack.Navigator>
) : (
<LoginScreen />