fn-deepseek-harness
|
74f7270cbc
|
feat: v1.6.0 — 推送前先核对 GitHub 实况(分支/提交号一致就跳过)
- 新增 remote_refs():git ls-remote 读取 GitHub 真实的分支/标签/提交号
- 新增 compare_remote():与本地镜像逐条比对,返回 same/diff/unknown 并给出差异说明
- 同步流程改为:本地无变化 → 默认不打扰 GitHub;本地有变化或严格模式 → 先比对,
一致则跳过推送并重建同步记录,不同才推送;推送后再核对一次确认落地
- 新增设置项 verify_github(默认关):严格模式每轮都核对 GitHub 实况
- 新增 API:/api/repos/check(单仓库核对)、/api/repos/checkall(全量核对,不推送)
- 状态页新增「GitHub 核对」列 + 单仓库「核对」按钮 + 「🔍 核对 GitHub 实况」
- stats 新增 total_skipped 统计(一致跳过推送次数),状态页新增对应卡片
- 解决:GitHub 被手动改动后永不纠正;同步记录丢失后整仓重推一遍
|
2026-10-17 20:26:19 +08:00 |
|
cbb
|
43b4d757bb
|
feat: v1.4.1 — 数值设置改动即生效,去掉保存按钮
- 同步间隔/并发数/重试次数三个数值输入改 onchange 自动保存:
改完失焦或按回车即生效并显示「✓ 已生效」(2 秒后淡出),
不再需要点保存按钮
- 非法值(超范围/非数字)自动回滚成服务器值并红字提示原因
- 防重复保存:值没变不触发请求;空值前端拦截不发请求
- 修复 saveInterval 等包装函数未 return 内部 Promise 导致调用方
无法等待保存完成的问题
- manifest 1.4.0 → 1.4.1
|
2026-10-13 21:58:18 +08:00 |
|
cbb
|
62f059921d
|
feat: v1.4.0 — 同步失败自动重试(每 60s 一次,次数可调默认 5)
- 独立重试线程:整轮同步有仓库失败时,把失败仓库排入重试队列,
每隔 60 秒并行重试一次(复用并行度设置),与同步间隔无关——
即使同步间隔是 1 天,网络抖动也能在几分钟内自愈
- 重试计数:每个仓库连续失败计数,达到上限(默认 5,可调 0~20,
0=不重试)后放弃并记日志,等下一轮同步或手动同步再次尝试;
手动同步成功立即退出重试队列;被其他同步占用(busy)不计次数
- 设置页新增「失败重试次数」;状态页新增「失败重试」统计卡片,
重试中的仓库显示「⏳ 重试中 x/N」;日志记录排程/重试/放弃全过程
- 修复 retry_next_at 缺少 global 声明导致重试每 2 秒空转的 bug
(线上实测发现:next_in 显示 0 而非 60)
- manifest 1.3.0 → 1.4.0
|
2026-10-13 20:32:46 +08:00 |
|
cbb
|
1acd60894f
|
feat: v1.3.0 — 多项目同时同步(并行度可调 1~8,默认 3)
- run_sync 改线程池并行:每轮最多 N 个项目同时克隆/推送,项目多时
显著缩短单轮耗时(实测 6 个仓库 3 并发 3 倍加速)
- 按仓库防重入:同一仓库同时只允许一个同步,后到者提示
「该仓库正在同步中,请稍候」,避免并发 git 操作损坏镜像
- 状态页单仓库「同步」按钮不再被整轮同步全局拦截(旧版报
「已有同步任务正在进行」),与进行中的整轮真正并行
- 新增「同时同步项目数」设置(1~8),设置页可调,立即生效
- 统计计数与日志写入加锁,修正并行下的计数漂移与日志交错风险
- 首页/状态页显示当前并行数;manifest 1.2.0 → 1.3.0
|
2026-10-13 20:14:57 +08:00 |
|
cbb
|
870612ff93
|
feat: v1.2.0 — Gitea 地址可更改(默认 http://127.0.0.1:3000)
- 设置页新增「Gitea 地址」输入:同步引擎的 API/克隆/拉取全部改用该地址,
适配 Gitea 换了端口或部署在别处的场景
- 地址规范化:自动补 http://、去尾部斜杠,校验 scheme/主机名,非法值明确拒绝
- 保存前探测连通性(/api/v1/version),连不上拒绝保存并提示
- 改地址后自动把已有镜像仓库的 origin 重指到新地址,无需重新克隆
- 「打开 Gitea」按钮随设置端口 + 访问面板的主机名自适应(不再写死 3000)
- 改地址/用户名不再误清 Gitea 密码(密码仅在密码行保存时提交)
- 启动日志记录当前 Gitea 地址,便于排障
- manifest 1.1.2 → 1.2.0
|
2026-10-13 19:59:45 +08:00 |
|
cbb
|
3ec3fd01c0
|
feat: v1.1.1 — 同步间隔可调(5 秒 ~ 1 天,默认 10 秒,改完立即生效)
- 间隔存入 settings.json,带范围校验(5~86400 秒),非法值明确拒绝
- 设置页新增「同步间隔」输入框,附人性化时长提示(秒/分钟/小时)
- 同步循环每轮读取最新间隔,保存后下一轮生效,无需重启
- 首页/状态页的间隔文案改为动态显示(原来硬编码 10 秒)
- manifest 1.1.0 → 1.1.1
|
2026-10-13 19:37:06 +08:00 |
|
cbb
|
6dcd246567
|
feat: v1.1.0 — GitHub 多账号切换 + 自动创建仓库 + 私有 Gitea 仓库支持
面向大众使用的三项核心能力:
1. GitHub 多账号(设置页)
- 添加多个 GitHub 账号(用户名 + Personal Access Token),一键切换推送目标
- Token 自动识别账号名;添加时先调 /user 验证,失败给出明确原因
- 每个账号独立记录同步进度(状态目录 .last-pushed/<账号>/<仓库>),
切回原账号不会重复推送
- 旧版「默认(SSH 私钥)」账号自动迁移生成,升级后行为不变;
首次添加 Token 账号会自动切换
2. 自动创建 GitHub 仓库
- 添加/同步时 GitHub 上不存在同名仓库,自动按账号设置建为私有/公开
- 「自动创建」可开关;无 Token 时提示去设置页配置
3. 私有 Gitea 仓库支持
- 设置页新增 Gitea 用户名/密码;密码经 git credential store 文件
(.gitcreds,600)供 clone/fetch 使用,镜像仓库 remote 不落密码
- API 查询同步改用 Basic Auth,私有仓库可被列出和克隆
其他:
- 首页/状态页显示当前 GitHub 目标账号与推送方式
- GitHub Token、Gitea 密码在日志和报错中自动打码
- accounts.json / settings.json / .gitcreds 均 600 权限
- manifest 版本 1.0.0 → 1.1.0,README 补充大众用法说明
|
2026-10-13 19:30:18 +08:00 |
|
cbb
|
4d6f71af5b
|
feat: GiteaHubSync v1.0.0 — fnOS 原生应用:Gitea→GitHub 镜像同步
- 每次推送到飞牛 Gitea(3000 端口)的代码 10 秒内自动镜像到 GitHub 7 个私有仓库
(SMB_Android / DCU_APP / GD32E50X_BOOT / DCU_DesktopController / Motor_v2 /
DCU_ECAT_Master / GD32_BOOT),真镜像语义(删分支/标签同步删)
- 标准 .fpk 原生应用:不进 Docker,依赖 python312,安装后进入应用中心已安装列表
和桌面启动台,支持启动/停止/重启/卸载,NAS 重启自动恢复
- 控制面板(:8899):自动同步开关、立即同步、仓库状态、同步日志、打开 Gitea
- GitHub 推送走 SSH 22 端口直连(HTTPS 443 本地网络被断),部署私钥随应用本地分发
- 附 fnos-install.js(命令行自动安装)、build.sh(重新构建 fpk)、genicon.py(图标生成)
注意:GitHub 部署私钥(GiteaHubSync/app/ssh/id_ed25519)与打包产物 .fpk
按 .gitignore 规则不进仓库,仅保留在工作目录本地分发。
|
2026-10-13 19:12:49 +08:00 |
|