@routerhub/agent-rules 1.5.225 → 1.5.226
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.base.md +4 -0
- package/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/rules/frontend.md +4 -0
package/AGENTS.base.md
CHANGED
|
@@ -947,6 +947,10 @@ Chrome Helper 会越积越多,表现为“agent-browser 用着用着越来越
|
|
|
947
947
|
## 前端规则
|
|
948
948
|
|
|
949
949
|
- ⚠️ **默认隐藏滚动条**:页面/容器出现滚动需求时,滚动条默认隐藏(内容仍可正常滚动),不得让滚动条可见。仅当用户明确说「需要滚动条」「可以有滚动条」「显示滚动条」等表述时,才允许显示。
|
|
950
|
+
- ⚠️ **筛选/查询控件变更后必须自动触发查询,禁止让用户再手动点一次 Search**:状态筛选(下拉)、关键字输入、日期范围、单选/多选等任何会改变查询条件的控件,值一变就自动重新查询,用户不需要再点一下查询按钮才出结果。**Search 按钮可以保留,但只能作为「手动重查」的兜底,不得是唯一触发方式**;Reset / 清空同理。
|
|
951
|
+
- ⚠️ **输入框类(关键字、ID、名称)必须先 debounce 再查**(如 300ms 内连续输入只发最后一次请求),否则每敲一个字符打一次接口——既打爆后端,结果也会边打字边跳;下拉 / 日期 / 单选这类「一次选完」的控件变更后立即触发,不必防抖。
|
|
952
|
+
- ⚠️ **筛选条件变更后必须回到第 1 页**:不重置分页时,用户在第 5 页改条件 → 新结果只有 1 页 → 页面空白,看起来像「筛不出来」,实际是页码越界。
|
|
953
|
+
- **类比:自动门——人走到门口它自己就开,不需要走到跟前再伸手按一下按钮;按钮留着当手动开关没问题,但不该是唯一的进门方式。**
|
|
950
954
|
- ⚠️ **依赖安装统一 `pnpm`**,禁止 `npm install` / `yarn install`(pnpm workspace 混合安装会破坏依赖结构)。
|
|
951
955
|
- ⚠️ **API 请求严格使用 OpenAPI 生成的方法,禁止手写请求或直接拼接路径**;接口变更后先更新 OpenAPI 定义并重新生成 API 代码,再进行业务开发。
|
|
952
956
|
- ⚠️ **用 `console.error` 记录错误**(含函数名/模块名上下文),禁止用 `console.log` 输出错误;提交前移除调试日志和临时代码。
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
所有对 @routerhub/agent-rules 的重大更改都会记录在这个文件中。
|
|
4
4
|
|
|
5
|
+
## [1.5.226] - 2026-09-18
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **新增「筛选/查询控件变更后必须自动触发查询」前端规则(`<!-- @domain: frontend -->` 段,只对前端文件生效)**:起因是用户在 RouterHub Admin 的 Resource Accounts 页(`test-admin.horizonapi.ai/models/resource-accounts`)提出——页面上有 Account ID 搜索框 + All Statuses 状态下拉 + 一个 Search 按钮,用户每次改完筛选条件都得再点一下 Search 才出结果,「每一次弄完之后自己要再点一下 search 就会很累」。因此固化:**状态筛选、关键字输入、日期范围、单选/多选等任何会改变查询条件的控件,值一变就自动重新查询**;Search 按钮可以保留、但只能作为「手动重查」的兜底,**不得是唯一触发方式**(按用户选定口径:一律自动搜索,不设例外;按钮保留但不再必需)。
|
|
10
|
+
- **两个配套子项(不写会各自变成一个具体的坏体验)**:① **输入框类必须先 debounce 再查**——关键字/ID/名称这类逐字符输入的控件不做防抖,就是每敲一个字符打一次接口,既打爆后端、结果也边打字边跳;下拉/日期/单选这类「一次选完」的控件则立即触发,不必防抖。② **筛选条件变更后必须回到第 1 页**——不重置分页时,用户在第 5 页改条件 → 新结果只有 1 页 → 页面空白,看起来像「筛不出来」,实际是页码越界。
|
|
11
|
+
- **落点**:`AGENTS.base.md` 的「前端规则」章节(紧随「默认隐藏滚动条」之后,两条同属交互/UI 行为类),sync 后进 `rules/frontend.md` 与 `.github/instructions/frontend.instructions.md`(`applyTo: **/*.ts|tsx|js|jsx|vue|css|scss`),不污染后端域的提示词。
|
|
12
|
+
|
|
5
13
|
## [1.5.225] - 2026-09-18
|
|
6
14
|
|
|
7
15
|
### Changed
|
package/package.json
CHANGED
package/rules/frontend.md
CHANGED
|
@@ -7,6 +7,10 @@ outputName: "frontend"
|
|
|
7
7
|
## 前端规则
|
|
8
8
|
|
|
9
9
|
- ⚠️ **默认隐藏滚动条**:页面/容器出现滚动需求时,滚动条默认隐藏(内容仍可正常滚动),不得让滚动条可见。仅当用户明确说「需要滚动条」「可以有滚动条」「显示滚动条」等表述时,才允许显示。
|
|
10
|
+
- ⚠️ **筛选/查询控件变更后必须自动触发查询,禁止让用户再手动点一次 Search**:状态筛选(下拉)、关键字输入、日期范围、单选/多选等任何会改变查询条件的控件,值一变就自动重新查询,用户不需要再点一下查询按钮才出结果。**Search 按钮可以保留,但只能作为「手动重查」的兜底,不得是唯一触发方式**;Reset / 清空同理。
|
|
11
|
+
- ⚠️ **输入框类(关键字、ID、名称)必须先 debounce 再查**(如 300ms 内连续输入只发最后一次请求),否则每敲一个字符打一次接口——既打爆后端,结果也会边打字边跳;下拉 / 日期 / 单选这类「一次选完」的控件变更后立即触发,不必防抖。
|
|
12
|
+
- ⚠️ **筛选条件变更后必须回到第 1 页**:不重置分页时,用户在第 5 页改条件 → 新结果只有 1 页 → 页面空白,看起来像「筛不出来」,实际是页码越界。
|
|
13
|
+
- **类比:自动门——人走到门口它自己就开,不需要走到跟前再伸手按一下按钮;按钮留着当手动开关没问题,但不该是唯一的进门方式。**
|
|
10
14
|
- ⚠️ **依赖安装统一 `pnpm`**,禁止 `npm install` / `yarn install`(pnpm workspace 混合安装会破坏依赖结构)。
|
|
11
15
|
- ⚠️ **API 请求严格使用 OpenAPI 生成的方法,禁止手写请求或直接拼接路径**;接口变更后先更新 OpenAPI 定义并重新生成 API 代码,再进行业务开发。
|
|
12
16
|
- ⚠️ **用 `console.error` 记录错误**(含函数名/模块名上下文),禁止用 `console.log` 输出错误;提交前移除调试日志和临时代码。
|