[BEL] 实现 Alert 并发 ack、close 与审计时间线 #20
Closed
opened 2026-08-12 09:53:52 +08:00 by ila
·
4 comments
No Branch/Tag Specified
dev
feat/183-bell-contact-schedule
docs/171-coordination-e2e-wiki
feature/155-coordination-e2e
docs/168-sync-coordination-wiki
feature/154-coordination-deployment
docs/152-153-connectors
feature/153-event-evidence-connector
feature/152-brain-control
docs/151-machine-identity-acceptance
task/151-machine-identity
docs/150-contract-acceptance
docs/148-149-contract-acceptance
feature/149-runtime-status-contract
feature/150-event-evidence-contract
feature/148-source-config-contract
docs/8-mvp-acceptance
feature/145-sense-e2e-isolation-cleanup
feature/134-bell-independent-e2e
feature/142-bell-ui-shell-startup
feature/140-bell-minimal-admin-menu
feature/138-bell-production-captcha
feature/133-bell-alert-lifecycle
feature/132-bell-rule-alert
feature/131-bell-event-receipt
feature/16-brain-local-events
feature/15-brain-rules
feature/14-brain-vision
feature/13-brain-decode
feature/11-brain-input
main
feat/sense-79-ops-alerts
feat/sense-78-outbox
feat/77-sense-media-shards
feat/76-sense-edge-node-status
feat/75-sense-quota-capacity
feature/74-sense-operations
feature/73-sense-local-events
feature/72-sense-bulk-provisioning
feature/113-record-parallel-acceptance
feature/113-sync-parallel-implementation-docs
feature/71-sense-e2e-regression
feature/62-bell-goadmin-skeleton
feature/10-brain-python-cuda-skeleton
feature/108-sync-devharness
feature/90-sense-root-launcher
feature/106-supervisor-sense
fix/101-sense-layout-shell
feature/104-sense-login-30-days
docs/99-acceptance
feature/99-sense-app-config
feature/70-sense-windows-delivery
fix/95-sense-media-path-constraint
feature/97-sense-password-login
docs/92-acceptance
fix/92-sense-capabilities-jsonb
docs/69-acceptance
feature/69-sense-area
feature/68-sense-liveview
feature/67-sense-mediamtx-reconcile
feature/66-sense-onvif-admission
feature/65-sense-device-credential
feature/64-sense-auth-rbac-audit
feature/61-sense-goadmin-source-baseline
docs/acceptance-batch-20260814
coordination/58-finalize-branch-governance
explore
agent/codex/56-sense-device-edit-payload
agent/codex/54-sense-liveview-on-demand
agent/codex/51-sense-auto-liveview
agent/codex/50-sense-split-camera-credentials
agent/codex/48-sense-onvif-digest
agent/codex/46-sense-env-loader
agent/codex/44-sense-empty-navigation
agent/codex/42-sense-password-length-only
agent/codex/40-sense-password-min-6
agent/codex/37-sense-windows-package
agent/codex/36-bell-docs
agent/codex/9-bell-mvp
agent/codex/21-sense-mvp
agent/codex/28-current-prototypes
agent/codex/5-goadmin-baseline
agent/codex/3-go-admin-ui-reuse
agent/codex/1-collaboration-rules
No results found.
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: ila/yovision#20
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
当前状态:已完成
用户于 2026-08-14 明确验收通过。
基本信息
依赖与并行
子项目影响
Bell/server/app/alert-lifecycle/**、Bell/server/app/alert/lifecycle/**、Bell/server/migrations/*alert_lifecycle*、Bell/web/src/views/alert/actions/**、Bell/web/src/views/alert/timeline/**协同接口
原始需求
要解决什么
Bell 首个纵切需要让处置员从 Alert 详情完成 open → ack → close。并发 ack 只能由首个服务端成功者成为处置人,后到者必须看到真实结果;所有状态变化应只追加、可审计并在重启后保持。
做什么 / 不做什么
已确认方案
当前状态是可查询投影,状态迁移事实仅追加。ack 由数据库事务/条件更新或等价并发控制保证单一胜者,并记录服务端身份与时间;后到者返回已被谁 ack 的真实结果,不覆盖处置人。close 仅允许符合权限和前置状态的请求,重复请求幂等。UI 详情复用现有状态、按钮、确认和时间线样式。
预计修改文件:
Bell/server/app/alert-lifecycle/**Bell/server/app/alert/**Bell/server/migrations/*alert_lifecycle*Bell/web/src/views/alert/**需求变化记录
文档影响
交付文档影响
验收标准
验证方式
在独立 PostgreSQL 测试库运行状态转移表、重复请求、角色越权、双客户端并发 ack、事务失败回滚与服务重启恢复测试;再以合成事件人工完成整条 Bell 纵切。
未验证边界:Sense/Brain 的正式事件生产、跨项目机器身份、共享事件/证据契约、根级部署与端到端链路不在本工单验证;这些内容留待独立协同工单。
风险和回退
风险:并发控制缺陷会覆盖处置人或产生虚假状态,属于高风险并发/审计边界。实施前必须明确事务与唯一性方案并等待工单方案确认。回退:关闭 ack/close 写入口并回退 UI;已有生命周期事实不得删除或改写,需以前一稳定投影只读运行,数据迁移另建高风险工单。
后续协同需求摘要
生产者:未来通知/升级模块;消费者:Bell Alert 生命周期;目的:后续将投递、自动升级、联系人/排班接入状态时间线但保持 sent/delivered/seen 与 ack 分离;候选事实源:Bell 内部版本化生命周期接口,跨产品部分另由协调工单裁决;阻塞工单:本 MVP 无,自动升级/通知属于后续阶段;建议验证:重启恢复、升级不中断及通知回执与 ack 分离。
状态:进行中(2026-08-12)
前置 #12、#19 已完成并推送。开始实现数据库条件更新保证 ack 单一胜者、后来者真实获知处理人、合法 close 与现场结果必填、幂等重复请求、仅追加生命周期事实及成功/失败/拒绝审计。
实施结果:待验收
Alert ack/close 与审计时间线已按已确认方案完成,并已推送到 PR #35。
10225f49ee06e3验证证据:
git diff --check均通过未验证:真实多人浏览器并发、生产规模压测、正式通知/升级流程和用户人工验收。
长期文档与任务归档由协调工单 #36 处理;人工验收前本工单保持开启。
最终证据:待验收
10225f4 / 9ee06e3(PR #35)b7ed3e488bf2docs/task/20-Bell-Alert并发处置与审计时间线.mde2a4345、3c245e1git diff --check通过实现、自动测试、Wiki、镜像、提交、推送与 PR 证据已齐。人工验收前本工单保持开启,不关闭、不勾选父工单。
用户验收通过(2026-08-14)
用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision
e21232d1b89a)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在explore追溯。此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为
dev基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。