refactor(tui): remove legacy sync context

This commit is contained in:
Dax Raad 2026-07-13 15:46:03 -04:00
commit 90a87b2a0c
6 changed files with 24 additions and 218 deletions

View file

@ -3,8 +3,8 @@ import type { Config } from "../config"
import type { useEvent } from "../context/event"
import type { useRoute } from "../context/route"
import type { useSDK } from "../context/sdk"
import type { useSync } from "../context/sync"
import type { useData } from "../context/data"
import type { useProject } from "../context/project"
import type { useTheme } from "../context/theme"
import { Dialog as DialogUI, type useDialog } from "../ui/dialog"
import type { useOpencodeKeymap } from "../keymap"
@ -29,7 +29,7 @@ type Input = {
routes: PluginRoutes
event: ReturnType<typeof useEvent>
sdk: ReturnType<typeof useSDK>
sync: ReturnType<typeof useSync>
project: ReturnType<typeof useProject>
data: ReturnType<typeof useData>
theme: ReturnType<typeof useTheme>
toast: ReturnType<typeof useToast>
@ -95,57 +95,51 @@ function mapOptionCb<Value>(cb?: (item: TuiDialogSelectOption<Value>) => void) {
return (item: SelectOption<Value>) => cb(pickOption(item))
}
function stateApi(sync: ReturnType<typeof useSync>, data: ReturnType<typeof useData>): TuiPluginApi["state"] {
function stateApi(project: ReturnType<typeof useProject>, data: ReturnType<typeof useData>): TuiPluginApi["state"] {
return {
get ready() {
return true
},
get config() {
return sync.data.config
return {}
},
get provider() {
return sync.data.provider
return []
},
get path() {
return sync.path
return project.instance.path()
},
get vcs() {
if (!sync.data.vcs) return
return {
branch: sync.data.vcs.branch,
default_branch: sync.data.vcs.default_branch,
}
return undefined
},
session: {
count() {
return data.session.list().length
},
get(sessionID) {
return sync.session.get(sessionID)
get(_sessionID) {
return undefined
},
diff(sessionID) {
return (sync.data.session_diff[sessionID] ?? []).flatMap((item) =>
item.file === undefined ? [] : [{ ...item, file: item.file }],
)
diff(_sessionID) {
return []
},
messages(sessionID) {
return sync.data.message[sessionID] ?? []
messages(_sessionID) {
return []
},
status(sessionID) {
return data.session.status(sessionID) === "running" ? { type: "busy" } : { type: "idle" }
},
permission(sessionID) {
return sync.data.permission[sessionID] ?? []
permission(_sessionID) {
return []
},
question(sessionID) {
return sync.data.question[sessionID] ?? []
question(_sessionID) {
return []
},
},
part(messageID) {
return sync.data.part[messageID] ?? []
part(_messageID) {
return []
},
lsp() {
return sync.data.lsp.map((item) => ({ id: item.id, root: item.root, status: item.status }))
return []
},
mcp() {
return (data.location.mcp.server.list() ?? [])
@ -297,7 +291,7 @@ export function createTuiApiAdapters(input: Input): Omit<TuiPluginApi, "lifecycl
set() {},
ready: true,
},
state: stateApi(input.sync, input.data),
state: stateApi(input.project, input.data),
get client() {
return input.sdk.client
},