| content |
{"Commits":[{"Sha1":"ff5ee3351 {"Commits":[{"Sha1":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","Message":"feat(console): 接入权限说明与操作记录的操作对象快照\n\n后端已为权限增加可选说明,并在操作记录中返回操作对象类型、代码快照和展示摘要。控制台此前无法填写或查看权限说明,操作记录也看不出操作了哪个对象。\n\n实现内容:\n- 权限类型增加 description;完整清单提交时其余每条权限原样带上当前说明或 null,版本号固定为当前值加 1\n- 平台「新增或修改权限」弹窗增加可选说明多行框:预填已有说明、显示字数、上限 1000、拦截回车,换行/制表符/格式字符在前端提示,首尾空白去掉、清空或全空白提交 null\n- 后端返回 INVALID_PERMISSION_DESCRIPTION 时给出具体修改提示\n- PermissionLabel 支持显示说明;平台权限表、企业权限清单(搜索可匹配说明)与 PermissionPicker 显示说明,为空时不占位\n- PermissionPicker 中说明经 aria-describedby 关联,不并入勾选框名称\n- 操作记录列表在操作名称下显示「类型「代码」 · 应用」;未知类型统一称「对象」,无快照时省略\n- 操作记录详情增加「操作对象」,摘要优先 display_summary,原 summary 移到技术细节「内部摘要」;旧记录说明未记录对象名称\n- acceptance-t03 同步新的按钮名称\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、227 项通过(新增说明保留与清空、说明校验、编辑弹窗、选择器无障碍名称、操作对象快照与回退用例)\n- 浏览器在 1280 宽、375 窄屏及亮/暗色下用页面内临时拦截 fetch 模拟新字段检查显示:正常\n- 未与包含 V29 的新后端联调;acceptance-t03 未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-13T00:48:33-07:00"},{"Sha1":"9631e78cfeee4abd1ccb7e7f777864e4815ded49","Message":"chore: 合并 main 引入权限说明与操作对象快照后端\n\n前端接入权限说明与操作记录操作对象前,先把 main 上的后端交付(a435000、536e36c、85e2c17)合入前端分支。\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-13T00:33:36-07:00"},{"Sha1":"3973681b67a737220c25c4bc3f916ca2b687b5ee","Message":"feat(console): 重排个人中心并把登录记录改为当前登录加表格\n\n个人中心原先把邮箱、多因素验证放在最前,账号信息压在下方;登录记录每条都是一张大卡片,十几条记录要滚很久,已过期的登录也和当前登录一样醒目。本次按控制台其他页面的布局约定重排个人中心。\n\n实现内容:\n- 上排并列「我的账号」(名字首字头像 + 平台管理身份徽标)与「我的企业」(企业 / 你的身份 / 成员代码三列表格,手机上收窄内边距不必横向滚动)\n- 邮箱与多因素验证合并为「账号安全」卡片,左侧标题与说明、右侧内容,900px 以下上下排列;多因素验证面板与登录页共用,本次未改\n- 邮箱区域改用与多因素验证相同外观的状态摘要(未登记 / 未验证 / 已验证 + 投递状态);登记或发送验证邮件的表单点按钮后就地展开,展开后聚焦第一个字段,提交后无论成败都清除密码;「取消待处理的验证与恢复链接」改名为「作废已发出的邮件链接」并保持常驻(找回密码链接不体现在邮箱状态里)\n- 登录记录拆为「当前这次登录」单独一块(四个时间 + 期限规则)与「其他登录」表格(登录时间 + 编号缩写 / 状态 / 最近使用 / 自动退出于);表格时间用今天、昨天等简短写法,完整时间在悬停提示中\n- 已退出的登录不再显示退出按钮;已过期、已失效的登录仍可退出以撤销业务系统中残留的授权,按钮改为轻量样式,整行弱化\n- 退出确认弹窗底部改为「取消 + 确认退出」,补充最近使用时间,登录编号带名称与注解;账号标识同样带名称与注解\n- 单测改用新的邮箱按钮与字段名,新增「当前登录单独列出、已退出的登录不提供退出按钮」用例;acceptance-p11-t02 同步新的邮箱登记流程与已验证文案,acceptance-t05 依赖的类名与按钮名保持不变\n\n验证:\n- npm run format:check:通过\n- npm run typecheck:通过\n- npm run lint:通过\n- npm run test:26 个测试文件、224 项全部通过\n- 浏览器检查 1280 宽、375 窄屏与亮暗色,整页无横向溢出;邮箱登记表单与退出确认弹窗只打开查看,未实际提交\n- acceptance-p11-t02、acceptance-t05:未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-13T00:28:12-07:00"},{"Sha1":"2508f797ba72291a981665d5f4fcc4fb86280af8","Message":"feat(console): 为技术细节中的编号补充名称与用途注解\n\n技术细节原先只列出编号,部分地方连名称都没有,普通使用者看不懂这串字符是什么、什么时候用得上。本次为各页面技术细节中的编号、版本和代码补充名称与一句用途说明。\n\n实现内容:\n- TechDetails 展开后先显示一句总说明:这些编号用于定位记录,日常不需要关心,反馈问题时可复制给管理员或技术支持\n- DescriptionList 每项新增可选 hint,在值下方显示灰色注解;有注解时值包在 .dlist__value 中,按值定位的测试不受注解文字影响\n- 新增 lib/tech-hints.ts 统一注解文案:对象标识、记录版本、账号标识与成员标识的区别、密钥编号、客户端标识与客户端代码的区别等\n- 工作台账号标识、程序接入新建密钥后的密钥编号、应用接入新建客户端后的客户端标识原先只露出编号,改为带名称的描述列表并加注解\n- 企业、账号、成员、部门、用户组、应用接入、应用开通、角色、授权、程序接入、程序身份、权限查询接入、操作记录、状态变更影响预览中的技术细节逐项补充注解\n- 同步 acceptance-p10-t01、acceptance-t03 中按记录版本值定位的选择器为 dd .dlist__value\n\n验证:\n- npm run format:check:通过\n- npm run typecheck:通过\n- npm run lint:通过\n- npm run test:26 个测试文件、223 项全部通过(暂时移开个人中心未提交改动后单独运行)\n- 浏览器检查应用接入客户端详情抽屉的技术细节注解显示正常;其余页面未逐页目测\n- acceptance-p10-t01、acceptance-t03:未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-13T00:27:34-07:00"},{"Sha1":"e5c32be5d8e106d727495fd92d5b3bf6ab2a3b4f","Message":"feat(console): 把权限查询接入改为分区详情抽屉并以选择代替粘贴标识登记\n\n权限查询接入页列表与详情只显示一串 UUID,登记时需要手动粘贴企业、应用、服务三个标识;系统过期后状态仍显示「正常」,管理员无法看出它的查询已被拒绝。本次按控制台已定的列表、抽屉与弹窗样式重排该页。\n\n实现内容:\n- 列表改为「查询的应用 / 所属企业 / 到期时间 / 状态」,应用名称是打开详情的按钮、整行可点;企业与应用名称各读取第一页(最多 100 个),读不到时回退为「类别 + 标识前 8 位」\n- 正常但已过期的系统显示「已过期」徽标并提示查询会被拒绝,正常且 3 天内到期时提前提醒;列表新增定制空状态\n- 详情抽屉分「基本信息(企业、应用、服务名称)/ 密钥说明 / 停用(危险区)」,四个标识与固定查询范围收进技术细节;停用默认收起为按钮,展开后勾选确认、可取消,停用后抽屉保持打开并把焦点留在抽屉上\n- 登记改为两步:平铺列表选正常状态的企业,再用单选卡片选该企业已启用的应用和应用下的服务,填写摘要与到期时间(输入框限定现在至 30 天后);底部为「重新选择企业 / 确认登记」,提交字段与原来一致\n- 公共样式 .card__actions 不再收缩,卡片说明较长时操作按钮保持一行;600px 以下卡片头部换行,按钮排到标题下方\n- 同步登记单测为按企业、应用、服务选择的流程,acceptance-t03 的 A11 改为点击应用名称打开详情、展开停用并等待停用后的说明\n\n验证:\n- npm run format:check、npm run lint:通过\n- npx tsc -b:通过\n- npm run test:26 个测试文件、223 项全部通过\n- 浏览器在演示环境查看 1280 宽、375 窄屏与亮暗色;演示环境未开启登记功能,登记流程用页面内临时拦截请求验证,提交字段正确且未写入后端\n- acceptance-t03:未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-12T23:49:35-07:00"}],"HeadCommit":{"Sha1":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","Message":"feat(console): 接入权限说明与操作记录的操作对象快照\n\n后端已为权限增加可选说明,并在操作记录中返回操作对象类型、代码快照和展示摘要。控制台此前无法填写或查看权限说明,操作记录也看不出操作了哪个对象。\n\n实现内容:\n- 权限类型增加 description;完整清单提交时其余每条权限原样带上当前说明或 null,版本号固定为当前值加 1\n- 平台「新增或修改权限」弹窗增加可选说明多行框:预填已有说明、显示字数、上限 1000、拦截回车,换行/制表符/格式字符在前端提示,首尾空白去掉、清空或全空白提交 null\n- 后端返回 INVALID_PERMISSION_DESCRIPTION 时给出具体修改提示\n- PermissionLabel 支持显示说明;平台权限表、企业权限清单(搜索可匹配说明)与 PermissionPicker 显示说明,为空时不占位\n- PermissionPicker 中说明经 aria-describedby 关联,不并入勾选框名称\n- 操作记录列表在操作名称下显示「类型「代码」 · 应用」;未知类型统一称「对象」,无快照时省略\n- 操作记录详情增加「操作对象」,摘要优先 display_summary,原 summary 移到技术细节「内部摘要」;旧记录说明未记录对象名称\n- acceptance-t03 同步新的按钮名称\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、227 项通过(新增说明保留与清空、说明校验、编辑弹窗、选择器无障碍名称、操作对象快照与回退用例)\n- 浏览器在 1280 宽、375 窄屏及亮/暗色下用页面内临时拦截 fetch 模拟新字段检查显示:正常\n- 未与包含 V29 的新后端联调;acceptance-t03 未运行\n","AuthorEmail":"gamebyteyu@gmail.com","AuthorName":"starry","CommitterEmail":"gamebyteyu@gmail.com","CommitterName":"starry","Timestamp":"2026-10-13T00:48:33-07:00"},"CompareURL":"pengzhiyu/IAM/compare/85e2c17b4829f451e34f938ca6c11354a0b17f30...ff5ee33515b0a21b6ba738d00c52373fabfaa50d","Len":5}... |