peanut
74a2c15b6b
feat: 完善人生轨迹详情页功能及微信小程序登录优化
2026-06-15 10:17:30 +08:00
peanut
e55c3acc6a
feat: extend UserProfileResponse with city/industry/company/personalityTags/birthday
2026-06-04 08:06:32 +08:00
peanut
059e7f8f52
feat: extend UserProfileUpdateRequest with city/industry/company/personalityTags/birthday
2026-06-04 08:05:55 +08:00
peanut
b784942079
feat: extend UserProfileCreateRequest with city/industry/company/personalityTags/birthday
2026-06-04 08:05:23 +08:00
peanut
b0a82dea13
feat: extend UserProfile entity with city/industry/company/personalityTags/birthday
2026-06-04 08:04:49 +08:00
peanut
e23eb32c1d
test: 集成测试验证 RestTemplate 运行时 User-Agent 为 Mozilla/5.0
2026-06-03 23:46:03 +08:00
peanut
2413b2bf58
feat(exception): GlobalExceptionHandler 新增 WechatApiException handler
...
解决问题:
- WechatApiException 抛出后未统一处理,会冒泡到 Spring 默认错误页(500 HTML)
- 前端拿不到结构化错误信息
改动:
- 新增 @ExceptionHandler(WechatApiException.class) 方法
- code=400 -> Result.badRequest()(微信业务错误)
- code=502 -> Result.error(502, message)(上游/网络错误)
- 其他(code=500) -> Result.error(message)(内部 JSON 解析错误)
- 日志记录 code 和 message(已确保不含敏感信息)
- 风格与现有 BusinessException handler 保持一致
2026-06-03 23:24:44 +08:00
peanut
76d4d7465c
feat(wechat): 重写 code2Session 实现 5 步防御性处理
...
解决问题:
- 微信API返回 text/plain 时 JSONObject.parseObject 抛异常导致用户500
- 网络异常时 RestClientException 未被捕获
- 业务错误码(errcode != 0)未处理
实现 5 步防御:
1. 网络层:捕获 ResourceAccessException / RestClientException -> 502
2. HTTP 状态:手动检查 is2xxSuccessful(因 WechatResponseErrorHandler 让 4xx/5xx 不抛)-> 502
3. Content-Type:检查 isCompatibleWith(APPLICATION_JSON) -> 502
4. JSON 解析:try/catch 包裹 parseObject -> 500
5. 业务码:检查 errcode == 0 -> 400
TDD:先写 10 测试场景覆盖所有分支,再实现
- 正常 JSON 成功
- HTTP 4xx / 5xx
- Content-Type: text/plain / text/html
- JSON 解析失败
- 业务错误码 40029 / 40163
- 网络异常(ResourceAccessException)
- 响应缺少 session_key
2026-06-03 23:14:09 +08:00
peanut
012fa46d3a
feat(wechat): 重写 RestTemplateConfig 统一 RestTemplate Bean
...
解决问题:
- WAF 拦截 Java/17.0.x 默认 User-Agent
- 无超时设置(线程可能被 hang 住)
- 无请求/响应日志(出问题时无排查依据)
改动:
- 用 BufferingClientHttpRequestFactory 包装 SimpleClientHttpRequestFactory
(响应体缓存为字节数组,Interceptor/ErrorHandler/Converter 可多次读)
- 显式 User-Agent: Mozilla/5.0 (compatible; EmotionMuseum/1.0)
- 显式 Accept: application/json, text/plain, */*
- connect timeout 5s, read timeout 10s
- additionalInterceptors 加 WechatApiLoggingInterceptor(脱敏)
- additionalMessageConverters 加 StringHttpMessageConverter(UTF_8)
- errorHandler 用 WechatResponseErrorHandler(4xx/5xx 不抛)
兼容性:
- 7 个其他 RestTemplate 使用点(DifyProviderAdapter、
CozeProviderAdapter、HttpTtsEngineClient、AsrServiceImpl、
ApiEndpointServiceImpl、AiChatServiceImpl、ApiTestProxyController)
行为完全不变(BufferingClientHttpRequestFactory 兼容所有流式 API)
2026-06-03 22:46:30 +08:00
peanut
9c785a675c
feat(wechat): 新增 WechatResponseErrorHandler
...
- 继承 DefaultResponseErrorHandler
- 显式重写 hasError() 委托父类判断(4xx/5xx)
- handleError() 仅记录日志不抛异常
- 不在 handler 读 body(避免流消费,由 LoggingInterceptor 统一处理)
2026-06-03 22:39:20 +08:00
peanut
4452d0301c
feat(wechat): 新增 WechatApiLoggingInterceptor 拦截器(含脱敏单元测试)
...
- ClientHttpRequestInterceptor 实现
- URL/method/status/content-type 用 INFO 级别
- body 用 DEBUG 级别,MAX_BODY_LOG=2048 截断
- 脱敏正则覆盖 session_key/openid/unionid/access_token/refresh_token/secret/appsecret
- 配合 BufferingClientHttpRequestFactory 使用避免流被消费
- 4 个单元测试覆盖主要脱敏场景
2026-06-03 22:37:22 +08:00
peanut
35baa6c958
feat(wechat): 新增 WechatApiException 业务异常类
...
- 继承 RuntimeException
- code 字段使用 HTTP 风格状态码(400/500/502)
- rawBody 字段保留原始响应体用于排查
- 配套 Getter 由 Lombok @Getter 生成
2026-06-03 22:23:40 +08:00
peanut
c289097ca0
feat: TTS 服务功能完善(任务管理、配置优化、客户端实现)
2026-05-26 20:49:58 +08:00
peanut
d2e449ec4c
feat: 日志保存时写入 userName 字段
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 22:34:29 +08:00
peanut
d818367a32
feat: 调用日志实体新增 userName 字段及数据库迁移脚本
2026-05-25 22:29:50 +08:00
peanut
84af570841
test: AI 流式服务单元测试
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-24 18:39:31 +08:00
peanut
886f04046b
feat: AI 流式服务完善、ProviderHttp 优化及 web-admin API 调整
...
- AiRuntimeServiceImpl: 流式输出逻辑优化,支持多 Provider 适配
- ProviderHttpSupport: HTTP 请求处理优化
- AiRoutingController: 新增日志查询接口
- AiCallLogService: 分页查询支持
- AiRuntimeRequest: 补充用户字段
- web-admin aiconfig API: 新增分页查询接口
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-24 18:35:56 +08:00
peanut
b4af9fc99b
feat: AI 调用日志 Service 分页查询和 Controller POST 接口
2026-05-24 11:49:15 +08:00
peanut
b39a9b8b4b
feat: 新增 AI 调用日志查询请求 DTO
2026-05-24 11:45:41 +08:00
peanut
9838e7626b
feat: 分析模块、接口管理及其他功能优化
...
- 后端: WebMvcConfig/拦截器/AnalyticsService/Mapper/测试优化,新增 Knife4jConfig、AnalyticsDictionary、数据库迁移脚本
- 前端: 分析仪表盘 UI 优化、接口管理列表及详情测试面板
- 小程序: analytics 服务优化、request 增强
- 文档: 分析模块中文标签设计文档、品牌重命名设计文档
- 部署: conf 配置优化、deploy.py 脚本更新
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 23:52:39 +08:00
peanut
d1a0018d1b
feat: 全量 Controller 接口中文注解补全完成
...
- 39 个 Controller 全部添加 @Tag/@Operation/@Parameter 中文注解(共 278 个 @Operation)
- 分 3 批实施:Batch 1 AI+社区(7)、Batch 2 情绪+日记+互动(11)、Batch 3 其他(13)
- 已有注解的 8 个 Controller 不重复修改
- 编译验证通过:mvn clean install -DskipTests — BUILD SUCCESS
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 23:27:39 +08:00
peanut
c80c7b6bbe
feat: 为 Batch 1 请求 DTO 补全 @Schema 中文描述注解
...
13 个 DTO 共补全 73 个字段的中文描述:
- 认证相关: LoginRequest, RegisterRequest, ResetPasswordRequest, RefreshTokenRequest
- 管理员相关: AdminLoginRequest, AdminCreateRequest, AdminUpdateRequest, AdminPageRequest
- 用户相关: UserCreateRequest, UserUpdateRequest, UserPageRequest, UserProfileUpdateRequest
- 分析相关: AnalyticsQueryRequest
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 21:37:47 +08:00
peanut
f010761871
feat: 为 Admin/Token/AdminAnalytics/User/UserProfile Controller 补全 OpenAPI 注解
...
- AdminController: 4 个 @RequestParam 补全 @Parameter
- TokenController: 调整 @Operation 注解顺序
- AdminAnalyticsController: 新增 @Tag + 6 个 @Operation
- UserController: 新增 @Tag + 7 个 @Operation + 2 个 @Parameter
- UserProfileController: 新增 @Tag + 7 个 @Operation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 21:29:31 +08:00
peanut
58cf073625
feat: 补全 AuthController 缺失的 @Operation 和 @Parameter 注解
...
为 8 个缺少 OpenAPI 注解的方法补全中文描述:
getCurrentUserInfo, logout, refreshToken, validateToken,
getUsernameFromToken, checkAccount, checkEmail, checkPhone
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 21:25:44 +08:00
peanut
a4c99b9b0b
feat: 接口管理功能 - 分页查询、详情查看、测试代理
...
- 后端:OpenAPI spec 解析同步、接口分页查询、代理测试(SSRF防护)
- 前端:接口列表页、详情对话框(详情/测试双标签)、Token来源选择
- 服务启动自动同步接口数据,支持手动触发同步
- 测试代理路径修复:自动添加 /api 前缀以匹配后端 SSRF 校验
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 19:19:08 +08:00
peanut
128e163688
fix: 修复 OpenAPI 方法名大小写解析问题,添加建表 SQL
2026-05-23 18:40:27 +08:00
peanut
89fbc6437a
feat: 添加接口管理功能(后端OpenAPI解析入库+前端列表/详情/测试)
...
- 新增 ApiEndpoint/ApiParam 实体和 Mapper
- 新增 DTO 层(分页查询请求、列表项、详情项、参数项、代理测试请求/响应)
- 新增 ApiEndpointService 含 OpenAPI JSON 解析、\ 展开(最大10层)、分页查询
- 新增 ApiEndpointSyncRunner 启动时异步同步
- 新增 ApiEndpointController 分页/详情/手动同步接口
- 新增 ApiTestProxyController 代理测试接口(SSRF 防护)
- 前端新增接口列表页、详情弹窗(含测试面板、Token 来源选择)
- 前端新增菜单和路由
2026-05-23 18:21:07 +08:00
peanut
bdb4fd8c8e
feat: AI测试输出渲染Markdown/流式响应、Coze/Dify适配器优化
...
- 新增 MarkdownPreview 组件,支持 AI 测试输出 Markdown 渲染
- Coze 适配器优化:支持流式响应、工作流接口调用、SSE事件处理
- Dify 适配器优化:支持停止接口、流式聊天、SSE事件解析
- web-admin 添加 markdown-it 和 highlight.js 依赖
- AI 配置列表页面优化测试对话框输出显示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 16:24:07 +08:00
peanut
d3746fa6c7
feat: AI端点测试动态参数表单、接口工作流行内测试、本地开发环境改为线上域名
...
- 后端新增 /ai/endpoint/test 和 /ai/endpoint/stream 接口,支持直接端点测试
- 前端增加行内测试功能(场景绑定+接口工作流)
- 测试对话框增加动态参数表单和参数定义编辑
- 支持 _meta 格式的默认输入参数处理
- web、web-admin 本地开发环境 API 调用改为线上域名 https://lifescript.happylifeos.com
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 16:10:24 +08:00
peanut
e06b22ad69
feat: AI 测试对话框增加动态参数表单和参数定义编辑
...
- 测试对话框支持从 defaultInputs 解析参数并渲染动态表单
- 支持 _meta 格式的参数定义(label/type/required/value)
- 接口工作流编辑页面增加参数定义区域(增删改)
- 后端 AiTemplateRenderer.mergeInputs 兼容 _meta 格式
- JSON 编辑区折叠为「高级编辑」模式
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 15:01:21 +08:00
peanut
cccb720060
feat: 后端新增 /ai/endpoint/test 和 /ai/endpoint/stream 接口
...
- AiRuntimeRequest DTO 新增 endpointId 字段
- AiRuntimeService 接口新增 testEndpoint 和 invokeEndpointStream
- AiRuntimeServiceImpl 实现 endpoint 直调链路(绕过场景解析)
- AiRoutingController 新增 /endpoint/test 和 /endpoint/stream
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 14:13:25 +08:00
peanut
89fc42819d
feat: AI 场景路由、ASR 服务及前后端全链路同步
...
- 新增 AI 场景路由控制器和管理接口
- 新增 ASR 语音识别服务及前后端集成
- 同步 AI Runtime 客户端到 Web/小程序/Life-Script
- 完善 AI 配置测试修复和管理后台路由配置
- 新增数据库迁移脚本
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 13:25:21 +08:00
peanut
d77090aa5e
fix: 修复 Dify 非流式测试 user_id 缺失和超时问题
...
- enrichInputs 增加 user_id 下划线字段注入(Dify API 要求下划线格式)
- testAiRuntime 接口超时从 15 秒延长到 60 秒
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-23 13:19:18 +08:00
peanut
ee5a6aba5d
feat: 小程序脚本首页重构 + 社交数据导入 + TTS 播放优化
...
- 后端:新增社交数据导入/审批/洞察生成 API(SocialContent/SocialInsight)
- 后端:优化脚本上下文服务,TTS 服务增强
- 小程序:重构脚本首页布局,新增社交导入页面
- 小程序:新增 useTtsPlayer composable,移除旧 ScriptAudioPlayer 组件
- 小程序:新增社交导入服务,优化请求服务
- SQL:新增社交数据导入建表脚本
- 文档:补充设计文档和实施计划
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-20 07:18:02 +08:00
peanut
06b2e16813
重构:统一 Python 部署脚本并修复编码问题
...
- 新增 deploy.py 统一部署脚本(调用各子目录 .py 脚本)
- 保留 deploy.sh 统一部署脚本(调用各子目录 .sh 脚本)
- 删除旧的 deploy-all.sh / deploy-domain.sh / deploy-to-prod.sh
- 修复 Windows GBK 编码导致的 UnicodeDecodeError/UnicodeEncodeError
- 修复 nginx 远程目录自动创建
- 移除 backend-single/deploy.py 和 web/deploy.py 中的 emoji 字符
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-17 18:09:34 +08:00
peanut
6b426c2b68
feat: add script tts backend
2026-05-17 16:36:06 +08:00
peanut
3decff526a
feat: add analytics backend
2026-05-17 10:14:08 +08:00
peanut
755059807a
feat: 优化管理后台页面UI、修复TS编译错误、新增人生事件模块
...
- 优化 AI 配置列表页面:重构统计卡片、搜索表单、表格列展示
- 修复 3 处 TypeScript TS6133 编译错误,恢复构建
- 新增管理员修改密码和重置密码功能
- 优化小程序多个页面样式和交互
- 人生事件模块完善
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-10 23:23:09 +08:00
peanut
60c63850ee
feat: 修复 Redis 超时问题、固定小程序端口、新增人生事件模块及优化多个页面
...
- 修复 Redis 超时:添加 commons-pool2 依赖,启用 Lettuce 连接池,超时提升至 15s
- 固定 mini-program H5 端口为 5175,避免与 web 项目端口冲突
- 新增人生事件(life-event)模块:表单和详情页面
- 新增 EpicScript 灵感接口(Controller/Service/DTO)
- 优化登录、引导、主页、记录、剧本详情等多个页面
- 优化服务管理脚本和 Nginx 配置
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-10 11:38:35 +08:00
peanut
507d1ebdab
chore: 修改 local 配置,使用与 prod 一致的 MySQL 和 Redis 配置
...
将本地数据库和 Redis 从 localhost 改为远程服务器 101.200.208.45,
包括密码、连接池参数等与生产环境保持一致,确保本地开发与生产环境一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-08 23:55:38 +08:00
peanut
f4bc9f6dab
后台管理功能补充
2025-12-25 00:13:42 +08:00
peanut
31cc78038b
增加修改和删除功能
2025-12-24 15:20:58 +08:00
peanut
1aa39e11b4
life-script启动后地址栏无限重复切换bug修复
2025-12-24 11:38:48 +08:00
peanut
700438ca42
AI对话bug修复
2025-12-23 23:04:32 +08:00
peanut
56cacb7163
人生轨迹功能完善
2025-12-23 22:10:25 +08:00
peanut
97abbefaa3
bug修复
2025-12-23 17:43:33 +08:00
peanut
7f89fd17d3
AI配置增加字段适配处理
2025-12-23 16:51:53 +08:00
peanut
1fefd98d74
bug修复
2025-12-22 23:40:47 +08:00
peanut
7d53a059d7
添加字典功能及初始化数据
2025-12-22 21:56:10 +08:00
peanut
180fe20347
Coze接口配置及调用变更
2025-12-22 18:02:35 +08:00