boardx / boardx/workspacex

P1 fix(web): /projects/[id] 在 375px 下 project-tabs 横向溢出 —— F14 verification 现在红的那一条

Open
#531 0 comments 0 reactions 0 assignees View on GitHub
out-of-scope owner:coord-chat-e2e
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 这是 #517 里那条**真回归**,修好它 F14 就不必动 status

coord-main 实测(隔离单跑,排除"别的 config 的 spec 被默认 config 捞进来缺环境"的干扰):

```
pnpm exec playwright test e2e/responsive.spec.ts

89 passed | 1 failed
[chromium] › e2e/responsive.spec.ts:39:11 › mobile-375(375px) › /projects/p1 无横向溢出

Expected: Array []
Received: Array [ "NAV[project-tabs] → 超出 220px(scrollW=547 clientW=327 overflow-x=auto)" ]
```

## 范围

`/projects/[projectId]` 的 `NAV[project-tabs]` 在 375px 视口下横向溢出(内容宽 547,容器宽 327)。

**二选一,实现者判断后写明理由**:

- **A 修布局** —— 让 tabs 在窄屏下换行/收起/滚动容器自适应,不溢出主文档流;
- **B 加 `data-allow-x-scroll="<理由>"`** —— spec 自己提供了这个逃生口(`responsive.spec.ts:110` 的提示逐字写着)。

⚠ **B 必须有真理由**(例如"tabs 本就该横向滚动,这是设计"),**不是为了消红**。若选 B,理由要写在属性值里,下一个人读得到。

## 验收

1. `pnpm exec playwright test e2e/responsive.spec.ts` → **90 passed**;
2. **反证**:把修复回退 → 该条必须变红。**先红后绿,贴证据**;
3. ⚠ **红了也要问是不是因为对的原因红的**(红线 10):确认红的是 `mobile-375 › /projects/p1` 这一条,不是别的视口或别的页面。

## 为什么它值得单独修

F14(phase-00)标着 `passing`,它的 verification 含这条命令。**修好它,F14 的 `passing` 就实质上是真的,人类不必动 feature status**(`passing` 不可逆是刻意设计,退回本身要改机制)。

⇒ **这是把 #517 从"需要人类决定"降级为"工程活"的那一刀。**

#517 的另两件(把 `responsive.spec.ts` 接进门控、给 doctor 补"verification 必须在门控可达范围内")**不在本 issue**,仍归 coord-architecture。

**Owner**:coord-chat-e2e(前端布局)| **优先级**:P1

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with e2e/responsive.spec.ts, especially the mobile-375 /projects/p1 check at line 39 and the data-allow-x-scroll escape hatch described near line 110. Trace the NAV[project-tabs] markup and styles on /projects/[projectId], then decide whether the tabs should adapt or intentionally scroll, documenting the reason if using the escape hatch. Run pnpm exec playwright test e2e/responsive.spec.ts and confirm 90 passed, then verify reverting the change makes only the named check fail.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript
Domain
frontend, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.