70 Commits

Author SHA1 Message Date
peanut 094953f1c3 feat: 小程序页面优化和新增剧本库功能 2026-05-30 20:53:18 +08:00
peanut d09f600751 feat: 小程序剧本、个人信息页、AI 运行时及 TTS 服务优化 2026-05-26 20:50:20 +08:00
peanut 812e126b2b refactor: 移除爽文页面我的剧本按钮和人生素材画像容器
移除我的剧本按钮(模板、样式、方法),用户可通过底部我的Tab查看剧本
移除人生素材画像容器组件(模板、样式、JS逻辑)
保留导入社交数据按钮及完整流程
useSocialInsights 改为默认 true,后端自动判断是否有可用画像
清理未使用的 socialImport 导入、confirmedInsights、loadConfirmedInsights 等

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 21:28:29 +08:00
peanut fc14051073 feat: 小程序菜单按钮安全区域适配工具
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:39:28 +08:00
peanut 6e5a379bef docs: 补充 AI 打字机输出、小程序灵感卡片、脚本主页布局等设计文档和计划
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:39:26 +08:00
peanut 64476eee6d feat: AI 打字机流式输出、小程序脚本主页布局及灵感卡片优化
- life-script: 新增 aiRuntime 打字机流式服务,PathView/ScriptView/TimelineView 接入打字机效果
- mini-program: ScriptView 重构为打字机输出 + 卡片式灵感列表,主页布局优化
- web: aiRuntime 服务新增流式输出支持
- chat store: 消息状态管理和打字机流式渲染支持

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:35:33 +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 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 8f8434ec14 fix: 小程序 DEV 环境回退地址从 localhost 改为生产域名
env.js 中 DEV 配置的 fallback 地址为 localhost:19089,当 Vite 环境变量
未正确注入时(UniApp 小程序编译常见问题),会回退到 localhost 导致
微信开发者工具请求失败。改为指向生产域名 lifescript.happylifeos.com。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 20:07:19 +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 6b426c2b68 feat: add script tts backend 2026-05-17 16:36:06 +08:00
peanut 1016111d19 feat: add frontend analytics tracking 2026-05-17 10:18:56 +08:00
peanut 6542912d93 feat: add script tts player UI 2026-05-17 10:10:01 +08:00
peanut eb83384623 feat: 优化小程序人生事件详情、表单页及人生剧本页面样式
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 22:52:26 +08:00
peanut f62ae880be feat: 优化小程序人生事件详情页、表单页和记录视图页样式
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 00:30:37 +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 0b795cc340 feat(mini-program): 优化登录页视觉设计,提升用户体验 2026-05-01 22:58:58 +08:00
peanut 2ed66d8500 fix(mini-program): 修复 WebSocket URL 配置,通过 Nginx 代理访问
将开发环境 WebSocket URL 从直接连接后端端口 19089 改为通过
Nginx 代理的 wss://lifescript.happylifeos.com/ws 路径。

原因:后端 19089 端口是 HTTP,不支持 WSS 连接。小程序通过
Nginx 的 /ws 代理路径访问,由 Nginx 处理 SSL 终止和 WebSocket
升级,再转发到后端 19089 端口。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 19:55:20 +08:00
peanut f4f8aab22a chore: 批量提交未提交的更改 2026-04-08 22:40:21 +08:00
peanut 59503d05a5 fix(mini-program): 开发环境配置改回 IP 地址访问 2026-04-08 22:14:48 +08:00
peanut a2257611e1 fix(mini-program): 开发环境配置改为域名访问 (HTTPS/WSS) 2026-04-08 21:25:28 +08:00
peanut 817ea987f1 fix(mini-program): 调整剧本详情页容器 padding 位置
修改:
- 移除 .detail-content 的 padding
- .content-container 添加 padding: 24rpx 32rpx 32rpx 和 box-sizing: border-box

原因:
- scroll-view 在小程序中不适合直接承担内容留白
- 由内部容器控制 padding 更稳定

效果:
- 卡片与屏幕边缘有适中间距
- 布局更稳定
2026-04-08 20:58:40 +08:00
peanut e1097cbbee fix(mini-program): 修复 logo.svg 500 错误和编译问题
问题:
- SVG 文件使用 filter 和 style 属性导致小程序编译错误
- 错误信息:ReferenceError: $1 is not defined

