Skip to content

feat: 独立维护容器参考实现:正余额优先、签到后补查与节点自动巡检 - #521

Draft
qiantingwl wants to merge 1 commit into
aimod-cc:betafrom
qiantingwl:feat/maintenance-sidecar-reference
Draft

qiantingwl wants to merge 1 commit into
aimod-cc:betafrom
qiantingwl:feat/maintenance-sidecar-reference

Conversation

@qiantingwl

Copy link
Copy Markdown

问题与实现

账户规模增大后,定时签到、余额和凭证维护容易占用同一批出网资源;已经确认零余额的账户重复查询,也会挤占仍在消耗积分的账户。本 PR 提交我们已实现、独立运行过的维护容器参考源码与实现总结,便于官方评估复用。

这是一个独立原型/设计评审 PR,目标分支 beta,不启用默认功能、不修改主程序转发代码、不发版本。 与此前主程序内置维护代理方案 #453 分开,不依赖合并那条 PR。

已实现什么

  • 仅支持 Loomy、小浣熊。独立持久任务队列,同账户互斥/同操作去重,签到、余额、凭证维护分别设置并发、出口和间隔,随机错峰。
  • 正积分账户在自动入队和派发时优先;成功查到零积分后退出周期查询。跨到 00:00 仍先等待下一次签到成功,再自动补查;有积分恢复正常查询,仍为零继续等待。未知和失败不算零余额;手动刷新保留。
  • 签到有每日时间窗口、最大尝试次数和失败间隔;成功后复用或创建优先余额补查任务。
  • 余额复用官方 /api/accounts/usage:可选 usage.query 桥接只负责维护出网,结果返回官方保存余额并更新调度缓存,不只改数据库数字。模型请求和其他 RPC 帧交给原插件。
  • 支持官方确实可续期的凭证临期维护,较早到期优先;Loomy/IAM 不伪装为续期成功。
  • 每平台每操作可选直连、自动节点、固定节点;坏节点定时巡检、连续失败自动隔离、复测成功恢复,保留人工停用状态;无可用节点保留队列,不隐式回退直连。
  • 独立总览、账户、队列、执行记录、设置、节点页面,分页/后台快照/加载错误空状态和移动布局;节点检测时间、延迟和隔离状态可见。资源本地提供,Tom Select 保留 MIT 许可和来源校验信息。

本次提交范围

  • contrib/maintenance-sidecar/:脱敏运行源码、独立 Dockerfile、可选 Go usage 桥接、合成数据测试。
  • docs/maintenance-sidecar.md:完整实现、状态流转、接口和数据库依赖、实际边界及待官方确定的正式接入契约。
  • 六份安装说明同步注明该原型尚无默认启用或自动安装器。

验证

  • 实际队列函数的隔离测试通过:正积分优先、跨零点不扫零余额、签到后重新开放、再次归零退出、未知/手动保留、旧队列零余额跳过、正积分不被旧 SQL 窗口遮挡。
  • 实际节点策略测试通过:隔离、连续成功恢复、人工停用保持、固定坏节点不放行、错峰排期;不执行真实节点探测。
  • Go 真实子进程桥接测试通过:Loomy/小浣熊余额转发、错误保留、模型请求和其他帧逐字保持;使用本地假上游。
  • 两个 JS 文件 node --check 通过,全部 Python 源码语法检查通过,vendored 文件哈希匹配。
  • 独立镜像构建通过;--network none 容器内真实模块启动、登录、6 个静态资源、compact state 和账户分页验证通过,零真实账户/模型请求。
  • 公开源文件扫描未发现生产服务器地址、账户 ID、密钥或订阅链接;不提交数据库、生产日志、截图、部署备份或凭证文件。

明确尚未解决的部分

原主程序二进制未改,但余额路径仍需显式安装/配置 usage 桥接适配器;签到和凭证回写目前仍依赖兼容数据库和密钥,不是完全纯 API 的即插即用部署。当前契约以 3.4.2 和 Linux amd64 为基础;官方升级/插件替换后的兼容及桥接生命周期尚需正式设计。

管理登录失效的本次请求不自动重放;桥接容量错误、较长冷却、过时正余额及上游超时仍是实际限制,不能宣称全量成功或所有显示积分可用。平台保底配额、订阅自动更新和无人值守重启恢复均未实现,原型重启后默认暂停。源码保留这些边界,方便维护者评估而不掩盖问题。

希望官方评估:是否将签到后余额事件、可选外置 worker、维护队列状态、以及更新官方调度缓存的稳定接口纳入正式扩展契约。我们可以按维护者选定的边界继续拆分成较小的正式实现 PR。

🤖 本条回复由 AI Agent 生成
Generated by an AI agent.

@coderabbitai

coderabbitai Bot commented Nov 7, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant