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