修复:
1. 简化 SVG 文件,移除 filter 和 style 属性
   - 移除 filter (feGaussianBlur, feMerge)
   - 移除 style 属性,改用直接属性 (stop-color 替代 style="stop-color:xxx")
   - 移除 filter="url(#glow)" 引用

2. 恢复 vite.config.js 的 publicDir 配置
   - publicDir 指向 mini-program/static 目录
   - SVG 文件编译到输出目录根位置

3. 更新图片引用路径
   - splash/index.vue: /static/logo.svg
   - main/index.vue: /static/logo.svg

效果:
- logo.svg 正确编译到 unpackage/dist/dev/mp-weixin/logo.svg
- 不再出现 $1 is not defined 错误
- 小程序正常加载 logo 图片
2026-04-08 19:12:04 +08:00
peanut 8dab3f4fa6 fix(mini-program): 修复剧本详情页容器边距与创造未来页面一致
问题根源:
- 详情页卡片没有独立的 margin,依赖父容器 padding
- 创造未来页面使用 gap 管理卡片间距,详情页没有

修复方案 (方案 B):
- .detail-content padding 从 24rpx 48rpx 48rpx → 24rpx 24rpx 32rpx
- .content-container gap 从 32rpx → 24rpx

效果:
- 卡片与屏幕边缘有适中间距 (24rpx)
- 卡片之间有统一间距 (24rpx)
- 与创造未来页面的样式保持一致
2026-04-08 07:58:26 +08:00
peanut becbc6b353 fix(mini-program): 调整剧本详情页卡片边距
修改:
- .detail-content 左右 padding 从 40rpx → 48rpx
- .detail-content 底部 padding 从 40rpx → 48rpx

效果:
- 卡片与屏幕边缘有适中间距
- 圆角边框完整可见
- 布局更有呼吸感
2026-04-07 23:53:11 +08:00
peanut fbf76611d1 fix(mini-program): 修复 logo.svg 500 错误
问题:
- 小程序请求 /static/logo.svg 返回 500 错误
- logo.svg 文件在 src/static/ 目录,但编译后未被复制到输出目录

修复:
1. 在 mini-program/ 根目录创建 static/ 目录
2. 将 logo.svg 复制到 mini-program/static/logo.svg
3. 修改 vite.config.js 添加 publicDir 配置,让 Vite 复制 static 目录
4. 更新图片路径:/static/logo.svg → /logo.svg
   - pages/splash/index.vue
   - pages/main/index.vue

效果:
- logo.svg 正确编译到 unpackage/dist/dev/mp-weixin/logo.svg
- 小程序正常加载 logo 图片
- 不再出现 500 错误
2026-04-07 23:39:12 +08:00
peanut b6bf97bc36 fix(mini-program): 修复剧本详情页卡片边距与屏幕重叠问题
问题:
- 信息卡片和正文卡片的圆角边框紧贴屏幕边缘
- 容器圆角被截断,视觉显示不完整
- 底部边距不足,卡片圆角显示不完整

修复:
- .detail-content 左右 padding 从 32rpx 增加到 40rpx
- .detail-content 顶部 padding 从 20rpx 增加到 24rpx
- .detail-content 底部 padding 从 32rpx 增加到 40rpx
- 移除 .content-container 的 padding-bottom,由父容器统一控制

效果:
- 卡片与屏幕边缘有足够间距(40rpx)
- 卡片圆角(40rpx)能完整展示
- 整体布局更加美观协调
2026-04-07 23:04:34 +08:00
peanut 21c07ba450 fix(mini-program): 修复剧本详情页内容超出屏幕和间距问题
修复内容:
1. 信息卡片右侧超出屏幕:
   - .info-value 添加 flex:1 + overflow: hidden + word-break: break-all
   - 长文本自动换行,不会超出屏幕
   - .info-label 添加 flex-shrink: 0 防止被压缩
   - .info-row 添加 min-width: 0 防止 flex 子项溢出

2. 卡片顶部与 header 无间距:
   - .detail-content padding 顶部从 0 改为 20rpx

3. 正文区域右侧超出:
   - .full-content 添加 overflow: hidden + word-break: break-all
   - Markdown 内容自动换行
2026-04-07 22:56:20 +08:00
peanut ec7c07d187 feat(mini-program): 添加情绪博物馆主题 Logo
设计理念:情绪圣殿 - 情绪是内心的圣殿,需要被尊重和探索

设计元素:
- 背景:紫色渐变圆角正方形 (#A855F7 → #9333EA → #7C3AED)
- 神殿柱廊:三根柱子,代表情绪的多维度
- 中心核心:发光的椭圆,象征情绪核心
- 顶部星芒:呼应应用"星海"概念
- 四角星光:点缀装饰

配色严格使用项目主题色:
- #A855F7: 主紫色
- #9333EA: 深紫色
- #7C3AED: 更深紫色
- #C084FC: 浅紫色
- #E879F9: 粉紫色
2026-04-07 22:47:34 +08:00
peanut 8338204bcc fix(mini-program): 彻底修复剧本详情页布局超出屏幕问题
根本原因:
- height: 100vh 在小程序中包含状态栏区域,导致内容超出可视范围
- CSS env(safe-area-inset-top) 和 max() 函数在 uni-app 中支持有限

修复方案:
- 改用 height: 100% 替代 100vh
- 添加独立的状态栏占位 view,高度从 App.vue 存储的全局值读取
- 移除对 CSS env() 和 max() 函数的依赖
- header 顶部 padding 改用固定值 12px
2026-04-07 22:26:17 +08:00
peanut b8dc438cbe fix(mini-program): 修复剧本详情页样式和内容显示问题
样式修复:
- 标题添加 flex:1 和 text-overflow: ellipsis,长文本自动省略
- 标题添加左右 margin,避免与返回按钮重叠
- 返回按钮添加 flex-shrink:0 和 z-index,确保不被压缩

内容显示修复:
- 优先读取 script.content 字段(转换后的标准格式)
- 兼容 script.plotJson.fullContent 格式(旧数据)
2026-04-07 22:17:39 +08:00
peanut ae7392c37e fix(mini-program): 修复剧本详情页顶部被遮挡和布局溢出问题
- 添加 overflow: hidden 防止整体页面溢出
- 使用 env(safe-area-inset-top) 适配刘海屏安全区域
- 内容区改为 overflow-y: auto 实现局部滚动
- 调整 padding 避免顶部内容被状态栏遮挡
2026-04-07 22:08:21 +08:00
peanut 5e68bbfe71 style(mini-program): 优化核心参数选项按钮样式
- 减小 padding 从 12rpx 20rpx → 8rpx 12rpx,按钮更紧凑
- 添加 text-align: center,文字居中显示
- 移除 white-space: nowrap,允许内容换行
2026-04-07 21:59:11 +08:00
peanut b42c329618 style(mini-program): 修复剧本生成器核心参数区域布局
- 将叙事风格和故事篇幅选项从 flex-wrap 改为 grid 两列布局
- 与原型图保持一致 (grid-cols-2)
2026-04-07 21:54:50 +08:00
peanut 67f8c75a45 style(mini-program): 优化创造未来页面布局与原型一致
修改内容:
- .npc-form: 从两列改为三列等分布局 (grid-template-columns: 1fr 1fr 1fr)
- 姓名、角色、关系三个输入框在同一行,宽度一致
- textarea 跨越三列,宽度与上方三个输入框总宽度一致

验收标准:
- [x] NPC 表单:姓名 | 角色 | 关系三列等分布局
- [x] textarea 跨越三列
- [x] 核心参数容器间距 24rpx(已符合)
- [x] 参数选项按钮间距 10rpx(已符合)

解决 issues: 小程序"创造未来"页面关键配角区域两列布局导致
            关系选择器换行,与原型三列布局不一致
2026-04-07 21:50:47 +08:00
peanut 2192946965 style(mini-program): 优化生成剧本按钮样式与原型一致
修改内容:
- ScriptView.vue.generate-btn: 添加渐变背景、文字居中、调整圆角为 32rpx
- App.vue.btn-primary: 添加文字居中样式 (display: flex + align/justify)

样式变更:
- 背景:添加 linear-gradient(135deg, #9333EA 0%, #7C3AED 100%)
- 文字:垂直和水平居中对齐
- 圆角:40rpx → 32rpx(与原型 rounded-2xl 一致)
- 保持:高度 96rpx、阴影效果

解决 issues: 小程序"创造未来"页面生成按钮文字不居中,
            与原型图视觉效果不一致
2026-04-07 21:39:18 +08:00
peanut 86b3fa8f84 feat(mini-program): 剧本卡片支持 Markdown 渲染
实现内容:
- 扩展 Markdown 组件支持三级标题 (###) 和粗体 (**text**)
- ScriptView.vue 卡片摘要使用 Markdown 组件渲染
- 新增 ScriptDetailView.vue 剧本详情页,展示完整 Markdown 内容
- 点击卡片可跳转查看详情,"路径映射"按钮使用@click.stop 避免事件冒泡

修改文件:
- components/Markdown.vue: 添加 h3 标题、粗体解析和样式
- pages/main/ScriptView.vue: 导入 Markdown 组件,修改摘要渲染方式,添加跳转逻辑
- pages/main/ScriptDetailView.vue: 新建详情页,展示剧本完整内容
- pages.json: 注册 ScriptDetailView 页面

解决 issues: 小程序"创造未来"页面剧本内容以纯文本显示,
            无法正确渲染 Markdown 格式(标题、列表、粗体等)
2026-04-07 21:28:44 +08:00
peanut e2b41f23b0 feat(mini-program): 添加 H5 开发工作流支持
实施内容:
- 创建 start-h5-dev.bat 快捷启动脚本
- 更新 CLAUDE.md 添加 H5 开发模式说明
- 创建微信开发者工具配置指南

配套文档:
- docs/superpowers/specs/2026-04-07-mini-program-dev-workflow-design.md (设计文档)
- docs/superpowers/guides/2026-04-07-wechat-devtools-config.md (配置指南)

解决 issues: 每次代码修改后需要重新登录小程序的问题
工作流:H5 模式日常开发 + 小程序模式最终验证
2026-04-07 21:12:46 +08:00
peanut ee067ad1cb feat(mini-program): 添加 Markdown 渲染组件支持回溯过去页面
- 创建 Markdown.vue 组件,解析并渲染 Markdown 格式内容
- 支持分割线 (---)、四级标题 (####)、列表项 (*-)、段落
- 更新 RecordView.vue 使用 Markdown 组件渲染事件内容和 AI 回复
- 样式采用紫色主题,与整体设计保持一致

解决 issues: 小程序回溯过去页面的 Markdown 内容以纯文本显示的问题
2026-04-07 21:00:39 +08:00
peanut a78257427a chore: 保存小程序配置修改(合并分支前) 2026-03-21 22:53:52 +08:00
peanut 76403a4ad1 feat(mini-program): 添加 request.js API 请求诊断日志
- 在 request() 函数中添加请求/响应/错误日志
- 输出完整 URL、状态码、错误信息
- 仅在 DEBUG=true 时打印
2026-03-18 22:57:00 +08:00
peanut bf41bded8b feat(mini-program): 添加 env.js 环境配置诊断日志
- 在 getConfig() 函数中添加条件日志输出
- 输出原始环境变量、解析后配置、来源标识
- 仅在 DEBUG=true 时打印
2026-03-18 22:50:16 +08:00
peanut fef29e7b0a docs: 更新环境配置文档说明(统一使用域名访问) 2026-03-18 20:38:33 +08:00
peanut 5d3c5544eb fix: 生产环境配置改为域名访问 (HTTPS/WSS) 2026-03-18 20:37:29 +08:00
peanut c895bc030b fix: 测试环境配置改为域名访问 (HTTPS/WSS) 2026-03-18 20:36:48 +08:00
peanut 5efe573b31 fix: 开发环境配置改为域名访问 (HTTPS/WSS) 2026-03-18 20:36:01 +08:00
peanut f22338beb3 feat: 添加小程序体验版构建配置,确保调用服务器 API
- 修改 build:mp-weixin 脚本,显式添加 --mode production 参数
- 新增 build:mp-weixin:test 脚本,用于体验版构建 (--mode test)
- 创建 .env.test 环境配置,指向服务器 API 并保留 DEBUG=true
- 更新 README.md 文档,说明环境配置和构建命令区别

修复问题:之前构建脚本缺少 --mode 参数,可能导致使用默认开发环境配置 (localhost)
2026-03-18 20:15:43 +08:00
peanut 3ee18efcbb fix: 移除记录页面按钮禁用状态以匹配原型图
- 移除按钮的 :disabled 和 :class 绑定
- 删除 .save-btn.disabled 样式 (opacity 和 grayscale 效果)
- 按钮现在始终显示,点击时验证表单(与原型图一致)
- 修复按钮文本在禁用状态下发灰发淡的问题
2026-03-17 21:57:29 +08:00
peanut dd79da1199 feat: 完成回溯过去页面 90% 原型还原 - 金色玻璃态样式和打字机动画 2026-03-16 22:58:13 +08:00