Kevin
b9425e806b
fix app-expo code file format
2026-05-11 10:25:06 +08:00
Kevin
219c833157
给远端 SSH 调用加了 keepalive
2026-05-11 10:07:07 +08:00
Kevin
e165a07da5
fix alembic migration files
2026-05-11 09:37:33 +08:00
Kevin
cea8fa99ad
update docker port
2026-05-09 17:44:23 +08:00
Kevin
8e344b4246
update variable name
2026-05-09 17:15:11 +08:00
Kevin
175784292d
implement staging workflow
2026-05-09 16:16:48 +08:00
Kevin
f0e37c5e76
fix porduction docker file
2026-05-09 13:22:10 +08:00
Sully
3413a28ebe
Merge pull request #21 from penghanyuan/codex/simplify-ai-memory-pipeline
...
简化AI pipeline等其他bug修复
2026-05-08 17:34:49 +08:00
Kevin
d0c26242db
fix(conversation): 离屏不丢回复、列表预热 WS 与非阻塞进入聊天
...
- 后端:文本/转写后 AI 生成改为独立任务,避免断连取消整轮;按需 TTS 等与 WS 改动
- 前端:RealtimeSession 重绑 UI 时恢复流式 buffer;列表 onPressIn/挂载预热、已有会话立即 push
- 同步会话相关类型、i18n、测试与 env/资源等累计改动
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-08 17:28:31 +08:00
Kevin
5dac3efd52
feat(app-expo): conversation WS warmup, background pool, lifecycle
...
Prefetch opening over WebSocket from the conversations list before navigation, with prepared-session handoff into the chat screen. Add a single-slot background pool so leaving chat (in-app) keeps the last session socket with UI callbacks stripped; dispose on app background and reconnect after resume when the chat screen is mounted. Tear down pooled sockets on logout, purge, and conversation delete. RealtimeSession supports attachUiCallbacks and idempotent dispose, and the chat composer hides the connection notice while connecting if assistant history already exists. Fix pause handler wiring in the conversation screen.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-06 14:54:47 +08:00
Kevin
7ad52fce89
feat(profile): avatar presets, upload, nickname editing
...
- FastAPI: preset assets 01–08, GET list/static, PUT /me/avatar/preset,
safer uploaded-avatar path validation, preset_avatars + HTTP tests.
- Expo: personal-info (library + presets), profile tab avatar,
resolveApiMediaUrl, auth hooks cache sync, Web multipart helper,
partial-save messaging + profile i18n.
- Includes existing edits to conversation screen and voice use-player.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-06 13:51:43 +08:00
Kevin
59d4b19d7d
feat(api): 回忆录管线简化、路由延迟池与相关加固
...
- Phase1/2:移除 MemoirOrchestrator.run 与 process_memoir_segments 别名;文档改为 process_memoir_phase1。
- 槽位校验集中到 stage_constants(filter_stage_slots),批处理与顺序路径及 state_service 写库一致。
- StoryRoute:no_llm/parse_error/invalid_target 保守 new_story;短篇护栏不覆盖这些 fallback。
- Phase2 低置信单路径可选延迟(StoryPipelineResult.deferred):不写 Chapter/Story,Segment 记录 defer 元数据,冷却内不重复消费;上限后停自动重试,Phase1 同类目新段唤醒池内段。
- Alembic 0017:segments 表 narrative_defer_* 列。
- ProfileAgent:经 LlmGateway/注入 Provider 统一聊天与 JSON,新增测试。
- ImagePromptOrchestrator:LLM 初始化失败可依配置降级或硬失败;补充策略测试。
- 配套单测与 README/本地开发文档表述更新。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-06 13:18:02 +08:00
Kevin
3234396254
Simplify AI memory pipeline
2026-04-30 16:22:55 +08:00
Sully
7617ea902c
Merge pull request #19 from penghanyuan/fix/memory-system
...
AI相关代码修复
2026-04-30 14:16:12 +08:00
Kevin
9f993ee5c3
chore/ add frpc config file
2026-04-30 14:13:53 +08:00
Kevin
71fbd39e32
feat(api)!: memory single chain — async MemoryService, strict eval closure
...
Route all memory ingest/retrieve/enrichment/compaction through async MemoryService.
Remove legacy sync memory implementations (ingest/retrieve/compaction); Celery and
memoir Phase2 call asyncio.run into MemoryService-backed helpers.
Memoir Phase1 batch ingest uses MemoryService.ingest_transcripts_batch; drop chapters.
evidence_bundle_json mirror (Alembic 0015). Evaluation uses snapshot/link-only bundles;
raise EvidenceClosureMissing instead of partial/fallback lineage tiers.
Split memoir state into NarrativeCoverageState and InterviewControlState; delete the
_interview_meta_store adapter layer. Remove rolling-query and recent-fact fallback
settings from config and evidence assembly.
Update judges, docs, tests, and PlaygroundPage alignment.
Made-with: Cursor
2026-04-30 14:11:50 +08:00
Kevin
ac436b87a2
feat(api): 收敛对话与记忆流程边界,引入 LLM 网关与专用服务
...
- MemoryService 异步路径委托 MemoryIngestService / MemoryRetrievalService;富化派发经 MemoryEnrichmentScheduler
- WebSocket pipeline 经 ChatTurnService 与显式 DTO 编排单轮对话;回忆录片段入队由 MemoirIngestScheduler 封装
- 新增 LlmGateway(LlmUseCase),各 agent、任务与适配器对齐 ports
- 补充 memory 提示适配、runtime 类型、memory-retrieval 文档、ai-touchpoints 说明与扫描脚本及配套测试
Made-with: Cursor
2026-04-30 09:17:01 +08:00
Kevin
eddb2c3078
fix(expo): 发送后延时 refocus 聊天输入框
...
发送会递增 inputResetKey 以 remount TextInput,需在下一帧再 focus 才能延续键盘输入。
Made-with: Cursor
2026-04-29 10:37:49 +08:00
Kevin
80833f7033
feat(api): DeepSeek V4 Flash 默认、HTTP 错讯与多供应商分层
...
- 主链路默认 deepseek-v4-flash,DEEPSEEK_THINKING_ENABLED 对齐旧非思考 chat
- 评测台评审装配迁入 adapters/llm(deepseek_eval_judge、zhipu_eval_judge)与 eval_judge_spec
- 拆分 llm_http_openai_chat_errors 与 llm_errors(DeepSeek/智谱品牌与文档链),llm_call 支持 http_error_vendor
- EvalJudgeService 按 spec.provider 传入 allm_json_call;评测台前端文案改为 V4 Flash
- 更新 .env 示例与 staging/production 的 DEEPSEEK_MODEL;补充 openai/供应商错讯测试
Made-with: Cursor
2026-04-27 14:34:30 +08:00
Kevin
3121d1384d
WIP: memory system improvements (in progress)
...
Interview/chat prompt layers, reply planner, style profiles, memory
injection, interview meta store, and related tests. Work not finished.
Made-with: Cursor
2026-04-22 16:56:28 +08:00
Kevin
e848f26354
feat/ internal eval平台现支持实机联调。 1. 显示当前本地数据库里登录用户的历史聊天,已生成的回忆录。支持在网页直接对话,不依赖手机app。
2026-04-20 11:58:32 +08:00
yangshilin
1194e1ed71
fix: 提示词优化
2026-04-17 17:37:05 +08:00
yangshilin
9af2060259
fix:
...
1. 修复安卓部分机型顶部安全区遮挡回忆录标题的问题;
2. 降低封面图生成阈值和展示逻辑,独立封面图未生成时,使用正文图;
3. 去掉“嗯。”生硬回答,去掉不合理段首承接词;
4. 新增章节封面所需最少插图数的配置项
2026-04-16 20:42:54 +08:00
yangshilin
17b9fa3466
fix:
...
1. 修复登录界面文字被遮挡问题
2. 大字模式关闭后显示异常问题
3. 重新调整大字模式是否开启时的字体显示效果
2026-04-10 20:35:57 +08:00
Kevin
abf8497c2e
fix/ 修复workflow对env占位符的处理
2026-04-10 16:44:26 +08:00
Kevin
1b2aeb98ee
fix/ 修复后端的pytest
2026-04-10 16:09:44 +08:00
Kevin
ccf7125473
fix(chat): 重复追问被拦截时再多问一次模型
...
防重复问句会把整段回复削成「这一段我记住了。」只剩一句套话时,用带纠偏说明的 system 再调一次 LLM,尽量避免用户只看到干巴巴_ack。仍只重试一次,并打日志与 meta 标记 duplicate_question_guard_llm_retry。
2026-04-10 15:35:34 +08:00
Kevin
5ff495729e
feat(chat): server-side interview turn plan (mode, anchor slot, snippet)
...
- Add plan_interview_turn: emotion_first / memoir_push / follow_user_only
- Inject hard directive block at top of guided system prompt
- Pass stage_switched_this_turn from ChatOrchestrator after stage detection
- Log interview_turn_plan for observability; add unit tests
2026-04-10 14:34:38 +08:00
Kevin
df6eafeae2
feat(chat): host-style memoir prompts and strip parenthetical stage directions
...
- Add strip_parenthetical_asides_for_chat in reply pipeline before [SPLIT]
- Expand output_rules bans (performance parens) and voice as warm host
- Refocus opening/guided prompts on pulling conversation toward memoir oral history
- Align interview opening fallbacks with memoir-first tone
- Add unit tests for parenthetical stripping
2026-04-10 13:55:56 +08:00
Kevin
deeacfb7ee
fix(eval): use ev_cap for structured evidence slice in memoir judge prompt
...
_merge left an undefined _MEMOIR_EVIDENCE_MAX; align with evidence budget from settings.
2026-04-10 10:42:14 +08:00
Kevin
204ae24697
Merge branch 'eval/elapsed-time-memoir-batch-chunk' into development
2026-04-10 10:27:41 +08:00
Kevin
ac49bc7f23
feat(eval): memoir A/B chapter judging and eval-web parity with dialogue
...
- Judge baseline excerpt and library chapter separately; build_memoir_compare_summary for gate, nine-dim and leaf deltas.
- Memoir SSE chapter payload: baseline_judge, compare_summary, baseline_judge_error.
- MemoirJudgeOutput: loose score coercion and post-validate clamp; memoir judge prompt caps from settings.
- app-eval-web: two-column MemoirScoreCard layout, MemoirCompareSummary, chapter blocks and CSS.
- Add memoir_compare_summary, log_events, celery_log_context, memoir_pipeline_progress; tests and migration 0014.
- Misc: memory/evidence and enrichment paths, task/orchestrator updates, internal-eval docs, env examples.
2026-04-10 10:25:15 +08:00
yangshilin
31fc1c24cf
fix: 优化模型提示词,照顾用户情绪
2026-04-09 18:18:28 +08:00
yangshilin
8ac1de02c1
feat: 丰富问题模板库大纲
2026-04-09 15:44:14 +08:00
yangshilin
e1341c6d18
feat:
...
1. 建立问题库大纲,对应每个人生阶段槽位
2. 鼓励使用更生活化的交流语言共情与总结
3. 降低评审模型可能发生截断的概率
4. 成稿质量维度强化情感表达和上下文连贯性
2026-04-09 15:32:35 +08:00
Kevin
b0251e5b26
feat(eval): server-side replay/phase1 timing + memoir phase1 batch chunking
...
- Replay and memoir-submit responses include started/finished UTC and elapsed_ms;
Phase1 poll exposes Redis-backed submit time and elapsed_ms_since_submit.
- Phase1 batch LLM splits segments by memoir_phase1_batch_llm_chunk_size with
bisect fallback per chunk; Playground shows server timings.
Made-with: Cursor
2026-04-09 13:39:04 +08:00
Kevin
064ad2161d
refactor(eval+memoir):精简内部评测路由与服务,composite/对话摘要与 judge 能力补强
...
- 访谈:新增 interview_state_hints,联动 orchestrator 与提示词
- 回忆录:story_pipeline_sync/state/memory/post_commit 与 Celery 任务调整
- 基建:开发用 celery broker、compose/development 脚本、依赖注入
- eval-web:移除数据集/实验/版本等页面与流式轮询,突出 Playground
- 文档与单测同步
2026-04-08 21:36:12 +08:00
Kevin
2a0c80987d
test/ 调整prompt,提高共情能力
2026-04-08 17:10:09 +08:00
Kevin
78b61c076e
feat(eval): Playground GLM 评分落库并可恢复
...
在 conversations 表增加 playground_conversation_judge_json,流式/非流式对话评审结束后写入最近一次快照(整体分、逐轮分、对比文案、错误与基线文件名等)。新增只读 GET 供前端按会话拉取;评测台 Playground 切换会话时自动恢复,并提示基线是否和当时一致。
2026-04-08 16:51:08 +08:00
Kevin
309a051038
feat: 回忆录证据血缘与内部评测可追溯,顺带对齐本地评测台与 CI
...
数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。
业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。
内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。
app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。
工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
2026-04-08 15:37:09 +08:00
Kevin
6772e1269c
feat(evaluation): memoir readiness, judge/replay updates, eval web playground
...
Add memoir_readiness_service and router tests; extend judge schemas/services, replay_service, and conversation rubric; align story route agent, payload, prompts, and story_pipeline_sync; update agent logging, config, and DI. Document internal-eval; add replayDraft util and PlaygroundPage changes in app-eval-web.
2026-04-08 09:43:34 +08:00
Kevin
99543d04c6
feat(eval): internal-eval stack, judge fixes, and eval web overhaul
...
- Merge internal-eval into development.sh (single Celery/infra); internal-eval.sh
wraps with LIFE_ECHO_WITH_INTERNAL_EVAL; EVAL_ATTACH_ONLY for attaching 8001
when :8000 is already up; document in api/docs/internal-eval.md.
- Evaluation: transcript_for_judge, judge error surfacing, rubric/schema tweaks,
execution_service and router updates; tests for judge and composite eval.
- Memory: ingest nested transaction for embedding/enrichment rollback safety.
- Conversation WS: logger.exception for pipeline errors (avoid loguru KeyError).
- app-eval-web: Playground saved replays, dialogue turns helper, hash user_id
for Memoir; Memoir chapter baseline↔DB row compare with title heuristics;
Stories page (#memoir-stories); Markdown + copy buttons; toolbar/panel UI;
react-markdown; development proxy and fixture updates.
2026-04-07 17:18:47 +08:00
Kevin
a50b72e7b5
feat(app-eval-web): 评测台 UI/UX 重构(侧栏导航、分页、数据集与实验能力)
...
- 采用 hash 路由与会话式壳层(Playground / Datasets / Experiments / Versions / Memoir)
- 抽取 api、types、hooks(轮询、通知、实验 SSE)与 NoticeContext
- Playground:基线/实际生成双栏、重放、流式自动评分与 ScoreCard
- Datasets:回归集与用例列表、Markdown/JSON 导入、会话快照
- Experiments:创建实验、提交运行、SSE 进度、DiffTable 与门禁展示
- 样式与无障碍:DM Sans + JetBrains Mono、侧栏响应式、? 快捷键帮助
2026-04-07 11:06:41 +08:00
Kevin
5972b0e721
feat(evaluation): 成稿 100 分 rubric、证据评审与评测台调整
...
- 回忆录细项上限收紧为合计 100 分,去掉 110 折算与 raw_dimension_total
- judge_memoir 拼接原始访谈与可选导出基线;无证据时提示保守打真实性相关分
- 自动评测 run 与手动章节/故事评审统一带 transcript 证据(会话/用户聚合、截断)
- 访谈打分仍为情绪强化版 15 细项、总分 100
- 评测台默认基准改为 zuckxu 导出 MD;移除逐轮用户句对齐表及相关逻辑
- 新增 judge schema 与 memoir prompt 组装的单元测试
2026-04-07 10:36:22 +08:00
Kevin
ea97427767
fix(dev): idempotent Alembic chain for squashed 0001 + clearer dev scripts
...
- Make migrations 0002–0008 skip schema changes already applied when
0001_initial creates current ORM (rename segments column, timeline FK,
memoir phase flags, drop content_tsv, eval_* tables).
- development.sh / internal-eval.sh: surface Alembic stderr, warn on
docker-style DB hosts, TCP port checks without lsof, verify Uvicorn
listens before claiming started.
2026-04-07 10:34:18 +08:00
Kevin
29dec8fe32
feat/ eval
2026-04-06 23:19:20 +08:00
Kevin
2fded6fbd9
refactor(chat): AI-native prompts, remove interview heuristics
...
- Drop interview_reply_length and utterance_substance; always run stage LLM
and memory retrieval when enabled; trim Settings fields and .env.example.
- Replace guided/opening prompts with compact fact blocks plus unified
behavior guidance; slim background_voice and persona to tone hints.
- InterviewAgent uses fixed chat_interview max_tokens/chars/segments.
Also includes stacked work: profile followup/extract path, evaluation rubric
and judge schema updates, transcript SPLIT handling in execution service,
user export markdown split tests, and golden case fixture.
2026-04-06 22:23:46 +08:00
Kevin
ca8bcc8489
feat(evaluation): session catalog, user export import, and eval web UI
...
- Extend evaluation API: schemas, router, repo, admin and execution services
- Improve user export markdown importer; add fixtures and importer tests
- Session catalog repo/service updates; internal app wiring and docs
- Add internal-eval.sh helper; refresh app-eval-web (App, styles, Vite)
2026-04-06 13:49:28 +08:00
Kevin
b75edacb5f
feat/ 导出开发容器内的数据用于评估
2026-04-03 14:44:46 +08:00
Kevin
828a29748e
fix/ 修复AI聊天时回复markdown导致聊天气泡布局问题
2026-04-03 14:06:55 +08:00