Compare commits

...
13 changed files with 304 additions and 30 deletions
+9
View File
@@ -116,6 +116,11 @@ Gitea 不可用时,输出完整工单草稿并说明阻塞。未经用户明
## 6. Git 与验证
- `explore` 是旧实现的只读聚合快照,不接受新功能、修复或文档演进;需要恢复旧行为时从其来源提交读取证据,不在该分支续写产品。
- `main` 是用户审核基线,禁止直接开发、直接提交或未经用户明确审核的合并。
- 新任务分支必须从当前 `dev` 创建,完成后通过 PR 合回 `dev`;不得把功能分支直接合入 `main`。
- `dev` 完成集成测试后仍不能自动进入 `main`;只有用户明确表示审核/验收通过,Agent 才能执行 `dev → main`。
- 紧急修复也必须建单并取得用户对分支与合并路径的明确授权,不默认绕过 `dev`。
- 提交只包含当前工单相关文件。
- 实现提交信息引用工单号,例如:`fix: 修复登录超时 (#123)`。
- 不为流程制造空提交。
@@ -194,6 +199,10 @@ MVP 内所有单元任务通过后才能做 MVP 集成验收;MVP 通过后才
- `goadmin-baseline.json` 是 Sense、Bell 共用的 GoAdmin 上游与工具链版本事实来源;上游 URL 加完整 commit 是可复现标识,tag、`package.json` version、本机目录内容或本机已安装版本都不能替代 commit。
- `D:\github\goadmin\go-admin`、`go-admin-ui`、`go-admin-doc` 是当前机器的只读参考副本。Agent 可以读取和验证,不得在这些目录开发、修改或提交 yovision 产品代码。
- “基于 go-admin / go-admin-ui 二次开发”必须表现为从 `goadmin-baseline.json` 指定的两个完整上游 commit 导入或派生产品源码,并保留可核对的目录结构、框架启动链、通用认证/RBAC、菜单路由、请求封装及许可证来源;仅采用 Go、Vue、Element Plus、相似目录、页面外观或交互不算满足基线。
- 禁止用自建 `net/http`、自建认证/RBAC/会话框架或自制管理端外壳替代 go-admin/go-admin-ui 后仍声称是 GoAdmin 二次开发。确有上游能力无法满足时,必须在独立工单中说明缺口、保留上游扩展边界并等待用户确认。
- 每个 Sense/Bell 骨架、基础能力或框架相关工单开始实施前,必须读取任务相关的冻结 `go-admin-doc` 内容,并在工单中记录参考的文档主题或文件、继承的上游路径以及计划隐藏/禁用的默认模块。
- 初始化验收必须包含来源证据:上游 URL/commit、实际导入路径、保留的 MIT 文件、相对上游的裁剪/修改清单和构建测试;缺少任一项不得标记为 GoAdmin 骨架完成。
- Sense、Bell 必须从同一冻结基线分别初始化,保留独立代码、配置、构建、测试、版本和发布;不得通过共同修改参考仓库形成隐藏的共享实现。
- 复制或派生上游代码时必须保留对应 MIT 许可证和版权声明,并记录实际复制来源的 commit。
- `go-admin-doc` 只用于理解上游框架用法;yovision 的 Gitea Wiki、`AGENTS.md` 和 `goadmin-baseline.json` 仍是本项目事实来源。
+3
View File
@@ -26,6 +26,9 @@
## GoAdmin 技术基线
- 初始化或升级 Bell 前必须读取根 `goadmin-baseline.json`,按其中的 go-admin、go-admin-ui commit 和 Go/Node/pnpm 精确版本实施。
- Bell 必须由冻结 go-admin 后端与 go-admin-ui 前端源码直接派生;旧 `explore` 实现只能用于业务语义对照,禁止把其中自研认证、RBAC、会话、HTTP 平台或前端外壳复制为新基础。
- 开始每个骨架、认证权限、菜单路由、代码生成、ORM 或通用 UI 工单前,必须读取任务相关的冻结 go-admin-doc,并把参考主题/文件及采用方式写回工单。
- 骨架验收必须证明上游来源、继承路径、许可证、裁剪清单和相对上游差异;只有相似技术栈或视觉不能通过验收。
- `D:\github\goadmin` 下的仓库仅可只读参考;Bell 产品代码只能写入 `Bell/` 或工单授权路径,不得在参考仓库原地开发。
- 派生上游代码必须保留 MIT 许可证和版权声明;上游 `go-admin-doc` 只作框架用法参考,不覆盖 yovision Wiki 和本目录规则。
- 变更冻结基线必须升级为 Sense/Bell 协同工单;Bell 可以独立发布,但不得单独漂移上游或工具链版本。
+9
View File
@@ -9,3 +9,12 @@ YoVision 是一个单仓多项目的智能视频事件平台,包含三个可
Sense 与 Bell 是账户、数据、部署和发布边界完全独立的两个销售产品;Brain 是无界面的独立推理交付单元,默认随 Sense 部署。跨项目协作只通过 `contracts/` 中的版本化契约。
开始工作前阅读 [AGENTS.md](AGENTS.md) 和 [文档中心](docs/README.md)。本仓库采用 DevHarness:Gitea 工单记录任务过程,Gitea Wiki 保存长期文档,`docs/` 是 Wiki 的只读镜像。
## 分支模型
- `explore`:2026-08-14 前实现的只读聚合快照,用于迁移对照和回退。
- `main`:用户审核通过的基线,禁止直接开发。
- `dev`:集成开发与测试分支;任务分支从 `dev` 创建并通过 PR 返回 `dev`。
- 只有用户明确审核通过,才能将 `dev` 合入 `main`。
Sense 与 Bell 的新实现必须从根 `goadmin-baseline.json` 冻结的 go-admin 和 go-admin-ui 完整提交派生,开发时必须核对对应 commit 的 go-admin-doc。仅参考 GoAdmin 的技术栈、布局或视觉不属于本项目认可的二次开发。
+3
View File
@@ -26,6 +26,9 @@
## GoAdmin 技术基线
- 初始化或升级 Sense 前必须读取根 `goadmin-baseline.json`,按其中的 go-admin、go-admin-ui commit 和 Go/Node/pnpm 精确版本实施。
- Sense 必须由冻结 go-admin 后端与 go-admin-ui 前端源码直接派生;旧 `explore` 实现只能用于需求和行为对照,禁止把其中自研 HTTP、认证、RBAC、会话或前端外壳复制为新基础。
- 开始每个骨架、认证权限、菜单路由、代码生成、ORM 或通用 UI 工单前,必须读取任务相关的冻结 go-admin-doc,并把参考主题/文件及采用方式写回工单。
- 骨架验收必须证明上游来源、继承路径、许可证、裁剪清单和相对上游差异;只有相似技术栈或视觉不能通过验收。
- `D:\github\goadmin` 下的仓库仅可只读参考;Sense 产品代码只能写入 `Sense/` 或工单授权路径,不得在参考仓库原地开发。
- 派生上游代码必须保留 MIT 许可证和版权声明;上游 `go-admin-doc` 只作框架用法参考,不覆盖 yovision Wiki 和本目录规则。
- 变更冻结基线必须升级为 Sense/Bell 协同工单;Sense 可以独立发布,但不得单独漂移上游或工具链版本。
+24 -4
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Project-Profile
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Project-Profile.-
wiki_revision: 5561227400539f0a3ba7713be16c171feb811fcb
synchronized_at: 2026-08-12T01:26:47Z
wiki_revision: d32f00a86bb3127485b8ad4da8436bf2117352e0
synchronized_at: 2026-08-14T01:06:22Z
<!-- gitea-wiki-mirror:end -->
# 项目档案
@@ -19,7 +19,7 @@ synchronized_at: 2026-08-12T01:26:47Z
| 首期客户场景 | 民办寄宿学校,默认 16 路高风险点位 |
| 首期规则 | 越线、危险区域、聚集等匿名安全规则;不启用人脸 |
| 产品形态 | Sense 与 Bell 两个独立销售产品,Brain 为独立推理交付单元 |
| 当前阶段 | 新仓库文档与开发流程初始化,业务代码尚未迁移 |
| 当前阶段 | 进入 GoAdmin 源码派生重建:旧实现归档于 `explore`,`main` 为审核基线,`dev` 为集成开发分支 |
| 历史来源 | `D:\OPC\yovision_old`,只读追溯 |
## 子项目与交付单元
@@ -42,7 +42,7 @@ synchronized_at: 2026-08-12T01:26:47Z
- 证据:客户侧 MinIO/S3 兼容对象存储;常态录像优先留在客户已有 NVR。
- 首期验证平台:NVIDIA x86/Jetson;M1-M3 不承诺 GB/T 28181、信创或原生 App。
业务代码尚未初始化;Sense/Bell 的 Go/Node 基线已冻结并记录于下文,Brain 的 Python/CUDA 版本仍须在对应骨架工单中冻结。
2026-08-14 起,原 Sense、Bell 实现只在 `explore` 和原功能分支中作为迁移参考,不再作为新开发基础。新的 Sense、Bell 必须从下述冻结 go-admin/go-admin-ui 完整提交派生;实施时必须核对冻结 go-admin-doc。Brain 尚未初始化。
## 阅读入口
@@ -92,3 +92,23 @@ Sense、Bell 共用的可复现技术基线记录在仓库根 `goadmin-baseline.
固定工具链为 Go 1.26.5、Node.js 22.22.1、pnpm 9.15.1。go-admin-ui 的 `package.json` version 仍为 2.0.9,但冻结提交位于 `v2.0.9` 后 170 个提交,因此不得只用“2.0.9”代表当前基线。
三个上游仓库均使用 MIT 许可证。派生代码必须保留许可证和版权声明。Sense、Bell 使用同一上游基线,但分别维护代码、配置、构建、测试、版本和发布。任何上游或工具链升级必须建立影响 Sense/Bell 的协同工单。
<!-- sense-runtime:start -->
## Sense 重建状态
当前可运行的旧 Sense 实现保存在 `explore`,不进入新 `main` / `dev` 基线。新 Sense 尚未初始化;后续必须从冻结的 go-admin 后端和 go-admin-ui 前端源码派生,保留上游骨架、许可证和来源证据,并在工单记录实际参考的 go-admin-doc 页面。
<!-- sense-runtime:end -->
<!-- bell-runtime:start -->
## Bell 重建状态
当前 Bell MVP 实现在 `explore` 和原功能分支中保留,只作需求、行为和迁移对照。新 Bell 尚未初始化;后续必须从与 Sense 相同的冻结 go-admin/go-admin-ui 基线独立派生,不能复制旧自研基础框架或共享 Sense 的认证与数据库。
<!-- bell-runtime:end -->
## 分支治理
- `explore`:2026-08-14 前实现的只读聚合快照;不接受新功能。
- `main`:用户审核通过的最小/发布基线;禁止直接开发和未经用户明确审核的合并。
- `dev`:集成开发与测试分支;功能分支从 `dev` 派生,并通过 PR 合回 `dev`。
- 只有用户明确审核通过,才能把 `dev` 合入 `main`。
+36 -9
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Development-Workflow
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Development-Workflow.-
wiki_revision: 44720127496ee08289db439268708d6314705faf
synchronized_at: 2026-08-12T00:46:39Z
wiki_revision: 2bb60b79073439babfda05140ce813d197de81d9
synchronized_at: 2026-08-14T01:06:22Z
<!-- gitea-wiki-mirror:end -->
# 开发工作流
@@ -241,14 +241,19 @@ python dev_scripts/new_task_archive.py 123 "修复登录超时"
## go-admin / go-admin-ui 开发约束
Sense、Bell 使用 go-admin 和 go-admin-ui 时,采用以下统一流程:
Sense、Bell 使用 go-admin 和 go-admin-ui 时,采用以下统一流程。“基于 GoAdmin”必须是源码派生,不得解释为仅参考技术栈、目录、页面风格或交互:
1. 先列出产品实际需要的菜单、路由、权限和接口,只呈现必要能力,框架演示页和无关管理模块不进入产品导航。
2. 快速交付阶段优先使用配置、菜单权限或路由开关隐藏模块。隐藏只代表用户看不到入口;涉及权限或安全时,还必须禁用对应后端访问能力并验证直接请求不可用。
3. 永久删除默认模块必须单独建立清理工单,核对代码依赖、数据库对象、权限记录、构建、框架升级和回退方式,不能混入普通业务页面工单。
4. 新页面先盘点并复用已有布局、表格、表单、弹窗、上传、权限控制和请求封装。只有现有组件无法满足明确需求时才新增组件,并在工单记录复用缺口。
5. 新组件沿用所属产品现有的颜色、字号、间距、状态反馈、交互方式、命名和目录结构,不建立独立于整体界面的视觉体系。
6. 单页需求不得直接改变底层公共组件的全局行为。确需全局修改时单独建单,列出受影响页面、兼容方式和回归测试;同时影响 Sense、Bell 时按协同工单处理。
1. 初始化时从 `goadmin-baseline.json` 指定的 go-admin、go-admin-ui 完整 commit 导入/派生产品源码,保留 MIT 许可证、版权和来源清单;不得以自建 `net/http`、自建认证/RBAC 或仅使用 Vue + Element Plus 替代上游骨架。
2. 实施工单开始前必须核对冻结 go-admin-doc,并在工单证据中记录参考的文档主题或文件;文档只解释上游用法,不改变本项目需求事实源。
在满足上述来源门禁后:
3. 先列出产品实际需要的菜单、路由、权限和接口,只呈现必要能力,框架演示页和无关管理模块不进入产品导航。
4. 快速交付阶段优先使用配置、菜单权限或路由开关隐藏模块。隐藏只代表用户看不到入口;涉及权限或安全时,还必须禁用对应后端访问能力并验证直接请求不可用。
5. 永久删除默认模块必须单独建立清理工单,核对代码依赖、数据库对象、权限记录、构建、框架升级和回退方式,不能混入普通业务页面工单。
6. 新页面先盘点并复用已有布局、表格、表单、弹窗、上传、权限控制和请求封装。只有现有组件无法满足明确需求时才新增组件,并在工单记录复用缺口。
7. 新组件沿用所属产品现有的颜色、字号、间距、状态反馈、交互方式、命名和目录结构,不建立独立于整体界面的视觉体系。
8. 单页需求不得直接改变底层公共组件的全局行为。确需全局修改时单独建单,列出受影响页面、兼容方式和回归测试;同时影响 Sense、Bell 时按协同工单处理。
验收至少检查:没有多余入口、没有可见但不可用的失效入口、没有重复实现已有组件,且新增页面与同类页面的视觉和交互一致。
@@ -257,3 +262,25 @@ Sense、Bell 使用 go-admin 和 go-admin-ui 时,采用以下统一流程:
- 隐藏:保留代码与能力,只移除普通用户入口,便于快速交付和以后恢复。
- 禁用:前端入口与后端访问能力均不可用,适用于权限、安全或明确停用的能力。
- 删除:清理代码、依赖、数据对象和权限记录,风险较高,必须由独立清理工单实施。
## 分支模型与审核门禁
```text
explore(旧实现只读快照)
dev
├── feature/<issue>-sense-...
├── feature/<issue>-brain-...
├── feature/<issue>-bell-...
└── coordination/<issue>-...
│
└── PR + 测试 → dev → 用户明确审核 → main
```
- `explore` 仅供对照、迁移和回退,不继续开发。
- `main` 只接收用户明确审核通过的 `dev` 结果;禁止直接在 `main` 修改、提交或推送。
- 新任务分支必须从当前 `dev` 创建,实施完成后 PR 目标为 `dev`。
- Agent 的“待验收”不等于允许进入 `main`;只有用户明确审核/验收通过才可执行 `dev → main`。
- 紧急修复也必须建单并取得用户对分支与合并路径的明确授权,不默认绕过 `dev`。
+24 -5
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Architecture-and-Code-Map
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Architecture-and-Code-Map.-
wiki_revision: 04b5eaea579729e427f1b2b8962399e861d5eb53
synchronized_at: 2026-08-11T10:30:34Z
wiki_revision: 119fb7b2a994d54e4d0a40f7bc2ef6238b162387
synchronized_at: 2026-08-14T01:06:22Z
<!-- gitea-wiki-mirror:end -->
# 架构与代码地图
@@ -31,15 +31,15 @@ Bell 也可接收合成事件、传感器平台或第三方系统事件;Sense
| 能力 | 路径 | 首个阅读入口 | 验证位置 | 风险 |
|---|---|---|---|---|
| Sense 产品 | `Sense/` | `Sense/AGENTS.md`;后续 README/入口 | `Sense/` 内测试 | 高:设备、媒体、凭据、并发对账 |
| Sense 产品 | `Sense/` | `Sense/AGENTS.md`;待 GoAdmin 派生工单建立 README/入口 | 待新骨架建立 | 高:GoAdmin 派生、设备、媒体、凭据 |
| Brain 推理 | `Brain/` | `Brain/AGENTS.md`;后续包入口 | `Brain/` 内测试与契约测试 | 高:模型、GPU、隐私、事件语义 |
| Bell 产品 | `Bell/` | `Bell/AGENTS.md`;后续 README/入口 | `Bell/` 内测试 | 高:认证、事件、告警状态机、通知 |
| Bell 产品 | `Bell/` | `Bell/AGENTS.md`;待 GoAdmin 派生工单建立 README/入口 | 待新骨架建立 | 高:GoAdmin 派生、认证、事件与告警状态机 |
| 共享契约 | `contracts/` | `contracts/AGENTS.md` | 三端消费者/生产者测试 | 高:兼容性与跨项目影响 |
| Harness | `dev_scripts/` | `check_harness.py` | `tests/` | 中 |
| 工单模板 | `.gitea/issue_template/` | `task.md` | Harness 严格检查 | 中 |
| Wiki 镜像 | `docs/` | `docs/README.md` | `sync_wiki_docs.py --check` | 低;禁止直接编辑 |
业务代码尚未迁入;具体函数、路由和测试入口必须随各项目骨架工单更新,不复制旧仓库代码地图。
旧 Sense、Bell 入口仅存在于 `explore` 快照,不是 `main` / `dev` 当前代码地图。三个项目的新入口必须随新骨架工单建立;不得把旧自研基础框架复制回 `dev`。
## 两条主要执行路径
@@ -79,3 +79,22 @@ Sense/Brain 生成事件
- 业务预警与运维告警分开。
- Area/设备/规则在各独立产品内有自己的业务投影,不以共享数据库同步。
- 单项目工单不得顺带修改其他项目;共享契约变更必须由协调工单统筹。
<!-- sense-runtime:start -->
## Sense 新代码入口
Sense 当前处于重建前的空基线。新入口必须由 GoAdmin 派生工单从冻结 go-admin/go-admin-ui 源码建立,并在来源清单记录上游 commit;不得沿用 `explore` 中自研的 HTTP、认证、RBAC 或前端外壳作为基础框架。
<!-- sense-runtime:end -->
<!-- sense-mvp:start -->
## Sense 旧 MVP 对照
旧设备、ONVIF/RTSP、MediaMTX、实时监看和区域配置实现保存在 `explore`。迁移时只提取已确认业务需求和必要业务适配器;通用认证、权限、菜单、请求封装和管理端外壳必须优先使用 GoAdmin/go-admin-ui。
<!-- sense-mvp:end -->
<!-- bell-mvp:start -->
## Bell 旧 MVP 对照
旧 Event → Rule → Alert → ack/close 实现在 `explore`。迁移时保留业务语义、不可变与幂等约束,但新的通用认证、RBAC、菜单、审计和管理端外壳必须基于冻结 GoAdmin 源码。
<!-- bell-mvp:end -->
+21 -2
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Business-Rules-and-Glossary
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Business-Rules-and-Glossary.-
wiki_revision: 7a9645a7ca7f4b3478d27afb2d441238431f501e
synchronized_at: 2026-08-11T10:30:38Z
wiki_revision: 85ddfe99c2f9c97b18d5e39849a50b8c5fca276e
synchronized_at: 2026-08-14T01:17:28Z
<!-- gitea-wiki-mirror:end -->
# 业务规则与术语
@@ -66,3 +66,22 @@ synchronized_at: 2026-08-11T10:30:38Z
- 三个交付单元的正式版本与发布流程。
未确认项不得从旧代码或模板默认值推断为当前事实。
<!-- sense-mvp:start -->
## Sense 旧 MVP 规则状态
2026-08-14 前的 Sense 账户、设备、发现、Profile、MediaMTX、播放会话和区域版本实现规则仅适用于 `explore` 快照,不是新 `main` / `dev` 的运行事实。迁移工单应从这些记录提取已确认业务与安全约束,但认证、RBAC、管理端外壳和通用 CRUD 必须基于冻结 GoAdmin 源码重新实现并重新验收。
<!-- sense-mvp:end -->
<!-- bell-mvp:start -->
## Bell 旧 MVP 规则状态
2026-08-14 前的 Bell 独立身份、Event/Receipt、规则、Alert、ack/close 和审计实现仅保存在 `explore`。不可变、幂等、并发处置和产品独立边界仍是待迁移业务要求,但新实现必须从冻结 GoAdmin/go-admin-ui 源码派生并重新验收。
<!-- bell-mvp:end -->
## 旧实现迁移边界
旧 Sense 中已验证的中文设备字段、请求白名单、凭据隔离和媒体链路行为可作为迁移验收用例;不得把旧自研基础框架直接复制到新 `dev`。
+36 -6
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Local-Development-and-Verification
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Local-Development-and-Verification.-
wiki_revision: 1eb27d082ebf892343c9a5eed6f9363363234903
synchronized_at: 2026-08-12T01:26:57Z
wiki_revision: 1730ec258fb54c1b4be15ce0f6e1a18e44281810
synchronized_at: 2026-08-14T01:06:22Z
<!-- gitea-wiki-mirror:end -->
# 本地开发与验证
@@ -59,7 +59,7 @@ Sense/Bell 的 Go、Node 与 pnpm 基线已冻结并记录于下文;Brain 的
|---|---|---|---|---|
| Sense | 待骨架工单冻结 | 待冻结 | 待冻结 | 未初始化业务代码 |
| Brain | 待骨架工单冻结 | 待冻结 | 待冻结 | 未初始化业务代码 |
| Bell | 待骨架工单冻结 | 待冻结 | 待冻结 | 未初始化业务代码 |
| Bell | 待 GoAdmin 派生工单建立 | 待建立 | 待建立 | 旧实现仅在 `explore`;新基线未初始化 |
不得复制旧仓库命令来填空。每个骨架工单必须同时建立 README、可复制命令和最小测试。
@@ -73,8 +73,8 @@ Sense/Bell 的 Go、Node 与 pnpm 基线已冻结并记录于下文;Brain 的
## 测试数据与日志
- 只使用合成或脱敏事件、合成 RTSP 和明确授权的实验室设备。
- 不提交真实视频、客户名称、地址、手机号、摄像头密码或通知凭据。
- 只使用合成或脱敏事件、合成 RTSP 和明确授权的实验室设备。ONVIF 自动化测试需覆盖 Basic、Digest challenge、Media 服务发现、跨主机地址归一化、拒绝地址凭据和禁止重定向。
- 不提交真实视频、客户名称、地址、手机号、摄像头密码或通知凭据;真实设备验证只记录状态与 Profile 数量,不记录设备地址、Authorization 或 Stream URI。
- 日志必须可按 request/event/alert ID 追踪,但不得记录 Authorization、Cookie 或连接密钥。
## 完成修改前
@@ -107,6 +107,36 @@ pnpm --version
`D:\github\goadmin` 下三个仓库只允许读取和核对,不允许在其中开发或提交 yovision 产品代码。本机路径不是跨机器事实;缺少该路径时,应从清单中的上游 URL 检出相同 commit 到仓库外目录。
截至 2026-08-12 的本机核对结果:Go 1.23.0,不满足 go-admin `go.mod` 声明的 Go 1.26.5;Node.js 22.22.1 符合基线;pnpm 尚未安装,Corepack 0.34.6 可用。因此后端构建和 pnpm 前端构建均未完成验证。安装隔离的 Go 1.26.5 并通过 Corepack 启用 pnpm 9.15.1 后,才可执行后续骨架构建验收。
截至 2026-08-12,系统 Go 1.23.0 仍不满足基线;开发机已在仓库外安装并校验隔离 Go 1.26.5,并通过 Corepack 使用 pnpm 9.15.1。Sense、Bell 的后端测试/构建与前端 lint/build 已在该隔离工具链完成。隔离目录是开发机临时事实,不得写入部署配置;其他机器应从官方来源安装相同精确版本。
`go-admin-doc` 只用于理解上游框架;项目自己的架构、开发规则和版本事实仍以 yovision Wiki、Agent 规则与 `goadmin-baseline.json` 为准。
<!-- sense-runtime:start -->
## Sense 本地构建与验证
新 Sense 尚未初始化。骨架工单必须先验证冻结 go-admin/go-admin-ui commit 与许可证,再记录从上游继承的构建、迁移、启动和测试命令;不得把 `explore` 的自研命令写成新基线事实。
<!-- sense-runtime:end -->
<!-- bell-runtime:start -->
## Bell 本地构建与验证
新 Bell 尚未初始化。骨架工单必须从冻结 GoAdmin 源码建立并验证独立构建、数据库、认证和前端流程;旧 Bell 命令只在 `explore` 对应提交中适用。
<!-- bell-runtime:end -->
<!-- sense-windows-package:start -->
## Sense Windows 打包状态
旧 Sense Windows 包脚本只属于 `explore` 快照。新的打包命令必须在 GoAdmin 派生骨架和业务迁移完成后由独立工单重新建立、验证和记录。
<!-- sense-windows-package:end -->
## GoAdmin 派生前置检查
每个 Sense/Bell 骨架或基础能力工单在修改前必须:
1. 核对 `goadmin-baseline.json` 中三个完整 commit。
2. 核对本机只读副本或重新检出的上游仓库 HEAD。
3. 阅读任务相关的 go-admin-doc 主题/文件,并把参考项记录到工单。
4. 记录计划继承的 go-admin/go-admin-ui 路径、计划隐藏/禁用的模块和许可证处理。
5. 验证最终产品树确实包含上游派生结构;只使用 Go、Vue、Element Plus 或相似视觉不算通过。
+23 -2
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Troubleshooting
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Troubleshooting
wiki_revision: 632e07b6cd22f6e3ae07c23ed58439ea2beecff2
synchronized_at: 2026-08-11T10:30:46Z
wiki_revision: 2be5d803b954df64e31085bcf097ee27f8611f9d
synchronized_at: 2026-08-14T01:17:28Z
<!-- gitea-wiki-mirror:end -->
# 故障排查
@@ -39,3 +39,24 @@ synchronized_at: 2026-08-11T10:30:46Z
- 契约破坏性变化没有新版本、迁移和回退方案;
- 涉及删除、不可逆迁移、发布或生产变更但没有明确授权;
- 工作区出现来源不明且与当前任务重叠的修改。
<!-- sense-mvp:start -->
## 旧 Sense MVP 排错资料
旧 Sense 的数据库、ONVIF/RTSP、MediaMTX、实时监看、会话和区域排错只适用于 `explore` 快照。新 `main` / `dev` 当前没有可运行 Sense;在新的 GoAdmin 派生骨架和业务迁移工单完成前,不使用旧命令或旧状态判断新实现。
<!-- sense-mvp:end -->
<!-- sense-windows-package:start -->
## 旧 Sense Windows 包状态
旧 Windows 打包与启动脚本仅保存在 `explore`,不属于新开发基线。新的 GoAdmin 派生实现必须由独立工单重新建立打包、配置和排错说明。
<!-- sense-windows-package:end -->
## 重建阶段常见问题
| 现象 | 处理 |
|---|---|
| 在 `dev` 找不到 Sense/Bell 可运行代码 | 这是重建空基线的预期状态;旧实现位于 `explore`,新代码必须由 GoAdmin 源码派生工单建立。 |
| 新骨架只有相似页面、没有 GoAdmin 启动链或权限模块 | 不符合二次开发门禁;停止验收,对照 `goadmin-baseline.json`、上游源码和 go-admin-doc 重新实施。 |
+26 -2
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Delivery-Documentation-Guide
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Delivery-Documentation-Guide.-
wiki_revision: e0b43bfada515ff95831debc4378de41a8ad969a
synchronized_at: 2026-08-11T10:31:06Z
wiki_revision: d4f2bfcef46493361ba019839b36957ed9947003
synchronized_at: 2026-08-14T01:18:58Z
<!-- gitea-wiki-mirror:end -->
# 交付文档指南
@@ -78,3 +78,27 @@ synchronized_at: 2026-08-11T10:31:06Z
## 不在本页解决的内容
开发任务怎样建单、实施和归档见[开发工作流](Development-Workflow.-);代码结构和维护入口见[架构与代码地图](Architecture-and-Code-Map.-)。本页不规定市场宣传、合同、法务或商务承诺。
<!-- sense-mvp:start -->
## Sense MVP 岗位操作路径
Sense 面向网管、实施人员和非技术现场人员,菜单按日常任务组织:工作台 → 设备管理 → 视频接入 → 视频服务 → 实时监看 → 区域与警戒线。普通操作优先展示中文状态与下一步,不要求用户理解 ONVIF、RTSP 或 MediaMTX 内部模型。
- 系统管理员:完成一次性安全初始化,维护 Sense 用户与角色,查看操作记录。首次管理员和新用户密码仅要求至少 6 个字符,不限制字符种类并允许包含用户名;仍应由管理员选择难猜且不复用的密码。
- 实施/运维:添加设备、只写更新凭据、在获准网卡发现或手工接入、检查主辅码流、处理媒体进程与对账。
- 站点管理员:查看/维护站点设备,实时监看,绘制和发布区域版本;无权创建系统管理员。
- 只读用户:查看设备、媒体状态、实时画面和区域,不能修改。
交付验收必须使用仓库外测试账户和获准实验室设备;文档、截图、工单和日志不得包含摄像机密码、Cookie、令牌、含凭据 URI 或客户真实画面。当前自动化已覆盖内部状态和安全边界;真实 PostgreSQL、MediaMTX、摄像机兼容与目标浏览器画面仍需实施人员验证。
<!-- sense-mvp:end -->
<!-- sense-windows-package:start -->
## Sense Windows 运行包交付
交付对象为实施和运维人员。`sense-windows-amd64.zip` 包含后端程序、已构建前端、空值示例配置、上游许可证、启动脚本与包内说明;不包含 PostgreSQL、MediaMTX、Windows 服务、生产数据或秘密。
- 临时查看必须显式运行 `start-sense.bat demo`,其内存数据在进程结束后丢失,不能当作生产部署。
- 生产配置可由运维写入解压目录的 `config\sense.env`,或通过 Windows 进程环境安全注入;进程环境优先。先运行 `start-sense.bat check` 检查必填项,再运行 `start-sense.bat`。
- 交付时记录 ZIP SHA-256,并至少验证 `/healthz` 与首页;真实 PostgreSQL、MediaMTX、摄像机和目标浏览器仍需在获准环境验收。
- 包内 `README-WINDOWS.md` 是现场操作入口;真实 `config\sense.env` 只留在具体部署目录,不得提交 Git 或重新打入交付 ZIP,交付 ZIP 只保留 `sense.env.example`。
<!-- sense-windows-package:end -->
@@ -0,0 +1,86 @@
<!-- gitea-wiki-mirror:start -->
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Task-58-建立explore-main-dev分支治理并重置GoAdmin开发基线
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-58-%E5%BB%BA%E7%AB%8Bexplore-main-dev%E5%88%86%E6%94%AF%E6%B2%BB%E7%90%86%E5%B9%B6%E9%87%8D%E7%BD%AEGoAdmin%E5%BC%80%E5%8F%91%E5%9F%BA%E7%BA%BF.-
wiki_revision: 67ec6d59eb55795e226d0a38cac57b3188d8fa52
synchronized_at: 2026-08-14T01:14:45Z
<!-- gitea-wiki-mirror:end -->
# 58 建立 explore/main/dev 分支治理并重置 GoAdmin 开发基线
- 类型:根级协调任务
- 状态:待验收
- 日期:2026-08-14
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/58
## 背景与目标
用户确认保留当前实现作为历史快照,并将后续开发切换到 `dev`,只有用户审核后才能进入 `main`。同时纠正此前“仅参考 GoAdmin、自研基础框架”的偏差:新的 Sense、Bell 必须真正从冻结 go-admin 与 go-admin-ui 源码派生,开发时必须参考冻结 go-admin-doc。
## 最终方案
1. 创建 `explore` 聚合快照,合入 Sense 最新链、Bell MVP、Bell 任务归档和已确认原型;原来源分支全部保留。
2. 共享 Wiki 镜像冲突时,快照树保留 Sense 最新版本;Bell 独立任务归档保留在 `docs/task/`,Bell 共享文档仍可从来源提交完整读取。
3. 审计发现执行前 `main` 已经是最小治理基线,没有 Sense/Bell 产品实现,因此不制造删除或清空提交;只补充分支门禁、GoAdmin 源码派生门禁和更新后的 Wiki 镜像。
4. `dev` 从最终 `main` 创建,后续任务分支从 `dev` 派生,通过 PR 合回 `dev`;只有用户明确审核通过才能执行 `dev → main`。
5. “基于 GoAdmin”定义为从 `goadmin-baseline.json` 指定的完整 go-admin/go-admin-ui commit 导入或派生源码,保留许可证、启动链和通用框架能力。仅使用 Go、Vue、Element Plus、类似目录或视觉不算满足。
6. 每个 Sense/Bell 框架相关工单实施前必须读取相关 go-admin-doc,并记录文档主题/文件、继承路径、裁剪/隐藏模块和来源证据。
7. 当前旧产品实现不合入新 `main` / `dev`;迁移只从 `explore` 提取已确认业务需求和必要业务适配器。
## 分支与回退证据
- 重建前 main:`be2c1e3c81131b51ee9fba67394ae9928e41104c`
- explore 聚合提交:`9020b32`
- main 规则提交:`0ce30e5`
- main/dev 最终共同基线:`1e724e973189f0fa9bfba8109791658bacd08640`
- Sense 来源:`a9f8a55`
- Bell 来源:`9ee06e3`
- Bell 文档来源:`3c245e1`
- 原型来源:`8d1875c`
所有来源分支均保留。需要回退分支治理时可把 main 恢复到重建前 SHA;需要读取旧产品时使用 `explore` 或对应来源分支。
## 测试
- `python dev_scripts/check_harness.py --strict`:通过。
- `python -m unittest discover -s tests -v`:31 项通过。
- `git diff --check`:通过。
- Gitea Wiki 的 Project-Profile、Development-Workflow、Architecture-and-Code-Map、Local-Development-and-Verification 已先更新并读取确认。
## Gitea 管理配置
通过当前实例 Swagger 描述核对 API 后,使用仓库外安全凭据完成并读取确认:`dev` 已设为默认分支;`main` 与 `dev` 均禁止直接推送和强推;`main` 要求 1 个审批,`dev` 要求 0 个审批以允许 Agent 在测试后合并任务 PR。管理员覆盖保持可用,实际执行仍受“只有用户明确审核后才能进入 main”的仓库规则约束。
## 遗留边界
本任务不导入新的 GoAdmin 产品源码,也不迁移旧业务功能。Sense/Bell 的真正源码派生和逐模块迁移应另建工单并在 `dev` 上实施。
## 修改文件
- 根级与子项目规则:`AGENTS.md`、`Sense/AGENTS.md`、`Bell/AGENTS.md`
- 分支说明:`README.md`
- Wiki 镜像:项目档案、开发工作流、架构与代码地图、本地开发与验证
- 任务归档镜像与映射:`docs/task/58-*.md`、`wiki-docs.json`
- explore 快照说明:`EXPLORE-SNAPSHOT.md`
## 验收结果
| 验收项 | 结果 |
|---|---|
| explore 聚合旧 Sense、Bell、原型和任务证据 | 通过 |
| 原来源分支保持存在 | 通过 |
| main 保持最小治理与重建基线 | 通过 |
| dev 从最终 main 创建 | 通过;两者起点均为 `1e724e9` |
| GoAdmin/go-admin-ui 源码派生与 go-admin-doc 必查规则 | 通过 |
| 用户未跟踪文件未提交 | 通过 |
| Gitea main/dev 保护与默认分支 | 通过;已读取服务器配置确认 |
## 相关提交
- `9020b32`:记录 explore 快照来源
- `0ce30e5`:建立审核分支流和 GoAdmin 源码派生门禁
- `1e724e9`:登记并镜像工单 #58 归档
## 未验证部分
- **未验证部分**:无。产品源码导入和业务迁移明确属于后续工单,不是本任务未验证项。
+4
View File
@@ -83,6 +83,10 @@
{
"page": "Task-5-冻结Sense与Bell-GoAdmin技术基线",
"path": "docs/task/5-冻结Sense与Bell-GoAdmin技术基线.md"
},
{
"page": "Task-58-建立explore-main-dev分支治理并重置GoAdmin开发基线",
"path": "docs/task/58-建立explore-main-dev分支治理并重置GoAdmin开发基线.md"
}
]
}