Skip to content

fix(web): issue controls wrap as one group on a narrow pane - #1425

Merged
donjor merged 1 commit into
hyprwsfrom
t3code/issues-narrow-controls
Sep 30, 2026
Merged

donjor merged 1 commit into
hyprwsfrom
t3code/issues-narrow-controls

Conversation

@donjor-agent

@donjor-agent donjor-agent Bot commented Sep 29, 2026

Copy link
Copy Markdown

🤖 claude/anthropic claude-opus-5-5 (high)

What Changed

The issue list's control row wraps as two groups, not item by item.

  • Top group: project scope and search
  • Bottom group: filter, state, projects, order, refresh
  • Wide pane: both groups share one line
  • Narrow pane: controls move under the search together
  • Never: one control stranded on its own line

Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

UI Changes

Width Before After
1100 1100 before 1100 after
900 900 before 900 after
700 700 before 700 after

Before: window narrows from 1100 to 700

narrow-before.mp4

After: same resize

narrow-after.mp4

Checks

tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no

@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from 397015e to 852a8f1 Compare September 29, 2026 20:50
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from 852a8f1 to dbb3e05 Compare September 29, 2026 22:42
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from dbb3e05 to 162a045 Compare September 29, 2026 22:50
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from 162a045 to e22818f Compare September 29, 2026 22:54
@donjor
donjor added this pull request to stack #1436 September 29, 2026 22:55
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch 3 times, most recently from dcf9c36 to 61fb7d5 Compare September 29, 2026 23:27
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch 2 times, most recently from 8af7ea1 to eea7da7 Compare September 29, 2026 23:48
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from eea7da7 to 9e7ee05 Compare September 29, 2026 23:58
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch 3 times, most recently from fe44073 to 6d62fc8 Compare September 30, 2026 00:23
@donjor
donjor force-pushed the t3code/issues-narrow-controls branch from 6d62fc8 to e2b5b52 Compare September 30, 2026 00:32
Base automatically changed from t3code/issues-close-reopen to hyprws September 30, 2026 00:38
donjor pushed a commit that referenced this pull request Oct 2, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 3, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 3, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 3, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 4, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 4, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 4, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 4, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 4, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 6, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 6, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 8, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 10, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 10, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 10, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 11, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 11, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 12, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 12, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 13, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 15, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 15, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 16, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 16, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 18, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 18, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 18, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 19, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 19, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
donjor pushed a commit that referenced this pull request Oct 19, 2026
> 🤖 claude/anthropic claude-opus-5-5 (high)

## What Changed

The issue list's control row wraps as two groups, not item by item.

- **Top group:** project scope and search
- **Bottom group:** filter, state, projects, order, refresh
- **Wide pane:** both groups share one line
- **Narrow pane:** controls move under the search together
- **Never:** one control stranded on its own line

## Why

Each control wrapped on its own, so the break point depended on the pane's exact width.
At 900px Refresh sat alone on a second line; at 1100px Newest and Refresh did.

## UI Changes

| Width | Before | After |
| --- | --- | --- |
| 1100 | ![1100 before](https://github.com/user-attachments/assets/352b3c5d-76a5-4398-848f-23317a335f4f) | ![1100 after](https://github.com/user-attachments/assets/ea2ccbb8-0a0a-4de4-ac13-8d28fa69c516) |
| 900 | ![900 before](https://github.com/user-attachments/assets/a973aa7e-07d8-4bb7-a363-5455db3843e3) | ![900 after](https://github.com/user-attachments/assets/076de486-1e69-4000-8a5a-fec32507a7f8) |
| 700 | ![700 before](https://github.com/user-attachments/assets/1ab08570-e02d-4ec8-a486-2f69dba2e713) | ![700 after](https://github.com/user-attachments/assets/16a080b0-450a-4392-ad8a-0fd3a07fa429) |

**Before:** window narrows from 1100 to 700

https://github.com/user-attachments/assets/79737a53-e871-41cc-bd4d-1c18339dfda8

**After:** same resize

https://github.com/user-attachments/assets/95964a45-3357-4421-951c-4ced770cd9a2

## Checks

```text
tsc --noEmit (apps/web)              → exit 0
vp test run -issuesPage.test.tsx     → exit 0 (5 tests)
vp lint _chat.issues.tsx             → exit 0
vp run fork:ci                       → exit 0
```

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [x] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Stacked on #1424.

Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Squashes:

- 62e8eec fix(web): issue controls wrap as one group on a narrow pane (#1425) (#1425)
- ad501e5 fix(web): issue controls never strand one control on a narrow pane (#1455) (#1455)

Fork-Domain: github-issues
Fork-Tier: qol
Fork-Upstreamable: no
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant