qzl
aea514a9b5
chore: record journal
2026-04-16 10:15:17 +08:00
qzl
dcb955c6af
chore(task): archive 04-15-divination-tutorial-first-visit
2026-04-16 10:15:07 +08:00
qzl
69b34bd723
feat: 添加起卦教程首次访问追踪和Agent时间上下文
...
- 后端 ProfileSettingsV1 添加 DivinationTutorialSettings 字段
- 前端三个起卦页面添加首次访问检测,自动弹出教程
- 教程展示后更新 settings 标记,避免重复弹出
- 使用本地状态管理避免并发更新覆盖问题
- Agent 系统提示添加时间上下文信息
2026-04-15 18:56:41 +08:00
qzl
55eeab43df
feat(divination): 为解卦结果的断卦要点添加复制按钮
2026-04-15 18:23:01 +08:00
qzl
edafb4dc50
chore: record journal
2026-04-15 18:19:25 +08:00
qzl
0bb7d77a3f
chore(task): archive 04-15-session-deletion-anonymization
2026-04-15 18:19:20 +08:00
qzl
c2b726e7bd
feat(agent): session deletion anonymization for iOS compliance
...
Replace soft-delete with anonymize + hard-delete to meet iOS App Store
data retention requirements. Non-PII fields are preserved in
anonymous_session_snapshots for analytics.
- Add anonymous_session_snapshots table and ORM model
- Implement anonymizer to extract non-PII fields before deletion
- Remove points_ledger.biz_id FK constraint (snapshot-style reference)
- Preserve transaction history while allowing session deletion
- Add 14 unit tests + 1 integration test
2026-04-15 18:18:39 +08:00
qzl
a244eaa666
chore: record journal
2026-04-15 16:50:29 +08:00
qzl
3fd983dc5b
chore(task): archive 04-15-liuyao-algorithm-fix
2026-04-15 16:49:49 +08:00
qzl
be686810d9
docs: 添加trellis任务文档
2026-04-15 16:48:09 +08:00
qzl
9598d162dd
feat: 六爻算法修复 + prompt架构重构 + i18n输出规则
...
算法修复 (P0/P1):
- P0-1: 空亡判断改为仅从日柱计算(年月空亡标注但不断事)
- P0-2: 暗动判断重写为静爻+旺相+日冲三条件
- P1-1: 月破独立标注
- P1-2: 动不为空、旺不为空
- P1-3: 三合局判断
- P1-4: 反吟伏吟判断
- P1-5: 日辰十二长生
- P1-6: 回头生克判断
Prompt架构重构:
- 删除system_prompt中_build_env_section,不再泄露用户上下文到prompt
- 删除if is_chinese分支,_LANGUAGE_LABELS已覆盖全部语言映射
- 安全规则改为六爻专属约束,拒绝无关问题
- sign_level枚举值在所有语言版本中统一为简体中文(schema严格约束)
- _WORKER_ROLE_PLAYING始终为中文,不因ai_language切换
- _WORKER_OUTPUT_RULES按ai_language分zh-CN/zh-Hant/en三版本
- worker_rules.py独立文件管理多语言输出规则
- runner ai_language从user_context.settings.preferences提取传入prompt
清理死代码:
- 删除UserPreferences/RuntimePromptContext及辅助函数
- 删除runner中runtime_client_time参数链路
- 删除SystemAgentRuntimeConfig.extra_context
- 删除sections.py中env section marker
- 删除agent_prompt.py中AgentPromptRegistry死代码
安全规则:
- AGENTS.md添加Git Safety规则(禁止未经批准的破坏性git操作)
- opencode.json添加高危git命令审批配置
测试:
- 新增22个六爻算法单元测试(空亡/暗动/月破/三合局等)
- 重写7个prompt测试适配新签名
- 全部85个单元测试通过
2026-04-15 16:45:57 +08:00
qzl
c74e3f688c
fix: 修复 basedpyright 类型错误和语言设置同步问题
...
runner.py: 将 user_text 解构从 tuple 第二元素改为第一元素(str),
消除 str | list[dict[str,Any]] 与 Msg.content 的类型不兼容问题。
简化了始终为 true 的 user_blocks 条件分支。
repository.py: 将 result.rowcount 的 type: ignore 替换为基于
pyright: ignore[reportAttributeAccessIssue],消除 basedpyright 错误。
app.dart: 保存 profile 时同步 _locale 和 session store 中的语言标记。
2026-04-14 12:42:35 +08:00
qzl
55bac03eb0
fix: 修复历史卦象列表无法显示及六爻解卦提示词逻辑错误
...
后端 Pydantic schema 添加 Hant 繁体字段支持(guaNameHant,
targetGuaNameHant, spiritNameHant, relationNameHant),解决
DerivedDivinationData extra=forbid 拒绝 AI 输出的繁体字段导致
agent_output 解析失败、历史记录为空的问题。
六爻解卦提示词修复:增加静卦五行生克链分析、假破假空降权、
六冲中性判断、用神核对防捏造、空亡数据对照等硬约束。
前端 Dart model 同步添加 Hant 字段(反向兼容,缺省为空字符串)。
其他:硬币翻转动画修复、弹窗单按钮居中、起卦按钮布局调整、
繁体 l10n 清理、pre-commit 排除集成测试。
2026-04-14 12:37:19 +08:00
qzl
97976b20bf
perf: recover lost files (locale_selector.dart, terminology.py, app_zh_hant.arb)
...
These files were accidentally omitted during cherry-pick workflow.
They were present in 639ef12 but dropped when switching to git apply workflow.
2026-04-14 11:49:45 +08:00
qzl
dc66afb5a8
perf: reduce LLM input tokens by ~50% via prompt deduplication
...
- Remove JSON appendix from user_prompt (saves ~3000 chars, 85% reduction)
- Consolidate identity: remove English system_prompt identity, merge into agent_prompt Chinese identity
- Simplify system_prompt output rules: keep only Language Requirement, remove Answer Rules (duplicate with agent_prompt)
- Enhance follow-up context: include more divination_derived fields (changing_yaos, fushen, wu_xing, etc.)
- Fix bug: lowerName -> lower_name in user_prompt (Pydantic snake_case)
- Update tests to reflect new prompt structure
2026-04-14 11:18:59 +08:00
qzl
6bc9c88ce8
fix: 修复语言设置为简体中文而非繁体翻译
2026-04-13 16:14:28 +08:00
qzl
1e22f27de2
feat: integrate invite API and improve notification handling
...
- Add invite code display and binding functionality via API
- Fix notification unread count sync on auth state change
- Improve notification mark read with server state validation
- Add auth state listener to trigger notification refresh
- Add YaoCoinConverter for coin-to-yao type conversion
- Remove YaoLegend from divination screens (UI cleanup)
- Abbreviate relation labels in yao detail view
- Add re-register notice to account delete screen
- Update 'coins' terminology to 'points' in localization
- Fix backend points consumption to only run in CHAT mode
- Add HttpxAuthNoiseFilter to suppress auth endpoint logging
- Fix notification static_schema import path
- Add test coverage for notification bloc error handling
- Update AGENTS.md page header rules and image handling
- Delete deprecated run-dev.sh script
2026-04-13 14:52:22 +08:00
qzl
da947f9f08
chore: record journal
2026-04-13 12:46:37 +08:00
qzl
a2f010251d
chore: record journal
2026-04-13 12:04:36 +08:00
qzl
921ffa1c50
docs: add application initialization contract to user-points protocol
2026-04-13 11:35:15 +08:00
qzl
697d2c0fd6
chore: record journal
2026-04-13 11:29:38 +08:00
qzl
c55be6d3fd
fix: preserve points balance across account re-registration
...
Persist a per-email balance snapshot before account deletion and restore it on same-email re-registration, preventing both unintended balance reset and repeated signup bonus grants.
2026-04-13 11:28:58 +08:00
qzl
ed8c2e3058
chore: record journal
2026-04-13 11:26:23 +08:00
qzl
4b258bb4d0
feat: 静态通知同步 + 积分审计 JSONB 序列化修复
2026-04-10 19:23:38 +08:00
qzl
1cdaeb274e
chore: record journal
2026-04-10 19:23:13 +08:00
qzl
a38267caf7
chore: record journal
2026-04-10 18:51:30 +08:00
qzl
3f3d613d99
feat: 实现站内通知系统
...
- 后端: 新增 notifications/user_notifications 表迁移及 ORM 模型
- 后端: 实现 schema/repository/service/router 全套通知 API
- GET /api/v1/notifications (列表+游标分页)
- GET /api/v1/notifications/unread-count
- PATCH /api/v1/notifications/{id}/read (幂等)
- PATCH /api/v1/notifications/mark-all-read (幂等)
- 后端: payload 使用 Pydantic discriminated union (none/open_route/open_url)
- 后端: 19 个单元测试全部通过
- Flutter: 通知 feature 完整实现 (models/apis/repositories/bloc/UI)
- Flutter: Home 页通知按钮接入真实页面,显示未读 badge
- Flutter: 14 个测试全部通过
- 协议文档: notification-inbox-protocol.md 及错误码注册
2026-04-10 18:50:08 +08:00
qzl
17ef460391
docs: 更新 HTTP 错误码、用户积分、占卜运行及用户资料协议文档
2026-04-10 16:45:45 +08:00
qzl
1bc8bc6a27
chore(task): archive 00-bootstrap-guidelines
2026-04-10 16:30:26 +08:00
qzl
0ac8b81a66
feat: 添加 points_audit_ledger 及 JSON 字段 Pydantic Schema 约束
2026-04-10 12:28:18 +08:00
qzl
46513829cd
feat: 添加账号删除功能
2026-04-10 10:40:44 +08:00
qzl
17a1303f00
fix: 修复 pre-commit hook 基于pyright 配置
2026-04-08 18:00:08 +08:00
qzl
8cf0011720
chore: 配置 basedpyright 将特定检查降级为警告
...
- reportMissingTypeArgument: 泛型类型参数警告(不影响运行)
- reportConstantRedefinition: 常量重定义警告(风格问题)
- reportMissingImports: 导入解析警告(部分模块未实现)
2026-04-08 17:44:16 +08:00
qzl
c7920bcd43
chore: 配置 basedpyright 将严格检查降级为警告
...
- reportMissingTypeArgument, reportConstantRedefinition 等设为 warning
- 避免 pre-commit 被 pre-existing 类型问题阻塞
2026-04-08 17:39:54 +08:00
qzl
e80a82bef4
docs: 更新协议文档,删除废弃计划文档
...
- 更新 http-error-codes, user-points-chat-data-protocol
- 更新 divination-run-protocol, profile-protocol
- 删除废弃的后端和前端设计计划文档
2026-04-08 17:23:02 +08:00
qzl
49fc9a116f
test: 添加 profile settings 和 runtime models 单元测试
2026-04-07 18:44:21 +08:00
qzl
6217844865
refactor(settings): 重构设置页面,支持语言和地区设置
2026-04-07 18:44:14 +08:00
qzl
6e82053ea7
feat(home): 重构首页为底部导航栏布局,支持首页与个人页面切换
2026-04-07 18:43:58 +08:00
qzl
c121c1092f
feat(invite): 添加邀请码功能模块
2026-04-07 18:43:49 +08:00
qzl
b22673ce49
feat(settings): 添加通知偏好设置和后端 API 集成
2026-04-07 18:43:42 +08:00
qzl
b18a205bf3
refactor(schema): 重构数据库模型和 schema,清理废弃表
2026-04-07 18:43:34 +08:00
qzl
a65d041436
refactor(agentscope): 重构提示词模块和运行时任务处理
2026-04-07 18:43:24 +08:00
qzl
f394df9362
feat(divination): 重构手动起卦教程,支持三硬币交互选择
2026-04-07 18:41:08 +08:00
qzl
f904286ba7
refactor: 重构弹窗组件支持自定义图标组件
2026-04-07 12:30:12 +08:00
ZL-Q
8a18b3528b
feat: 实现用户画像、占卜历史与后端用户管理模块
2026-04-06 01:28:10 +08:00
qzl
d87b2e1e3a
feat: 接入起卦后端流程并完善积分扣减链路
2026-04-03 19:04:46 +08:00
qzl
a136e42290
refactor(divination): use locale-aware date format in divination_result_screen
2026-04-03 18:19:52 +08:00
qzl
a73ba67ef1
feat(divination): use DateTimePickerBottomSheet in manual_divination_screen
2026-04-03 18:18:55 +08:00
qzl
dbc3e90a46
feat(divination): use DateTimePickerBottomSheet in auto_divination_screen
2026-04-03 18:17:40 +08:00
qzl
a034962d6b
feat(divination): add DateTimePickerBottomSheet with iOS wheel style
2026-04-03 18:16:18 +08:00