File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import * as Clipboard from "@tui/util/clipboard"
44import * as Selection from "@tui/util/selection"
55import * as TuiAudio from "@tui/util/audio"
66import { createCliRenderer , MouseButton , type CliRendererConfig } from "@opentui/core"
7- import { RouteProvider , useRoute } from "@tui/context/route"
7+ import { RouteProvider , useRoute , type Route } from "@tui/context/route"
88import {
99 Switch ,
1010 Match ,
@@ -146,6 +146,11 @@ function rendererConfig(_config: TuiConfig.Resolved): CliRendererConfig {
146146 }
147147}
148148
149+ export function initialRouteForArgs ( args : Args ) : Route | undefined {
150+ if ( args . sessionID && ! args . fork ) return { type : "session" , sessionID : args . sessionID }
151+ return undefined
152+ }
153+
149154function errorMessage ( error : unknown ) {
150155 const formatted = FormatError ( error )
151156 if ( formatted !== undefined ) return formatted
@@ -210,14 +215,7 @@ export function tui(input: {
210215 < KVProvider >
211216 < ToastProvider >
212217 < RouteProvider
213- initialRoute = {
214- input . args . continue
215- ? {
216- type : "session" ,
217- sessionID : "dummy" ,
218- }
219- : undefined
220- }
218+ initialRoute = { initialRouteForArgs ( input . args ) }
221219 >
222220 < TuiConfigProvider config = { input . config } >
223221 < SDKProvider
Original file line number Diff line number Diff line change 1+ import { describe , expect , test } from "bun:test"
2+ import { initialRouteForArgs } from "../../../src/cli/cmd/tui/app"
3+
4+ describe ( "tui app" , ( ) => {
5+ test ( "does not use a placeholder session route while resolving --continue" , ( ) => {
6+ expect ( initialRouteForArgs ( { continue : true } ) ) . toBeUndefined ( )
7+ } )
8+
9+ test ( "does not use a placeholder session route while resolving --continue --fork" , ( ) => {
10+ expect ( initialRouteForArgs ( { continue : true , fork : true } ) ) . toBeUndefined ( )
11+ } )
12+
13+ test ( "uses explicit session route when not forking" , ( ) => {
14+ expect ( initialRouteForArgs ( { sessionID : "ses_existing" } ) ) . toEqual ( {
15+ type : "session" ,
16+ sessionID : "ses_existing" ,
17+ } )
18+ } )
19+
20+ test ( "waits for fork result before routing an explicit session fork" , ( ) => {
21+ expect ( initialRouteForArgs ( { sessionID : "ses_existing" , fork : true } ) ) . toBeUndefined ( )
22+ } )
23+ } )
You can’t perform that action at this time.
0 commit comments