feat: add mobile shell and unified search
Some checks failed
ci / 정본·보안·린트·타입·테스트 (push) Failing after 50s
ci / 워크스페이스 빌드 검증 (push) Has been skipped
ci / Supabase Edge Functions + Cloudflare Worker (push) Successful in 20s
ci / .NET API 서버 테스트 (push) Successful in 12s
deploy-site / deploy (push) Successful in 39s
ci / 모바일 린트·타입·Jest (push) Failing after 3h10m31s

This commit is contained in:
Yun Chan 2026-09-28 23:23:36 +09:00
parent f505a03d34
commit 5ca3709b32
98 changed files with 5168 additions and 2093 deletions

View file

@ -33,12 +33,10 @@ import ForgotPasswordScreen from './src/screens/ForgotPasswordScreen'
import UpdatePasswordScreen from './src/screens/UpdatePasswordScreen'
import AccountScreen from './src/screens/AccountScreen'
import OnboardingScreen from './src/screens/OnboardingScreen'
import HistoryScreen from './src/screens/HistoryScreen'
import HistoryDetailScreen from './src/screens/HistoryDetailScreen'
import DevicesScreen from './src/screens/DevicesScreen'
import DictionaryScreen from './src/screens/DictionaryScreen'
import CommandsScreen from './src/screens/CommandsScreen'
import MeetingsScreen from './src/screens/MeetingsScreen'
import MeetingDetailScreen from './src/screens/MeetingDetailScreen'
import KnowledgeScreen from './src/screens/KnowledgeScreen'
import ActionsScreen from './src/screens/ActionsScreen'
@ -51,6 +49,9 @@ import TemplatesScreen from './src/screens/TemplatesScreen'
import MemosScreen from './src/screens/MemosScreen'
import AdminScreen from './src/screens/AdminScreen'
import AdminUserDetailScreen from './src/screens/AdminUserDetailScreen'
import TalkScreen from './src/screens/TalkScreen'
import SettingsScreen from './src/screens/SettingsScreen'
import UnifiedSearchScreen from './src/screens/UnifiedSearchScreen'
import { EntitlementProvider } from './src/lib/entitlement-context'
import { fetchEntitlementSnapshot, useEntitlement } from './src/lib/entitlement-context'
import { BillingProvider } from './src/lib/billing-context'
@ -81,13 +82,11 @@ export type RootStackParamList = {
Onboarding: { replay?: boolean } | undefined
Main: NavigatorScreenParams<MainTabParamList> | undefined
Account: undefined
History: undefined
HistoryDetail: { historyId: string }
ProPaywall: undefined
Devices: undefined
Dictionary: undefined
Commands: undefined
Meetings: undefined
MeetingDetail: { meetingId: string }
Knowledge: undefined
Actions: undefined
@ -100,6 +99,9 @@ export type RootStackParamList = {
Memos: undefined
Admin: undefined
AdminUserDetail: { userId: string }
Talk: undefined
Settings: undefined
UnifiedSearch: { initialQuery?: string } | undefined
}
type AuthEntryRoute = 'Login' | 'SignUp'
@ -389,12 +391,10 @@ function RootNavigator(): React.ReactElement {
<>
<Stack.Screen name="Main" component={TabNavigator} />
<Stack.Screen name="Account" component={AccountScreen} />
<Stack.Screen name="History" component={HistoryScreen} />
<Stack.Screen name="HistoryDetail" component={HistoryDetailScreen} />
<Stack.Screen name="Devices" component={DevicesScreen} />
<Stack.Screen name="Dictionary" component={DictionaryScreen} />
<Stack.Screen name="Commands" component={CommandsScreen} />
<Stack.Screen name="Meetings" component={MeetingsScreen} />
<Stack.Screen name="MeetingDetail" component={MeetingDetailScreen} />
<Stack.Screen name="Knowledge" component={KnowledgeScreen} />
<Stack.Screen name="Actions" component={ActionsScreen} />
@ -411,6 +411,9 @@ function RootNavigator(): React.ReactElement {
<Stack.Screen name="Memos" component={MemosScreen} />
<Stack.Screen name="Admin" component={AdminScreen} />
<Stack.Screen name="AdminUserDetail" component={AdminUserDetailScreen} />
<Stack.Screen name="Talk" component={TalkScreen} />
<Stack.Screen name="Settings" component={SettingsScreen} />
<Stack.Screen name="UnifiedSearch" component={UnifiedSearchScreen} />
<Stack.Screen name="UpdatePassword" component={UpdatePasswordScreen} />
<Stack.Screen
name="Onboarding"