Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ export function Session() {

const toast = useToast()
const sdk = useSDK()
const local = useLocal()

// Handle initial prompt from fork
createEffect(() => {
Expand All @@ -176,6 +177,22 @@ export function Session() {
}
})

// On session change, set model/agent to last used
createEffect(
on(
() => session()?.id,
(sessionId) => {
const lastUserMessage = sync.data.message[sessionId]?.findLast((x) => x.role === "user")
if (!lastUserMessage) return
local.model.set(lastUserMessage.model)

const agent = sync.data.agent.find((x) => x.name === lastUserMessage.agent)
if (agent?.mode === "subagent" || agent?.hidden) return
local.agent.set(lastUserMessage.agent)
},
),
)

// Auto-navigate to whichever session currently needs permission input
createEffect(() => {
const currentSession = session()
Expand Down Expand Up @@ -277,8 +294,6 @@ export function Session() {
}, 50)
}

const local = useLocal()

function moveChild(direction: number) {
const parentID = session()?.parentID ?? session()?.id
let children = sync.data.session
Expand Down