Skip to content
19 linesCodeBlameRaw

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.1import { Stack } from "expo-router";
2
3import { useColors } from "@/theme";
4
5/** A tab's stack of screens, with g1t's header. */
6export 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}