Commit Graph

  • deaebf22b4 fix(fam-edge): 生产者扫描跳过已被 DiskGuard 清理的文件 main ericwyuan 2026-09-13 09:35:15 +08:00
  • 3b5f7db51d fix(fam-edge): SQLite 改每线程一条连接,修好 DiskGuard 等一切并发写 ericwyuan 2026-09-13 09:34:24 +08:00
  • a494d60361 docs: 补入 2026-09-03 工作日志(同步 1062 复发 + 甲骨文过载) ericwyuan 2026-09-13 08:55:08 +08:00
  • da60365214 feat(fam-notifier): 补开机自启脚本,NAS 重启后推送不再静默断流 ericwyuan 2026-09-13 08:35:36 +08:00
  • 1964e976f4 refactor: 全量迁云——fam-core 直读甲骨文 SQLite,NAS 只剩推送进程 ericwyuan 2026-09-13 08:03:32 +08:00
  • dc284f4bf5 feat(fam-edge): 统一登录从 NAS fam-core 迁入,回调失败不再对跳死循环 ericwyuan 2026-09-13 08:02:59 +08:00
  • 0238030128 fix(sync): 修复 Oracle id 重排导致的 sync_videos/sync_people 1062 ericwyuan 2026-09-03 09:00:50 +08:00
  • 2ad0472578 fix(fam-ui): 未登录自动跳转 OIDC + 登录/退出入口,打通 smart-camera 登录 ericwyuan 2026-09-01 12:23:48 +08:00
  • db4f46140b fix(start_core): export AUTH_HUB_* env + fix .env path; docs: cutover to smart-camera.zichuan.xyz ericwyuan 2026-09-01 12:14:51 +08:00
  • 9c4db682d5 docs: 记录 8/29 同步 1062 修复与 8/31 auth-hub SSO 接入/清理部署;gitignore 排除独立项目 ai-gateway ericwyuan 2026-08-31 22:38:29 +08:00
  • feb096ff3d docs: 订正 FAM-UI 部署位置描述(NAS -> 云服务器 Caddy) ericwyuan 2026-08-31 21:50:42 +08:00
  • 5e1230d9b0 docs: 记录 auth-hub 生产 client 已注册,NAS 部署待执行 ericwyuan 2026-08-31 21:33:16 +08:00
  • 8120d2ae6a feat(fam-core): 登录改接 auth-hub 统一登录(OAuth2 Authorization Code + PKCE / OIDC) ericwyuan 2026-08-31 21:32:26 +08:00
  • 988c63a8f9 fix(fam-core): 修复 sync_identity_map 增量同步 1062 主键冲突导致游标卡死 ericwyuan 2026-08-29 23:10:38 +08:00
  • 05c7a8b70a feat(fam-edge): 闭集人物识别新增奶奶(成年女性按年龄段区分媳妇/奶奶) ericwyuan 2026-08-29 22:42:26 +08:00
  • c9354ed1a1 docs: 同步 8/28 迁移故障排查记录(FFmpeg 缺失 + 磁盘写满死循环 + DiskGuard) ericwyuan 2026-08-28 12:10:14 +08:00
  • ef56ae5662 feat(fam-edge): 新增 DiskGuard 磁盘空间守护,剩余空间不足自动清理旧素材 ericwyuan 2026-08-28 12:08:04 +08:00
  • 3ec79de911 docs: 清理已删除的 /api/ss/webhook 端点在文档中的残留描述 ericwyuan 2026-08-28 09:31:41 +08:00
  • 09708bd9a4 fix(fam-core): 修复 /api/status 和 /api/ss/status 500(移除 Webhook 重构遗留死引用) ericwyuan 2026-08-28 09:29:09 +08:00
  • cf3d145c57 refactor(fam-core): 移除 SS Webhook 可选路径与 NAS 静态前端托管,兜底 Oracle 地址更新为 129.146.26.249 ericwyuan 2026-08-25 23:56:02 +08:00
  • 7948f55b02 docs: 同步 8/25 迁移(前端迁云 Caddy:80、Oracle 换新机 129.146.26.249、旧 IP 清理、Drive 中转设计说明) ericwyuan 2026-08-25 23:55:57 +08:00
  • 3cb08c9749 docs: 同步事件时间轴删除视频功能到 README/PROGRESS ericwyuan 2026-08-24 04:28:55 +08:00
  • 28397e9e6a feat(timeline): 事件时间轴支持删除视频会话 ericwyuan 2026-08-24 04:25:43 +08:00
  • 2e370ab668 docs: 同步问答链路抽离到 ai-gateway 后的架构文档 ericwyuan 2026-08-23 17:40:55 +08:00
  • 5caeb299a4 refactor(fam-edge): 问答链路抽离到独立 ai-gateway 服务,fam-edge 改为转发客户端 ericwyuan 2026-08-23 14:12:01 +08:00
  • 9dff19e6ac feat(fam-edge): 赤膊成年人直判爸爸(免费规则) - 用户确认家里只有爸爸会光膀子 ericwyuan 2026-08-23 11:00:43 +08:00
  • 5f7b27bf04 fix(fam-edge): 人物识别结果没同步进事件描述文字 ericwyuan 2026-08-23 10:50:52 +08:00
  • 63b28663f1 feat(fam-edge): 启动时预热 Ollama,避免兜底触发时冷启动等 1-2 分钟 ericwyuan 2026-08-23 09:33:49 +08:00
  • bdf561a415 fix(fam-core): 登录密码不再硬编码兜底(fail-closed) + 会话有效期改 2 小时 ericwyuan 2026-08-23 07:56:33 +08:00
  • 9bba7b7e14 fix(chat): 流式问答中文乱码 + 问答模型链换成专用文字大模型 ericwyuan 2026-08-23 07:46:48 +08:00
  • 22bd4d4ff9 fix(fam-edge): 停用旧 person_service LLM 合并 - 已被闭集识别取代且仍在持续产生错误合并 ericwyuan 2026-08-23 02:23:00 +08:00
  • 2c5bf950c5 feat: 事件时间轴缩略帧 + 人物管理头像 + 人物合并硬规则校验 ericwyuan 2026-08-23 00:13:56 +08:00
  • aca1a674b1 [文档] README 补充登录校验(auth 模块/凭据/白名单)与 frp 外网 8000 映射说明 ericwyuan 2026-08-22 14:20:40 +08:00
  • 9c51c65e62 [功能] FAM-Core 登录校验 + frp 外网暴露 8000 - 新增 auth 模块(POST /api/login 校验 FAM_AUTH_USER/PASS 默认 ericwyuan/iLoveJava5, HttpOnly cookie 7天, 页面未登录 302 /login, /api/* 未登录 401; 白名单: /login /health /api/ss/webhook /assets/*); 内置深色登录页(SPA 零改动); frpc.toml 增加 fam-core 代理 外网8000->NAS8000 ericwyuan 2026-08-22 14:19:54 +08:00
  • 1dd9df34c2 [功能] 事件-片段一致性对账 - /api/oracle/activity 加 segment.consistency(事件总数/已结束/已分割/缺口+明细/素材覆盖范围), 服务状态页展示一致性数字 ericwyuan 2026-08-22 13:40:42 +08:00
  • 177c2a83b7 [修复] 进行中事件 duration=0 分割丢失 - 推送过 duration<=0 的事件记入 _zero_dur_ids, 下轮窗口回查已结束(duration>0)补推覆盖 Oracle; 保证 ss_motion_events 最终持有真实 duration, 分割不再跳过 ericwyuan 2026-08-22 13:25:20 +08:00
  • cbcc5d0325 [功能] 服务状态页新增「视频分割」状态 - Oracle /api/oracle/activity 加 segment(运动片段 done/pending/failed/文件数/最近分割活动), ServiceStatus.vue 加视频分割卡片 ericwyuan 2026-08-22 13:18:57 +08:00
  • 01a8ac2a3f [文档] 拓扑图 FAM-UI 标注同步为 Vue3(清理残留 Streamlit :8501) ericwyuan 2026-08-22 13:15:04 +08:00
  • 354ff18101 [文档] 代码-文档一致性整理 - README 同步 v3 全量(2.1网络/3模块表/4表结构/5 API含people-clips/6.1历史标注/8部署systemd+Vue3+config/12进度); docs/DEPLOY.md 重写为 v3; 删除过时 start_ui.sh(Streamlit); start_edge.sh 注明 systemd 为准; 补提交 test_motion_notifier ericwyuan 2026-08-22 13:14:38 +08:00
  • 96644599d3 [修复] pymysql execute 字面 % 冲突 - SQL 中 motion_% 的 % 被当参数占位符导致 /api/ui/videos 500, 改用 LEFT(filename,7)='motion_' 判断前缀 ericwyuan 2026-08-22 13:06:52 +08:00
  • 6a29e88d86 [优化] 时间轴/统计过滤空会话 - 只展示运动片段(motion_)或有事件的视频, 整段素材分割0段的空会话不占时间轴; get_sync_videos/get_sync_stats 加内容过滤 ericwyuan 2026-08-22 12:59:21 +08:00
  • 4cf4fc4bc2 [功能] 人物管理按运动视频重设计 - 人物卡新增「运动片段」区块(缩略图/时间/摘要/事件数,点击跳时间轴定位); 新增 GET /api/ui/people/clips 后端接口(按 label/canonical_name 查关联运动片段,含 first_ts/clip_events); Timeline 支持 ?video= 定位 ericwyuan 2026-08-22 12:55:30 +08:00
  • ffcc292cce [文档] 同步 v3 运动事件驱动架构 - 整段素材分割运动片段再分析(不再整段送云端): README 1.1/2.2/2.2.1/2.3/模块表, PROGRESS 运行状态+变更记录; 记录 systemd 守护部署方式 ericwyuan 2026-08-22 12:46:33 +08:00
  • 8d6cfad6c0 [修复] 运动片段分割 ffmpeg 调用缺可执行文件 - args 首元素补 ffmpeg 路径(此前被当成可执行文件导致全部分割失败) ericwyuan 2026-08-22 12:41:06 +08:00
  • a1523b46c8 [重构] 运动事件驱动架构 - 整段素材按 ss_motion_events 分割运动片段再分析(不再整段送云端): oracle_db 加 motion_event_id/camera_id 列 + get_motion_events_in_range/has_unfinished_motion_in_range/get_video_by_motion_event_id; video_processor 素材→分割/片段→分析双分支(ffmpeg -c:v copy -c:a aac 保留音频); video_queue 片段入队; config 加 motion_segment 块 ericwyuan 2026-08-22 12:19:17 +08:00
  • 2d9d96de56 [功能] fam-edge 运动心跳支持 - /api/ss/motion 空 events 心跳刷新, has_motion_in_range_local 按 max_heartbeat_age_sec(900s) fail-open ericwyuan 2026-08-22 12:08:00 +08:00
  • 7adc32486a [重构] 运动监测恢复轮询主路径(简单稳定) - poll_enabled 默认开启;修复3隐患: 推送失败批次不前进游标(下轮重试不丢事件)、重启优先续用DB游标(停机期间事件补推)、fetch limit 提到1000;Webhook降级为可选补充 ericwyuan 2026-08-22 12:00:03 +08:00
  • b2b537dde5 [文档] 同步 v3 运动监测架构(Webhook 驱动/去轮询) - README 补充 2.2.1 链路/API 表/模块表,PROGRESS 更新运行状态与变更记录 51-53 ericwyuan 2026-08-22 11:11:15 +08:00
  • e52d8e9103 [修复] MotionNotifier 补回 camera_ids 属性 - 避免重新开启轮询时 _fetch_events 引用缺失属性崩溃 ericwyuan 2026-08-22 10:58:56 +08:00
  • ca6d425b19 [重构] 运动监测改为 Webhook 驱动(去轮询) - 关闭 MotionNotifier 轮询,NAS 端合成稳定 event_id、摄像头名映射 camera_id、EVENT_TIME 解析为 epoch,SS Webhook 直接推送甲骨文 ericwyuan 2026-08-22 10:53:03 +08:00
  • 01bbb39750 [新增] NAS 运动监测通知服务 MotionNotifier - 轮询/接收 SS 事件后主动 POST 推送到甲骨文 /api/ss/motion(单向 NAS->Oracle):新增 motion_notifier 子包、/api/ss/webhook 实时转发蓝图、db_layer 运动游标、app.py 接线与 config 块 ericwyuan 2026-08-22 10:26:03 +08:00
  • 38dea6ba2e [重构] 运动预过滤改为本地事件(NAS推送) - 甲骨文不再反向访问NAS:新增 ss_motion_events 表/record_motion_events/has_motion_in_range_local,/api/ss/motion 接收端点,video_processor 改用本地运动事件预过滤,停用 dsm_motion_client 反向查询 ericwyuan 2026-08-22 10:25:56 +08:00
  • 0d8e62607c feat(fam-edge): DSM 运动侦测预过滤 - 空转时段跳过云端视频分析 ericwyuan 2026-08-22 09:46:00 +08:00
  • f798c31cab fix(fam-edge): 人物 uid 跨视频复用导致特征串人 - 拆分同 uid 下的性别冲突 ericwyuan 2026-08-22 08:45:24 +08:00
  • 708b6365f4 feat(fam-edge): Gemini key 分配改真随机 + 按项目名标注统计 ericwyuan 2026-08-22 07:37:33 +08:00
  • 22df28f2d3 feat(fam-ui): 各页面加载状态 - 数据到达前不再是空白/半截页面 ericwyuan 2026-08-22 07:19:32 +08:00
  • 1ad6af3d5d fix(fam-edge): Gemini 多 key 从未真正轮转 - 流量全压在 key1 ericwyuan 2026-08-22 07:19:23 +08:00
  • 6b149a0dd0 fix(fam-edge): 人物合并加硬规则否决 - LLM 弱模型可能把爷爷/宝宝误并成同一人物 ericwyuan 2026-08-22 06:53:51 +08:00
  • 7579782daf refactor(fam-ui): 重构第三阶段 - Streamlit 换成 Vue3+Vite+Tailwind 完全重写 ericwyuan 2026-08-22 06:48:25 +08:00
  • e56d362d73 refactor(fam-core): 重构第二阶段 - img_proxy 收尾 + 稳定性小修 + 工程质量 ericwyuan 2026-08-22 00:50:49 +08:00
  • 61db82cb9b refactor(fam-edge): 重构第一阶段 - 人物图片零额外调用 + 运行时稳定性 + 工程质量 ericwyuan 2026-08-22 00:22:57 +08:00
  • 677c5bdcc7 fix(fam-edge): validate_schema 透传 person_appearances - events 清洗白名单原只留 timestamp/description/people/is_attention,丢弃了特征字段导致特征链路断 ericwyuan 2026-08-21 18:30:06 +08:00
  • 68337f81c4 fix(fam-edge): 视频分析 max_tokens 4096→16384 - 3秒密度+person_appearances 特征使输出 JSON 巨大被截断导致解析失败 ericwyuan 2026-08-21 18:26:51 +08:00
  • ff01d14c79 feat(v3): 人物模块重构 - 大模型结构化特征值替代 OpenCV 帧定位。prompt 增加 person_appearances(uid+7特征+action)并重写合并 prompt(稳定特征优先比对);gemini 透传特征字段;oracle_db events/people 加 person_appearances_json/features_json/display_uid + _merge_features;video_processor 去 cv2 改 ffprobe 校验、_store_result 聚合 uid 特征落 people、删缩略图/事件截图;person_service 聚合特征后基于特征文本 LLM 合并;api_gateway 删 3 个图接口;NAS 镜像+DDL 加新字段;fam-ui 特征卡替代头像、事件时间线人物特征块 ericwyuan 2026-08-21 18:06:21 +08:00
  • 2ba3478291 fix(头像): 人物头像改为'出现事件画面'而非视频首帧 - 新增 /api/oracle/person/avatar(在该人物所有出现事件中返回第一个有截图的事件画面,JSON 精确匹配);撤销 event_thumb 的视频首帧兜底(首帧可能无人/非本人);fam-ui 人物页改调 avatar 接口 ericwyuan 2026-08-21 16:13:05 +08:00
  • 27bfd6abbe fix(api): 事件截图接口兜底 - ev_{id}.jpg 缺失时返回所属视频首帧缩略图(thumbs/{video_id}.jpg),避免旧事件/未生成截图导致前端头像空白 ericwyuan 2026-08-21 16:09:55 +08:00
  • 02fc80b3b2 fix(fam-edge): 模型调用 started_at 改北京时间(UTC+8) - 原 datetime.now() 取 Oracle UTC 导致前端模型统计时间差 8 小时 ericwyuan 2026-08-21 16:05:17 +08:00
  • fec9a3e586 fix(fam-edge): video_queue 补 Dict 类型导入(status() 注解导致 worker 启动 NameError) ericwyuan 2026-08-21 15:53:58 +08:00
  • 0d0a7f6ef8 feat(监控): 实时服务状态界面 - Oracle 新增 service_activity 活动表(只保留7天,写入时清理)与 /api/oracle/activity 接口(队列实时状态/当前处理视频/模型调用/rclone/人物合并/最近50条活动);VideoQueue 打点+当前处理跟踪+status();PersonService 打点;rclone_sync.sh 同步结果写活动表;fam-ui 新增'🖥 服务状态'页(状态卡+活动时间流,直连 Oracle 实时拉取) ericwyuan 2026-08-21 15:52:36 +08:00
  • da7631976d fix(ui): 日期维度改用视频录制时间 - 前端事件时间轴/统计/关注事件与后端 db_layer 统一按 event_start_time(文件名解析) 分组排序,空值回退 processed_at;修复全量重分析导致处理时间(8/21)把 8/15-8/20 视频全堆同一天、与文件名对不上的问题 ericwyuan 2026-08-21 15:00:41 +08:00
  • 0d73c23bd1 fix(fam-edge): 人物标识清洗 - _clean_person 去括号注释(防模型输出'人物A(别名/标识:人物B)'污染人物表);prompt 明确 people 只填标识本身;events.people 与 people_mentioned 均清洗 ericwyuan 2026-08-21 14:47:47 +08:00
  • a72b286bd7 refactor(prompt): Prompt 集中化 - 新增 fam-edge ai_orchestrator/prompts.py(视频分析/智能问答/人物合并三模板共享,消除 gemini/nvidia 两份发散);gemini/nvidia _build_video_prompt 改调共享函数并注入 camera_name;person_service 改调 build_person_merge_prompt;fam-core chat_handler 独立 prompts.py(跨模块风格一致)替代内联 CHAT_SYSTEM_PROMPT;输出硬约束(首字符{/禁markdown)、3 秒密度抽取、people_mentioned 一致性强制、描述 7 维度、人物合并唯一性约束 ericwyuan 2026-08-21 14:42:27 +08:00
  • 4e85a98944 fix(锁与查询组): #12 熔断器状态转换加锁;#10 问答人名匹配改 JSON_CONTAINS 精确匹配(防 LIKE 子串/特殊字符误匹配);#4 OracleDB 复合写加锁;#6 每消费者独立 VideoProcessor(消除 adapter.timeout 共享竞争);#15 done 视频文件被覆盖(mtime>processed_at)自动重置重分析 ericwyuan 2026-08-21 14:24:12 +08:00
  • 034dca92b2 fix(优先组): #18 密钥明文直配 config(弃 .env 依赖);#5 appearances 改 distinct 视频数覆盖校准(防 reconcile 累加膨胀);#9 oracle_sync 拉取加锁防 trigger_now 与后台并发双拉;#11 LLM 合并命名解析 target 已有 canonical(统一显示名) ericwyuan 2026-08-21 14:22:28 +08:00
  • 6afdda582b feat(fam-edge): 队列健壮性 - ①失败重试间隔 retry_interval_sec=1h(last_fail_at 记录,配额类故障等恢复再试);②max_retries 2→10;③入队前 OpenCV 文件校验(可解码/大小/元数据,失败标 invalid 不入队)+ mtime 稳定窗口防 rclone 半成品 + 处理前二次确认 ericwyuan 2026-08-21 14:09:38 +08:00
  • 92ef9fe163 feat(ui): 人物管理显示人物代表画面 - 每个身份取其一 label 出现事件的截图作为头像(Oracle event thumb 接口) ericwyuan 2026-08-21 14:03:43 +08:00
  • 3fcd00d4c8 fix(fam-edge): 文件名解析支持纯数字 YYYYMMDD-HHMMSS 格式(监控录像名 20260820-140416,原正则只认带分隔符);事件相对时间加 6h 启发式防误判绝对时间 ericwyuan 2026-08-21 13:52:47 +08:00
  • 5233296dd3 fix(fam-edge): 事件时间戳改相对时间定位 - prompt 要求输出视频内相对时间 HH:MM:SS(模型对相对位置判断更准),后端按 开始时间+偏移 精确计算绝对时间落库;事件截图直接用偏移跳帧,消除模型绝对时间推算误差导致的图文不符 ericwyuan 2026-08-21 13:48:46 +08:00
  • 05f727a9ef feat(events): 每个事件生成对应时间点画面截图 - oracle_db.mark_video_processed 返回 event_ids;video_processor 按事件时间戳-视频起始时间偏移跳帧截图存 ev_{id}.jpg;新增 /api/oracle/event/{id}/thumb 接口;fam-ui 事件列表每条显示对应截图 ericwyuan 2026-08-21 13:44:16 +08:00
  • 41485072bf fix(ui): sync_events 查询补 JOIN sync_videos 取 camera_name(修 1054 报错);feat(缩略图): Oracle 处理成功后抽首帧存 thumbs/{id}.jpg + /api/oracle/video/{id}/thumb 带 token 接口;fam-ui 视频会话显示缩略图(oracle_url+token);start_ui.sh 注入 .env ericwyuan 2026-08-21 13:37:23 +08:00
  • b7b5fe6f0b feat(fam-edge): NVIDIA 多模型降级链 - adapter 支持 model_chain(asset 上传一次逐个尝试)+switch_interval_sec 切换间隔+model_timeouts 每模型独立超时;实测全部候选不可用(omni 500/12b 400/其余 404),链机制保留待可用模型 ericwyuan 2026-08-21 13:30:59 +08:00
  • 83eefc194a config(fam-edge): gemini-flash-lite 超时放宽至 480s(8 分钟,用户要求;实测 22-34s 留足余量) ericwyuan 2026-08-21 13:07:42 +08:00
  • 3e94c2a8b0 feat(nas): 模型调用统计镜像与界面 - sync_model_calls 表+拉取+聚合统计;fam-ui 新增'🤖 模型统计'页(按模型成功/失败/成功率/平均耗时 + 最近调用明细含失败原因) ericwyuan 2026-08-21 12:23:32 +08:00
  • b87b38b140 feat(fam-edge): 云端模型调用统计 - 新增 model_calls 表(provider/model/时间/耗时/成功/失败原因),gemini/nvidia 每次请求经 model_call_hook 记录并随 sync delta 下发;gemini 支持模型级 model_timeouts(lite 实测22.6s×4≈90s) ericwyuan 2026-08-21 12:21:49 +08:00
  • 1b0f62e5e9 chore(fam-edge): gemini 模型链每个模型请求前打印当前超时(确认 ×2 对 flash/flash-lite 均生效) ericwyuan 2026-08-21 12:13:02 +08:00
  • ce27e4ab0c feat(fam-edge): 视频生产-消费队列 - 新增 video_queue.py(生产者扫描新文件入队+重启恢复,独立消费者线程云端分析);模型消费超时按原配置×timeout_multiplier(2);failed 重试上限 max_retries(2);删除旧 watch_processor ericwyuan 2026-08-21 12:01:25 +08:00
  • ab5b706eeb fix(fam-edge): schema 对齐新架构 - parse_vlm_json 必填改 global_summary/events(兼容旧 frame_details/entities_json 转换);NVIDIA PUT content-type 值改为 video/mp4 与 POST 一致(预签名校验) ericwyuan 2026-08-21 11:47:33 +08:00
  • daf0f8377b fix(fam-edge): 上传端点与签名修正 - Gemini 上传改用 /upload/v1beta/files 端点(原 /v1beta/files 非上传端点);NVIDIA PUT 用全小写 content-type 头(S3 预签名校验) ericwyuan 2026-08-21 11:43:58 +08:00
  • d54070ece4 fix(fam-edge): 整视频上传方式修正 - Gemini 改 resumable 可续传协议(370MB 不再 raw 单发超时);NVIDIA 改 Assets API 上传拿 asset_id(video_url 引用),规避 25MB payload 上限 ericwyuan 2026-08-21 11:37:24 +08:00
  • f20b6c9254 fix(fam-edge): WatchProcessor 递归扫描子目录(GDrive 录像按 YYYYMMDDAM/PM 子目录组织) ericwyuan 2026-08-21 11:28:14 +08:00
  • dbc5193659 fix(nas): sync_cursor 查询 key/value 列加反引号(MariaDB 保留字导致 /api/status 500) ericwyuan 2026-08-21 11:23:25 +08:00
  • 8ca02495bf fix(nas): start_core.sh 启动时 source 项目 .env 注入 ORACLE_SYNC_TOKEN ericwyuan 2026-08-21 11:09:46 +08:00
  • 8960a8bf6b fix(sql): sync_cursor 表 key/value 列加反引号(MariaDB 保留字) ericwyuan 2026-08-21 11:06:41 +08:00
  • ec25f4f50c fix(fam-edge): ollama_adapter 补充缺失的 Dict 类型导入(修复 worker 启动 NameError) ericwyuan 2026-08-21 10:59:32 +08:00
  • 44026b65ea [阶段3] FAM-Core 瘦身为管理后台+Oracle-Sync 同步引擎,FAM-UI 改读同步镜像 - 删除 scheduler/dispatcher/poller/event_receiver/video_server,新增 oracle_sync 每30分钟拉增量写 sync_* 镜像表;member_manager/chat_handler 改走同步数据;UI 移除帧图改为事件时间线;DDL 新增 sync_videos/events/people/cursor ericwyuan 2026-08-21 10:38:26 +08:00
  • 9b1cc8f93b [阶段2] FAM-Edge 重构为整视频分析+同步接口+人物服务 - 移除切片/抽帧/队列,新增 oracle_db/person_service/qa/watch_processor/video_processor,api_gateway 提供 /api/oracle/sync 与 /api/oracle/people/correct ericwyuan 2026-08-21 10:38:15 +08:00
  • ae1c13589f fix(人物管理): 头像优先选独照帧,避免双人图当头像 ericwyuan 2026-08-21 05:54:38 +08:00
  • 73f6c77544 feat(人物管理): 头像优先选有人脸帧 + 人物合并到操作 ericwyuan 2026-08-21 00:57:20 +08:00
  • 43b3178a9d feat(人物管理/红框标记): 关键帧人脸标记 + 人物命名重命名回溯 + 人物管理页改版 ericwyuan 2026-08-21 00:53:30 +08:00
  • 47c42f24df docs: update PROGRESS.md - 人物统计去重与导航改进 ericwyuan 2026-08-21 00:22:41 +08:00