Skip to content
Closed
13 changes: 13 additions & 0 deletions .opencode/command/btw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
description: ask in background or append a todo
---

Background helper.

Usage:

- `/btw ask <question>` to start a background child session and post the result back here later.
- `/btw todo <text>` to append a todo to the current session immediately.
- `/btw status` to list child background tasks for the current session.

If no subcommand is provided, treat the remaining text as `ask`.
22 changes: 22 additions & 0 deletions MAINTENANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# dev-brendan branch

This branch is a personal build maintained by [@brendandebeasi](https://github.com/brendandebeasi).

It tracks `upstream/dev` (sst/opencode) with open PRs from the anomalyco org
cherry-picked on top. It is rebuilt automatically and should never be submitted
as a PR to sst/opencode or anomalyco/opencode.

## Updating

```bash
bash update-dev.sh
```

This fetches the latest upstream/dev, auto-discovers open PRs from anomalyco on
sst/opencode (skipping drafts and WIP), applies unique commits in topological
order, installs deps, and force-pushes to brendandebeasi/opencode.

## Adding a PR

PRs are discovered automatically via `gh pr list`. To track a specific PR that
wouldn't be auto-discovered, edit the override section in `update-dev.sh`.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu"
import { Icon } from "@opencode-ai/ui/icon"
import { useTerminal, type LocalPTY } from "@/context/terminal"
import { useLanguage } from "@/context/language"
import { focusTerminalById } from "@/pages/session/helpers"

export function SortableTerminalTab(props: { terminal: LocalPTY; onClose?: () => void }): JSX.Element {
const terminal = useTerminal()
Expand Down Expand Up @@ -53,21 +54,8 @@ export function SortableTerminalTab(props: { terminal: LocalPTY; onClose?: () =>

const focus = () => {
if (store.editing) return

if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur()
}
const wrapper = document.getElementById(`terminal-wrapper-${props.terminal.id}`)
const element = wrapper?.querySelector('[data-component="terminal"]') as HTMLElement
if (!element) return

const textarea = element.querySelector("textarea") as HTMLTextAreaElement
if (textarea) {
textarea.focus()
return
}
element.focus()
element.dispatchEvent(new PointerEvent("pointerdown", { bubbles: true, cancelable: true }))
if (document.activeElement instanceof HTMLElement) document.activeElement.blur()
focusTerminalById(props.terminal.id)
}

const edit = (e?: Event) => {
Expand Down
16 changes: 0 additions & 16 deletions packages/app/src/components/settings-agents.tsx

This file was deleted.

16 changes: 0 additions & 16 deletions packages/app/src/components/settings-commands.tsx

This file was deleted.

16 changes: 0 additions & 16 deletions packages/app/src/components/settings-mcp.tsx

This file was deleted.

230 changes: 0 additions & 230 deletions packages/app/src/components/settings-permissions.tsx

This file was deleted.

8 changes: 2 additions & 6 deletions packages/app/src/context/global-sync.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { describe, expect, test } from "bun:test"
import {
canDisposeDirectory,
estimateRootSessionTotal,
loadRootSessionsWithFallback,
pickDirectoriesToEvict,
} from "./global-sync"
import { canDisposeDirectory, pickDirectoriesToEvict } from "./global-sync/eviction"
import { estimateRootSessionTotal, loadRootSessionsWithFallback } from "./global-sync/session-load"

describe("pickDirectoriesToEvict", () => {
test("keeps pinned stores and evicts idle stores", () => {
Expand Down
3 changes: 0 additions & 3 deletions packages/app/src/context/global-sync.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,3 @@ export function useGlobalSync() {
if (!context) throw new Error("useGlobalSync must be used within GlobalSyncProvider")
return context
}

export { canDisposeDirectory, pickDirectoriesToEvict } from "./global-sync/eviction"
export { estimateRootSessionTotal, loadRootSessionsWithFallback } from "./global-sync/session-load"
Loading
Loading