summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-15 23:27:32 -0400
committerGitHub <[email protected]>2026-04-15 23:27:32 -0400
commit80f1f1b5b8535b6008af54621665738115346cde (patch)
treeb963eaa4fe01c79390b9058ed54081a91d5180a2 /packages/app/src
parent343a564183d3c1aa3fc4f46896c2350bda2d2058 (diff)
downloadopencode-80f1f1b5b8535b6008af54621665738115346cde.tar.gz
opencode-80f1f1b5b8535b6008af54621665738115346cde.zip
feat: enable type-aware no-floating-promises rule, fix all 177 violations (#22741)
Diffstat (limited to 'packages/app/src')
-rw-r--r--packages/app/src/app.tsx4
-rw-r--r--packages/app/src/components/dialog-connect-provider.tsx4
-rw-r--r--packages/app/src/components/dialog-select-file.tsx4
-rw-r--r--packages/app/src/components/dialog-select-server.tsx6
-rw-r--r--packages/app/src/components/prompt-input.tsx10
-rw-r--r--packages/app/src/components/prompt-input/submit.ts2
-rw-r--r--packages/app/src/components/session-context-usage.tsx2
-rw-r--r--packages/app/src/components/session/session-sortable-terminal-tab.tsx2
-rw-r--r--packages/app/src/components/terminal.tsx2
-rw-r--r--packages/app/src/context/global-sync.tsx10
-rw-r--r--packages/app/src/context/layout.tsx2
-rw-r--r--packages/app/src/context/terminal.tsx4
-rw-r--r--packages/app/src/pages/layout.tsx20
-rw-r--r--packages/app/src/pages/layout/sidebar-workspace.tsx2
-rw-r--r--packages/app/src/pages/session.tsx2
-rw-r--r--packages/app/src/pages/session/helpers.ts2
16 files changed, 39 insertions, 39 deletions
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx
index 9983548ba..a2a746c05 100644
--- a/packages/app/src/app.tsx
+++ b/packages/app/src/app.tsx
@@ -197,12 +197,12 @@ function ConnectionGate(props: ParentProps<{ disableHealthCheck?: boolean }>) {
fallback={
<ConnectionError
onRetry={() => {
- if (checkMode() === "background") healthCheckActions.refetch()
+ if (checkMode() === "background") void healthCheckActions.refetch()
}}
onServerSelected={(key) => {
setCheckMode("blocking")
server.setActive(key)
- healthCheckActions.refetch()
+ void healthCheckActions.refetch()
}}
/>
}
diff --git a/packages/app/src/components/dialog-connect-provider.tsx b/packages/app/src/components/dialog-connect-provider.tsx
index 41225d02a..e30574379 100644
--- a/packages/app/src/components/dialog-connect-provider.tsx
+++ b/packages/app/src/components/dialog-connect-provider.tsx
@@ -327,7 +327,7 @@ export function DialogConnectProvider(props: { provider: string }) {
if (loading()) return
if (methods().length === 1) {
auto = true
- selectMethod(0)
+ void selectMethod(0)
}
})
@@ -373,7 +373,7 @@ export function DialogConnectProvider(props: { provider: string }) {
key={(m) => m?.label}
onSelect={async (selected, index) => {
if (!selected) return
- selectMethod(index)
+ void selectMethod(index)
}}
>
{(i) => (
diff --git a/packages/app/src/components/dialog-select-file.tsx b/packages/app/src/components/dialog-select-file.tsx
index a0347a039..186906f92 100644
--- a/packages/app/src/components/dialog-select-file.tsx
+++ b/packages/app/src/components/dialog-select-file.tsx
@@ -348,8 +348,8 @@ export function DialogSelectFile(props: { mode?: DialogSelectFileMode; onOpenFil
const open = (path: string) => {
const value = file.tab(path)
- tabs().open(value)
- file.load(path)
+ void tabs().open(value)
+ void file.load(path)
if (!view().reviewPanel.opened()) view().reviewPanel.open()
layout.fileTree.setTab("all")
props.onOpenFile?.(path)
diff --git a/packages/app/src/components/dialog-select-server.tsx b/packages/app/src/components/dialog-select-server.tsx
index ca4c42a37..dd92edec3 100644
--- a/packages/app/src/components/dialog-select-server.tsx
+++ b/packages/app/src/components/dialog-select-server.tsx
@@ -344,7 +344,7 @@ export function DialogSelectServer() {
createEffect(() => {
items()
- refreshHealth()
+ void refreshHealth()
const interval = setInterval(refreshHealth, 10_000)
onCleanup(() => clearInterval(interval))
})
@@ -498,7 +498,7 @@ export function DialogSelectServer() {
async function handleRemove(url: ServerConnection.Key) {
server.remove(url)
if ((await platform.getDefaultServer?.()) === url) {
- platform.setDefaultServer?.(null)
+ void platform.setDefaultServer?.(null)
}
}
@@ -536,7 +536,7 @@ export function DialogSelectServer() {
items={sortedItems}
key={(x) => x.http.url}
onSelect={(x) => {
- if (x) select(x)
+ if (x) void select(x)
}}
divider={true}
class="px-5 [&_[data-slot=list-search-wrapper]]:w-full [&_[data-slot=list-scroll]]h-[300px] [&_[data-slot=list-scroll]]:overflow-y-auto [&_[data-slot=list-items]]:bg-surface-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent"
diff --git a/packages/app/src/components/prompt-input.tsx b/packages/app/src/components/prompt-input.tsx
index 8ddb10a90..534215022 100644
--- a/packages/app/src/components/prompt-input.tsx
+++ b/packages/app/src/components/prompt-input.tsx
@@ -212,9 +212,9 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
if (!view().reviewPanel.opened()) view().reviewPanel.open()
layout.fileTree.setTab("all")
const tab = files.tab(item.path)
- tabs().open(tab)
+ void tabs().open(tab)
tabs().setActive(tab)
- Promise.resolve(files.load(item.path)).finally(() => queueCommentFocus())
+ void Promise.resolve(files.load(item.path)).finally(() => queueCommentFocus())
}
const recent = createMemo(() => {
@@ -1139,7 +1139,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
}
if (working()) {
- abort()
+ void abort()
event.preventDefault()
event.stopPropagation()
return
@@ -1205,7 +1205,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
return
}
if (working()) {
- abort()
+ void abort()
event.preventDefault()
}
return
@@ -1245,7 +1245,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
) {
return
}
- handleSubmit(event)
+ void handleSubmit(event)
}
}
diff --git a/packages/app/src/components/prompt-input/submit.ts b/packages/app/src/components/prompt-input/submit.ts
index 27e898043..6805f619c 100644
--- a/packages/app/src/components/prompt-input/submit.ts
+++ b/packages/app/src/components/prompt-input/submit.ts
@@ -295,7 +295,7 @@ export function createPromptSubmit(input: PromptSubmitInput) {
const mode = input.mode()
if (text.trim().length === 0 && images.length === 0 && input.commentCount() === 0) {
- if (input.working()) abort()
+ if (input.working()) void abort()
return
}
diff --git a/packages/app/src/components/session-context-usage.tsx b/packages/app/src/components/session-context-usage.tsx
index d7c249ab0..6b7fe4ef7 100644
--- a/packages/app/src/components/session-context-usage.tsx
+++ b/packages/app/src/components/session-context-usage.tsx
@@ -24,7 +24,7 @@ function openSessionContext(args: {
}) {
if (!args.view.reviewPanel.opened()) args.view.reviewPanel.open()
if (args.layout.fileTree.opened() && args.layout.fileTree.tab() !== "all") args.layout.fileTree.setTab("all")
- args.tabs.open("context")
+ void args.tabs.open("context")
args.tabs.setActive("context")
}
diff --git a/packages/app/src/components/session/session-sortable-terminal-tab.tsx b/packages/app/src/components/session/session-sortable-terminal-tab.tsx
index ba697f91a..2d88ed180 100644
--- a/packages/app/src/components/session/session-sortable-terminal-tab.tsx
+++ b/packages/app/src/components/session/session-sortable-terminal-tab.tsx
@@ -44,7 +44,7 @@ export function SortableTerminalTab(props: { terminal: LocalPTY; onClose?: () =>
const close = () => {
const count = terminal.all().length
- terminal.close(props.terminal.id)
+ void terminal.close(props.terminal.id)
if (count === 1) {
props.onClose?.()
}
diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx
index 9b7ef83b2..db7d53f2b 100644
--- a/packages/app/src/components/terminal.tsx
+++ b/packages/app/src/components/terminal.tsx
@@ -415,7 +415,7 @@ export const Terminal = (props: TerminalProps) => {
if (local.autoFocus !== false) focusTerminal()
if (typeof document !== "undefined" && document.fonts) {
- document.fonts.ready.then(scheduleFit)
+ void document.fonts.ready.then(scheduleFit)
}
const onResize = t.onResize((size) => {
diff --git a/packages/app/src/context/global-sync.tsx b/packages/app/src/context/global-sync.tsx
index fe5f2f130..57b76a96f 100644
--- a/packages/app/src/context/global-sync.tsx
+++ b/packages/app/src/context/global-sync.tsx
@@ -237,7 +237,7 @@ function createGlobalSync() {
})
sessionLoads.set(directory, promise)
- promise.finally(() => {
+ void promise.finally(() => {
sessionLoads.delete(directory)
children.unpin(directory)
})
@@ -273,7 +273,7 @@ function createGlobalSync() {
})()
booting.set(directory, promise)
- promise.finally(() => {
+ void promise.finally(() => {
booting.delete(directory)
children.unpin(directory)
})
@@ -317,7 +317,7 @@ function createGlobalSync() {
setSessionTodo,
vcsCache: children.vcsCache.get(directory),
loadLsp: () => {
- sdkFor(directory)
+ void sdkFor(directory)
.lsp.status()
.then((x) => {
setStore("lsp", x.data ?? [])
@@ -359,13 +359,13 @@ function createGlobalSync() {
eventFrame = undefined
eventTimer = setTimeout(() => {
eventTimer = undefined
- globalSDK.event.start()
+ void globalSDK.event.start()
}, 0)
})
} else {
eventTimer = setTimeout(() => {
eventTimer = undefined
- globalSDK.event.start()
+ void globalSDK.event.start()
}, 0)
}
void bootstrap()
diff --git a/packages/app/src/context/layout.tsx b/packages/app/src/context/layout.tsx
index 87f11d2b6..74ea28531 100644
--- a/packages/app/src/context/layout.tsx
+++ b/packages/app/src/context/layout.tsx
@@ -582,7 +582,7 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
open(directory: string) {
const root = rootFor(directory)
if (server.projects.list().find((x) => x.worktree === root)) return
- globalSync.project.loadSessions(root)
+ void globalSync.project.loadSessions(root)
server.projects.open(root)
},
close(directory: string) {
diff --git a/packages/app/src/context/terminal.tsx b/packages/app/src/context/terminal.tsx
index 17355aab9..31d2d6e04 100644
--- a/packages/app/src/context/terminal.tsx
+++ b/packages/app/src/context/terminal.tsx
@@ -117,7 +117,7 @@ export function clearWorkspaceTerminals(dir: string, sessionIDs?: string[], plat
entry?.value.clear()
}
- removePersisted(Persist.workspace(dir, "terminal"), platform)
+ void removePersisted(Persist.workspace(dir, "terminal"), platform)
const legacy = new Set(getLegacyTerminalStorageKeys(dir))
for (const id of sessionIDs ?? []) {
@@ -126,7 +126,7 @@ export function clearWorkspaceTerminals(dir: string, sessionIDs?: string[], plat
}
}
for (const key of legacy) {
- removePersisted({ key }, platform)
+ void removePersisted({ key }, platform)
}
}
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 3ba2659a3..8fad0bafe 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -956,7 +956,7 @@ export default function Layout(props: ParentProps) {
// warm up child store to prevent flicker
globalSync.child(target.worktree)
- openProject(target.worktree)
+ void openProject(target.worktree)
}
function navigateSessionByUnseen(offset: number) {
@@ -1094,7 +1094,7 @@ export default function Layout(props: ParentProps) {
disabled: !params.dir || !params.id,
onSelect: () => {
const session = currentSessions().find((s) => s.id === params.id)
- if (session) archiveSession(session)
+ if (session) void archiveSession(session)
},
},
{
@@ -1360,11 +1360,11 @@ export default function Layout(props: ParentProps) {
if (!server.isLocal()) return
for (const directory of collectOpenProjectDeepLinks(urls)) {
- openProject(directory)
+ void openProject(directory)
}
for (const link of collectNewSessionDeepLinks(urls)) {
- openProject(link.directory, false)
+ void openProject(link.directory, false)
const slug = base64Encode(link.directory)
if (link.prompt) {
setSessionHandoff(slug, { prompt: link.prompt })
@@ -1453,11 +1453,11 @@ export default function Layout(props: ParentProps) {
function resolve(result: string | string[] | null) {
if (Array.isArray(result)) {
for (const directory of result) {
- openProject(directory, false)
+ void openProject(directory, false)
}
- navigateToProject(result[0])
+ void navigateToProject(result[0])
} else if (result) {
- openProject(result)
+ void openProject(result)
}
}
@@ -1825,7 +1825,7 @@ export default function Layout(props: ParentProps) {
const next = new Set(dirs)
for (const directory of next) {
if (loadedSessionDirs.has(directory)) continue
- globalSync.project.loadSessions(directory)
+ void globalSync.project.loadSessions(directory)
}
loadedSessionDirs.clear()
@@ -2110,7 +2110,7 @@ export default function Layout(props: ParentProps) {
onSave={(next) => {
const item = project()
if (!item) return
- renameProject(item, next)
+ void renameProject(item, next)
}}
class="text-14-medium text-text-strong truncate"
displayClass="text-14-medium text-text-strong truncate"
@@ -2242,7 +2242,7 @@ export default function Layout(props: ParentProps) {
onClick={() => {
const item = project()
if (!item) return
- createWorkspace(item)
+ void createWorkspace(item)
}}
>
{language.t("workspace.new")}
diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx
index 9e0069147..9d74651b9 100644
--- a/packages/app/src/pages/layout/sidebar-workspace.tsx
+++ b/packages/app/src/pages/layout/sidebar-workspace.tsx
@@ -277,7 +277,7 @@ const WorkspaceSessionList = (props: {
class="flex w-full text-left justify-start text-14-regular text-text-weak pl-2 pr-10"
size="large"
onClick={(e: MouseEvent) => {
- props.loadMore()
+ void props.loadMore()
;(e.currentTarget as HTMLButtonElement).blur()
}}
>
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 32df997f7..c63bbc4f9 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -484,7 +484,7 @@ export default function Page() {
if (!tab) return
const path = file.pathFromTab(tab)
- if (path) file.load(path)
+ if (path) void file.load(path)
})
createEffect(
diff --git a/packages/app/src/pages/session/helpers.ts b/packages/app/src/pages/session/helpers.ts
index f3215f685..e136ba999 100644
--- a/packages/app/src/pages/session/helpers.ts
+++ b/packages/app/src/pages/session/helpers.ts
@@ -117,7 +117,7 @@ export const createOpenReviewFile = (input: {
input.openTab(tab)
input.setActive(tab)
}
- if (maybePromise instanceof Promise) maybePromise.then(open)
+ if (maybePromise instanceof Promise) void maybePromise.then(open)
else open()
})
}