Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

tui: vertical session tabs render the working pulse only 10 columns wide

Open Beginner friendly
#50,426 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
90/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
cli

Research direction

Start in packages/tui/src/component/session-tabs.tsx at VerticalSessionTabs, including the indicatorWidth constant and the four TabPulse call sites around lines 826-1090; compare them with the horizontal tabs' width handling and packages/tui/src/component/tab-pulse.tsx. Verify the running pulse and separator strips span the full vertical rail width while horizontal tabs remain unchanged.

Written by the indexing model from the issue text.

Description

Description

With vertical session tabs (tabs.layout: "vertical"), the animated "session is running" pulse is hardcoded to 10 columns instead of the width of the tab. On a ~40-column rail it looks like a stray short dark stripe that crosses only part of the tab — both the separators above/below the tab and the sweep inside its title/detail rows. Horizontal tabs are fine, which makes the vertical rail look broken/inconsistent.

Plugins

superpowers@git+https://github.com/obra/superpowers.git, @cardinal4/opencode-quota@latest (both unrelated to this rendering issue)

OpenCode version

2.0.12

Steps to reproduce

  1. In ~/.config/opencode/cli.json: "tabs": { "layout": "vertical" } (defaults: indicators: "status", animations: true).
  2. Open a session and send a prompt so the tab stays in the running/thinking state.
  3. Watch the active tab in the vertical rail: the pulse strip above/below it and the sweep inside its title/detail rows cover only the first 10 columns.

Expected behavior

The pulse/separator strips span the full tab width, as they do in the horizontal tab layout.

Actual behavior

They are clipped to 10 columns, so on a wide rail they read as a short black line.

Additional context

Source (v2.0.12):

Suggested fix: drop the hardcoded width in VerticalSessionTabs (use the rail width, e.g. width() or "100%"), matching the horizontal layout.

Workaround (for users hitting it): "animations": false in cli.json.

Environment: Arch Linux (kernel 6.18.52-1-lts, x86_64), Alacritty, truecolor, zsh.

Dominant language
TypeScript
Stars
212k
Forks
28.1k
Avg merge
8h 49m
Merged PRs (30d)
348

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from anomalyco/opencode

All issues in anomalyco/opencode

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.