feat: 品牌更名、用户管理增强、画像版本管理、对话体验优化
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled

- 品牌统一为"左右(BossAi)":网页标签、侧边栏、登录页、manifest、后端
- 用户管理:搜索、对话统计、重置密码、激活/停用账号
- 用户画像:确认事实步骤(带入内容+追问内容)、版本历史管理、PUT /profile/me
- 对话历史:按场景分组、保密模式标题处理
- AI助手页面:话题区可收起、模式选择紧凑化、footer免责声明
- 设置页:toggle宽度修复、工单文案改为专家咨询
- 去掉工单功能(前后端)

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
selfrelease
2026-08-30 09:05:31 +08:00
co-authored by Devin
parent 038ab17278
commit 4e2b4666aa
24 changed files with 1623 additions and 333 deletions
+14
View File
@@ -75,12 +75,25 @@ CREATE TABLE IF NOT EXISTS user_profiles (
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- 用户画像历史版本:每次更新时写入快照,支持版本回溯
CREATE TABLE IF NOT EXISTS user_profile_history (
id SERIAL PRIMARY KEY,
phone TEXT NOT NULL,
version INTEGER NOT NULL, -- 版本号(递增)
profile JSONB NOT NULL DEFAULT '{}', -- 画像快照
source TEXT NOT NULL DEFAULT 'auto', -- auto(AI提取) / manual(用户确认)
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_profile_history_phone ON user_profile_history(phone);
CREATE INDEX IF NOT EXISTS idx_profile_history_phone_version ON user_profile_history(phone, version DESC);
-- 用户账号:手机号+密码注册登录
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
phone TEXT NOT NULL UNIQUE, -- 手机号(登录账号)
password TEXT NOT NULL, -- bcrypt 哈希
name TEXT, -- 昵称(可选)
status TEXT NOT NULL DEFAULT 'active', -- active/inactive(管理员终止)
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
@@ -272,6 +285,7 @@ def main():
BEGIN ALTER TABLE review_tickets ADD COLUMN expert_type TEXT; EXCEPTION WHEN duplicate_column THEN NULL; END;
BEGIN ALTER TABLE review_tickets ADD COLUMN sla_deadline TIMESTAMPTZ; EXCEPTION WHEN duplicate_column THEN NULL; END;
BEGIN ALTER TABLE review_tickets ADD COLUMN sla_status TEXT NOT NULL DEFAULT 'normal'; EXCEPTION WHEN duplicate_column THEN NULL; END;
BEGIN ALTER TABLE users ADD COLUMN status TEXT NOT NULL DEFAULT 'active'; EXCEPTION WHEN duplicate_column THEN NULL; END;
END $$;
""")