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#54
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.
状态
已完成
原始需求
ready状态渲染 iframe,而按需拉流必须先由 iframe 建立读取连接,形成循环等待。目标
waiting且存在有效播放 URL 时立即加载播放器,触发 MediaMTX 按需拉流。非目标
contracts/或根级部署配置。主项目与写路径
write_paths:Sense/server/app/sense/adapters/mediamtx/client.goSense/server/app/sense/adapters/mediamtx/client_test.goSense/server/app/sense/media/route_port.goSense/server/app/sense/liveview/service.goSense/server/app/sense/liveview/service_test.goSense/ui/src/components/sense/liveview/StreamPlayer.vueSense/ui/src/views/sense/liveview/LiveView.vuedocs/02-architecture-and-code-map.mddocs/03-business-rules-and-glossary.mddocs/06-troubleshooting.mddocs/task/**wiki-docs.json前置依赖
已确认方案
waiting状态且已有player_url时也渲染 iframe,以建立第一个读取连接;真正失败状态继续显示重试面板。sourceOnDemand,避免无人观看时持续占用摄像机与网络。风险与回退
验收标准
文档影响
更新 Wiki 架构、业务规则和排错页面,说明按需拉流由播放器连接触发及状态刷新路径;完成后创建 Task 归档并导出只读镜像。
需求变化(2026-08-13)
X-Frame-Options: DENY同时作用于同源播放器包装页,导致该页面无法被实时监看 iframe 加载;MediaMTX WebRTC 端口与路径本身响应正常。X-Frame-Options: SAMEORIGIN,并增加 CSPframe-ancestors 'self';其他 Sense 页面继续保持DENY。增加响应头回归测试并重新验证构建与 Windows 包。需求变化(2026-08-13,第二次验收反馈)
X-Product: sense;播放器请求在处理器之前被通用认证中间件返回 401,401 又携带全局X-Frame-Options: DENY。此前命令行验证会话复用了该请求头,形成误判。X-Product。普通 API 继续要求X-Product: sense,跨站、缺少会话或非 iframe 请求继续拒绝。需求变化(2026-08-13,第三次验收反馈)
Error: stream not found, retrying in some seconds。usb,Sense 数据库仍有两条 desired=running 路由;控制器只调用replace,不能首次创建路径。状态查询把 404 转为空状态,刷新逻辑又将其误报为 waiting。ila referenced this issue2026-08-13 15:02:56 +08:00
实施完成,等待验收
根因已确认:页面只有在媒体状态为 ready 时才创建 iframe;而 MediaMTX 的 sourceOnDemand 必须先有播放器读取路径才会启动上游,形成 waiting / readers=0 的循环。
已完成:
验证证据:
提交:
8d4e4c2、b3dfd23、825d64aPR:#55
Wiki:Task-54-修复实时监看按需拉流循环等待(revision
3b3a0a211aa7ed8209799a09818b7901c290f750)未验证部分:最终浏览器可视画面需用户在当前浏览器验收。工单保持 open / 待验收。
验收反馈修复完成
已按确认方案修复浏览器“127.0.0.1 拒绝了我们的连接请求”:
X-Frame-Options: DENY阻止实时监看同源 iframe 加载播放器包装页。SAMEORIGIN,同时 CSP 增加frame-ancestors 'self';首页及其他接口仍为DENY。go test ./...全部通过。SAMEORIGIN、CSP 同源限制和 MediaMTX iframe 地址均正确;首页仍返回DENY。新增提交:
3696442、703148d。PR #55 已更新。未验证部分:最终浏览器画面由用户刷新页面后验收。工单恢复为 open / 待验收。
第二次验收反馈修复完成
本次修复了 iframe 导航认证误拒绝:
X-Product请求头;X-Product仍返回 401;验证:
go test ./...全部通过;X-Product的浏览器式同源 iframe 请求返回 200、SAMEORIGIN和frame-ancestors 'self';新增提交:
8bf9a6d、6c6a245;PR #55 已更新。请先退出再登录,或强制刷新后重新选择摄像机,生成新的播放会话。工单保持 open / 待验收。
第三次验收反馈修复完成
已修复播放器
stream not found:desired=running路径;冷启动实测:
sourceOnDemand路径;验证:
go test ./...全部通过;新增提交:
d7cd3a5、14c9776;PR #55 已更新。请强制刷新并重新选择摄像机。工单保持 open / 待验收。
用户验收通过(2026-08-14)
用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision
257f3c820353)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在explore追溯。此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为
dev基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。