Repository navigation
host consumer sync
SandAdmin 是通用宿主的唯一权威来源,只发布宿主版本、变更说明和兼容性通知。根目录 catalog.json 只引用各插件独立仓库的 Release,不包含业务插件源包或安装副本,也不通过 Git hook、文件复制或脚本主动改写其他工作区。
消费工作区拥有自己的宿主副本、业务覆盖层和验收环境:
| 消费方 | 宿主位置 | 用途 |
|---|---|---|
SandAdmin 与 sand_plugins
|
独立消费工作区 | 零插件基线及插件日常安装、演示、联调与验收 |
sand_ai |
仓内 server/、sandadmin-artd/
|
SandAI 主应用的管理宿主 |
| 未来消费者 | 由该工作区显式登记 | 自有应用或插件验证宿主 |
只调用 Sand 平台 API、并不嵌入后台宿主的项目无需复制 SandAdmin。
同步采用“发布者通知、消费方拉取”:
- 其他项目向 SandAdmin 提交通用宿主需求、复现和契约。
- SandAdmin 在本仓实现,并完成零业务插件验证。
- SandAdmin 发布 tag、release candidate 或明确 commit,并提供变更说明。
- 消费宿主从锁定的 SandAdmin revision 单向同步后端项目与前端源码,并保留自己的运行配置和数据。
- 消费方运行自己的业务验收,将宿主 revision、插件/应用版本和结果回传兼容矩阵。
禁止 SandAdmin 的 post-commit hook 主动推送;禁止消费方把宿主副本或业务覆盖层反向同步进 SandAdmin;禁止把两个工作区当作可双向编辑的同一源码树。
正式同步默认只接受干净的 SandAdmin Git 工作树。同步记录至少包含:
- SandAdmin commit SHA;
- SandAdmin tag 或 release candidate(若有);
- source 状态,正式验收必须为
clean; - 同步时间和消费工作区;
- 消费方保留的覆盖路径;
- 同步后的静态检查与业务验收结果。
本地探索可以显式允许 dirty source,但必须记录为 dirty-local,不能作为发布、兼容性或正式验收证据。不要按每个 commit 自动覆盖消费者;以消费者明确接受的版本为同步单位。
消费方同步脚本必须显式保护其拥有的应用代码、环境文件、运行数据、业务插件、测试和配置覆盖层。同步前先 dry-run;出现未分类冲突时停止,不得静默覆盖。
消费方必须将 server/storage/sandpackage/ 作为本机持久数据保护:从发布源排除,并在接收端保护其不受 --delete 删除。若同步根是 server/,规则应相对该根使用 /storage/sandpackage/;若根是整个项目,则使用 /server/storage/sandpackage/。继续保护旧 runtime/,不能因新目录引入而取消旧实例保护。正式同步前用临时夹具验证“源端数据不复制、目标数据不删除”,目录迁移必须作为独立的维护操作。
独立消费工作区用于稳定的日常演示与业务验收。安装、升级、卸载等破坏性生命周期应优先从同一锁定宿主版本创建可丢弃的隔离宿主,避免破坏长期演示环境。任何数据库创建、迁移、服务启停或清理仍需任务级明确授权。
新增宿主消费者时,应在自己的仓库中完成:
- 记录宿主用途和覆盖路径;
- 提供消费方拥有的同步脚本及
--dry-run; - 默认拒绝 dirty SandAdmin source;
- 记录同步 revision;
- 提供零插件或业务侧验收入口;
- 在 SandAdmin 兼容矩阵登记结果,而不是要求 SandAdmin 获得该工作区写权限。
消费方遇到无法确认归属的问题时,不得同时修改宿主和插件,也不得在 demo 宿主中直接修代码。先冻结 SandAdmin revision、插件 revision、候选包 SHA、数据库/生命周期状态、复现步骤和错误证据;宿主变量与插件变量每轮只能改变一个。
疑似宿主问题由消费方通过 SandAdmin GitHub Issues 提交,附带锁定 revision、复现步骤和错误证据。单插件复现默认退回插件权威仓库;只有零插件基线、中立扩展或多个独立插件复现的通用缺陷才由 SandAdmin 接受。宿主实现应尽量保持 SaiAdmin 上游结构和升级路径,优先补充公开扩展契约、适配器或兼容层,避免为单插件改动核心。
第 1、2 轮单变量诊断仍不能缩小范围时,第 3 轮使用 gpt-6-astra/high 做有界根因审查,并记录实际任务模型证据和新增信息。第 3 轮仍无根因或下一项可区分实验时,必须停止修改并标记 BLOCKED_ROOT_CAUSE_UNKNOWN;不得自动开始第 4 轮。
开始使用
基础包参考
开发插件
版本更新
版本和维护