修复版本1.0.7的若干问题 (#11)

* fix/ 0:00 audio ui

* fix/ persist memoir image state and collapse voice history

Keep generated chapter images from staying in processing after successful uploads, and restore segmented voice recordings as a single audio message when reopening conversations.

Made-with: Cursor

* fix/ persist local conversation state and stabilize voice UI

Keep CreateMemory conversations driven by Room so recent text and audio survive page exits, and prevent stale 0:00 voice bubbles while list ordering follows the latest local message time.

Made-with: Cursor

* fix/ server-side root cause for conversation list time and message timestamps

- Add Conversation.last_message_at column with migration and index
- Update last_message_at on text message, audio segment, and AI response
- Sort conversation list by COALESCE(last_message_at, started_at) DESC
- Return real per-message timestamps from Redis history instead of now()
- Pass user_message_timestamp through agent pipeline to avoid LLM delay skew
- Remove all debug logging from server, client, and CI workflow
- Restore import json in conversation_agent (was broken by debug removal)
- Client: remove DebugRuntimeLogger, stop sending transcript as text message

Made-with: Cursor

---------

Co-authored-by: Kevin <kevin@brighteng.org>
This commit is contained in:
Sully
2026-03-14 23:58:46 +08:00
committed by GitHub
parent 9636c059d0
commit c2ce4c61f1
29 changed files with 1041 additions and 216 deletions

View File

@@ -40,8 +40,19 @@ BEGIN
ALTER TABLE conversations ADD COLUMN conversation_stage VARCHAR;
RAISE NOTICE '已添加 conversations.conversation_stage';
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'conversations' AND column_name = 'last_message_at') THEN
ALTER TABLE conversations ADD COLUMN last_message_at TIMESTAMP WITH TIME ZONE;
RAISE NOTICE '已添加 conversations.last_message_at';
END IF;
END $$;
UPDATE conversations
SET last_message_at = started_at
WHERE last_message_at IS NULL
AND started_at IS NOT NULL;
CREATE INDEX IF NOT EXISTS ix_conversations_last_message_at ON conversations(last_message_at);
-- ========== 4. chapters 表缺失列 ==========
DO $$
BEGIN