Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.
| The phone app's scaffolding, in apps/mobile: Expo SDK 57 with Expo Router, Android first, with Chat, Code and Customize. It signs in with g1t's own OAuth 2.1 (PKCE, a client id that encodes "g1t for Android" and g1t://oauth/callback, so nothing is registered), keeps the server and credentials in the phone's keystore, refreshes the 30-day token a minute early and shares the single-use refresh between requests. A personal access token is the other way in, and a self-hosted g1t the other server. | 1 | import { Stack } from "expo-router"; |
| 2 | ||
| 3 | import { useColors } from "@/theme"; | |
| 4 | ||
| 5 | /** A tab's stack of screens, with g1t's header. */ | |
| 6 | export function TabStack() { | |
| 7 | const colors = useColors(); | |
| 8 | return ( | |
| 9 | <Stack | |
| 10 | screenOptions={{ | |
| 11 | headerStyle: { backgroundColor: colors.surface }, | |
| 12 | headerTintColor: colors.fg, | |
| 13 | headerTitleStyle: { color: colors.fg }, | |
| 14 | headerShadowVisible: false, | |
| 15 | contentStyle: { backgroundColor: colors.bg }, | |
| 16 | }} | |
| 17 | /> | |
| 18 | ); | |
| 19 | } |