69871136e591b2b8416660651679554824efc823
Why: The service manager could create and run postgres instances but had no way to retarget a port explicitly, back data up, clone an instance to another port, or move a database between instances — the user asked for exactly these operations. Evidence: - "set <name> [--port N] [--host H] [--apply] [--tag T...]": explicit registration change; running postgres requires --apply (stop → rewrite registration → start); port availability checked against both registrations and live listeners. Verified: 8890→8895 with data intact and DSN updated, old port freed; refusal without --apply. - "db backup <name> [--db X] [--out F]": pg_dump -Fc into runtime/<name>/backups/ (0600) with pg_restore --list self-check; "db backups" lists them. - "db restore <name> --file F [--db X] [--force]": restores into a new db or refuses on a non-empty target unless --force (drop with FORCE + recreate + restore), reporting table counts afterwards. Verified all three paths. - "db clone <src> <dst> [--port P] [--password PW] [--tag] [--online]": default physical clone (brief source stop, cp -a of pgdata minus postmaster files, new registration, source restarted on its own port); --online copies via dump/restore without stopping the source (verified source pid unchanged). Clone lands on the requested or derived port. - "db copy <src> <dst> [--db X] [--force]": single-database logical move between two running instances with the same non-empty-target guard. "db ls <name>" lists databases. - Fixed during verification: clone/copy leaked the CLI --port into the source restart path (source briefly came up on the clone's port); the address overrides are now cleared inside those commands. Impact: All operations stay inside runtime/<name>/, append to history.jsonl, and reuse the existing safety constraints (own-process stop, port conflicts reported not seized, secrets in 0600 files). Overwriting a non-empty database requires an explicit --force everywhere. Makefile help line mentions the new db subcommands. Refs: .task/feature-svc-db-ops.md(任务卡=PR 描述)
Agent-System-Dev
Agent-System 的开发集成仓(父仓):以 submodule 固定全部模块组合,承载跨仓构建、测试编排与原生(非容器)开发环境。非分发单元——发布物在 Agent-System-Releases。
组合结构
modules/core Agent-System-Core 核心契约(领域模型/事件协议/插件 API/设置与 UI 词汇)
modules/backend Agent-System-Backend 后端单二进制(内嵌前端与嵌入式 SQLite)
modules/frontend Agent-System-Frontend 前端(React 19 + Vite + TS)
modules/documents Agent-System-Documents 系统文档与过程记录
modules/ui Agent-System-UI UI 组件库(词汇渲染器/设计令牌/收件箱卡片工作区组件)
deps/development-guidelines 开发规范(gitlink 固定版本)
deps/agent-native deps/agent-squad deps/agent-intent 生态执行/编排/意图
deps/agent-command Agent-Command 命令总线基础库(spec/注册表/危险分级/审计信封)
deps/error-code-system deps/logging-system 基础设施
plugins/ 示例插件与插件开发参考(P4 起填充)
父仓 gitlink 是各组件源码版本的权威;构建、审核与发布固定提交,不执行 submodule update --remote。
常用命令
make sync # 物化全部 submodule(递归)
make build # 构建单二进制 bin/agent-system
make test # 全量测试
make dev # 开发模式说明(前后端分离热更新)
约束(全局)
- 非容器化部署:默认单二进制,必要时拆分多个原生二进制;不发布容器镜像。
- 依赖方向:frontend→core←backend;插件只依赖 core;生态仓依赖纪律沿用各仓既有约定。
- 开发规范:
deps/development-guidelines(见各仓 AGENTS.md)。
文档
设计方案:modules/documents/docs/proposals/2026-09-29-system-skeleton-design-and-plan.md(含 D1–D16 决策记录)。
Description
开发集成仓:以 submodule 固定全部模块组合,承载跨仓构建、测试编排与原生(非容器)开发环境;发布物在 Agent-System-Releases。
31 MiB
Languages
Python
56.1%
Shell
35.9%
Go
5.3%
JavaScript
1.4%
Makefile
1.1%
Other
0.2%