boardx / boardx/workspacex

P2 fix(harness): consent-items-single-source 扫描器不覆盖 apps/api/scripts —— 种子脚本可以悄悄漂离单一事实源

Open Beginner friendly
#622 0 comments 0 reactions 0 assignees View on GitHub
backlog p2
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 盲区

`apps/api/tests/skill/consent-items-single-source.test.ts`(#533 的门控,钉住「同意项只有一处定义」)扫描范围是 `apps/api/src` + `packages/contracts/src`,**不覆盖 `apps/api/scripts/`**。

## 已真实发生过一次

`apps/api/scripts/seed-fullstack-smoke.ts` 给种子线程种录音授权时写的是字面量 `["record", "transcript", "ai_analysis"]`(三项)。#533 把同意项裁成四项后,这处字面量**没有跟着变**,也**没有任何门控告诉任何人**——直到 `fullstack-smoke` 的 CI 在步骤 7「会话内录音」上超时,实测追出 `403 CONSENT_NOT_COMPLETED`,才发现种子脚本只答得出 3/4。

⇒ **这处字面量对现有扫描器不可见**,发现它完全靠一次端到端 CI 失败加人工排查,不是靠机械门控。

## 建议

把 `consent-items-single-source.test.ts` 的扫描范围扩到 `apps/api/scripts/`(或者单独扫种子/fixture 目录),让「同一事实两处声明」的门控覆盖到测试基础设施本身,不只覆盖生产代码。

## 关联

- #533(同意项收敛为单一事实源)
- PR #585(本盲区的发现现场;已被人类批量关闭,修复以新 PR 重新提交,见 #533 后续)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with apps/api/tests/skill/consent-items-single-source.test.ts and inspect how it scans apps/api/src and packages/contracts/src. Extend the scan to apps/api/scripts, then run the focused consent-items single-source test. Done means the existing seed-fullstack-smoke.ts literal is covered and duplicate consent-item declarations fail the gate.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
testing
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.