feat(finance): type source-period and spot identity evidence - #4354
Conversation
536afff to
f38c13f
Compare
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
f38c13f to
376b594
Compare
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
376b594 to
42b7086
Compare
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
1. 动机
当前 Finance value-discovery 只表达“覆盖率”,但缺少来源期间、现货身份以及覆盖缺口的可核验语义,研究 Agent 和用户界面无法区分“零值”“缺失”“不可比较”,也无法沿同一 projection 追溯原始证据。本 PR 补齐这些类型化证据,同时保持 ready、交易与执行授权边界不变。
2. 改动思路
Finance Python extension 继续作为指标与身份推导的唯一权威;LoopX Core 只承载既有 extension publication envelope;TypeScript Dashboard 和 Lark 卡片只消费同一个 canonical Finance view,不在展示层重新推导状态。缺失值保持 null/missing,不伪装成零,也不授予 readiness 或交易权限。
3. 具体改动
- 增加 source-period、spot identity、coverage gap 的 schema、解析、聚合与 projection。
- Dashboard 用 TypeScript 展示证据身份、期间与缺口,并覆盖结构化测试和 schema smoke test。
- Lark 使用同源 Finance view 生成卡片;自审中额外发现动态字段可能通过 Markdown 控制字符伪装
READY/审批文案,已在lark_projection._lark_plain_text做 sink-specific 转义,并新增不改变 canonical view 的回归测试。 - 扩展版本升级到 0.6.0,保留既有默认关闭与无执行授权语义。
关键代码讲解
source_coverage:类型化区分期间、身份、覆盖缺口与缺失语义,避免展示层猜测。presentation_view:把权威 Finance projection 收敛为 Dashboard/Lark 的共同只读视图。lark_projection._lark_plain_text:仅在 Lark Markdown sink 转义不可信动态文本,防止视觉状态欺骗,但不污染源数据或 canonical view。- Dashboard finance view:只做结构化渲染,不复制 Python 侧的 readiness/coverage 业务规则。
4. 对主干的风险
风险主要在新增字段的兼容性、Lark Markdown 渲染以及 Dashboard 布局。新增字段保持向后兼容;缺失值有显式语义;Lark 动态内容已转义;没有修改订单、签名、转账、broker 或 readiness authority。真实 Lark 客户端的视觉渲染仍属于 no-send 验收边界之外的剩余集成风险。
验证(exact head 42b7086d0cccdfd335752198bc1748240a32f461):
- Finance/extension 相关 pytest:213 passed;修补后聚焦回归:150 passed。
- Ruff changed files:通过。
- Dashboard coverage:通过(statements/lines/functions 100%,overall branches 97.5%)。
- Dashboard desktop/chat production build:通过。
- presentation surface schema smoke:通过。
- 标准 LoopX exact-head canary:18/18 通过,public-boundary scan clean。
此前远端 stage2c (e2e 2) 的唯一失败是无关的 task-lease outbox case(111 passed / 1 failed),不在本 PR Finance diff 内。按 owner 明确授权,本次不等待当前远端 CI 完成,但不将 pending CI 表述为已通过。
5. 我的整体评价
改动符合 Finance capability 的职责边界,复用现有 extension projection 与前端入口,没有创建第二套状态源;自审发现的问题已修复,代码与测试规模和需求相称。我批准这个 exact head 合并并进入安装版验收。
English verdict: APPROVE 42b7086d0cccdfd335752198bc1748240a32f461; authoritative Finance derivation, shared typed projection, sink-safe Lark rendering, and no added trading authority.
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
当前 Finance value-discovery 只表达“覆盖率”,但缺少来源期间、现货身份以及覆盖缺口的可核验语义,研究 Agent 和用户界面无法区分“零值”“缺失”“不可比较”,也无法沿同一 projection 追溯原始证据。本 PR 补齐这些类型化证据,同时保持 ready、交易与执行授权边界不变。
改动思路
Finance Python extension 继续作为指标与身份推导的唯一权威;LoopX Core 只承载既有 extension publication envelope;TypeScript Dashboard 和 Lark 卡片只消费同一个 canonical Finance view,不在展示层重新推导状态。缺失值保持 null/missing,不伪装成零,也不授予 readiness 或交易权限。
具体改动
- 增加 source-period、spot identity、coverage gap 的 schema、解析、聚合与 projection。
- Dashboard 用 TypeScript 展示证据身份、期间与缺口,并覆盖结构化测试和 schema smoke test。
- Lark 使用同源 Finance view 生成卡片;自审中额外发现动态字段可能通过 Markdown 控制字符伪装
READY/审批文案,已在lark_projection._lark_plain_text做 sink-specific 转义,并新增不改变 canonical view 的回归测试。 - 扩展版本升级到 0.6.0,保留既有默认关闭与无执行授权语义。
关键代码讲解
source_coverage:类型化区分期间、身份、覆盖缺口与缺失语义,避免展示层猜测。presentation_view:把权威 Finance projection 收敛为 Dashboard/Lark 的共同只读视图。lark_projection._lark_plain_text:仅在 Lark Markdown sink 转义不可信动态文本,防止视觉状态欺骗,但不污染源数据或 canonical view。- Dashboard finance view:只做结构化渲染,不复制 Python 侧的 readiness/coverage 业务规则。
对主干的风险
风险主要在新增字段的兼容性、Lark Markdown 渲染以及 Dashboard 布局。新增字段保持向后兼容;缺失值有显式语义;Lark 动态内容已转义;没有修改订单、签名、转账、broker 或 readiness authority。真实 Lark 客户端的视觉渲染仍属于 no-send 验收边界之外的剩余集成风险。
验证(exact head 42b7086d0cccdfd335752198bc1748240a32f461):
- Finance/extension 相关 pytest:213 passed;修补后聚焦回归:150 passed。
- Ruff changed files:通过。
- Dashboard coverage:通过(statements/lines/functions 100%,overall branches 97.5%)。
- Dashboard desktop/chat production build:通过。
- presentation surface schema smoke:通过。
- 标准 LoopX exact-head canary:18/18 通过,public-boundary scan clean。
此前远端 stage2c (e2e 2) 的唯一失败是无关的 task-lease outbox case(111 passed / 1 failed),不在本 PR Finance diff 内。按 owner 明确授权,本次不等待当前远端 CI 完成,但不将 pending CI 表述为已通过。
我的整体评价
改动符合 Finance capability 的职责边界,复用现有 extension projection 与前端入口,没有创建第二套状态源;自审发现的问题已修复,代码与测试规模和需求相称。我批准这个 exact head 合并并进入安装版验收。
English verdict: APPROVE at exact head 42b7086d0cccdfd335752198bc1748240a32f461; authoritative Finance derivation, shared typed projection, sink-safe Lark rendering, and 213 focused tests plus Dashboard build/schema/coverage passed, with no added trading authority.
…period-metrics-v0 Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
当前 Finance value-discovery 只表达“覆盖率”,但缺少来源期间、现货身份以及覆盖缺口的可核验语义,研究 Agent 和用户界面无法区分“零值”“缺失”“不可比较”,也无法沿同一 projection 追溯原始证据。本 PR 补齐这些类型化证据,同时保持 ready、交易与执行授权边界不变。
改动思路
Finance Python extension 继续作为指标与身份推导的唯一权威;LoopX Core 只承载既有 extension publication envelope;TypeScript Dashboard 和 Lark 卡片只消费同一个 canonical Finance view,不在展示层重新推导状态。缺失值保持 null/missing,不伪装成零,也不授予 readiness 或交易权限。
具体改动
- 增加 source-period、spot identity、coverage gap 的 schema、解析、聚合与 projection。
- Dashboard 用 TypeScript 展示证据身份、期间与缺口,并覆盖结构化测试和 schema smoke test。
- Lark 使用同源 Finance view 生成卡片;自审中额外发现动态字段可能通过 Markdown 控制字符伪装
READY/审批文案,已在lark_projection._lark_plain_text做 sink-specific 转义,并新增不改变 canonical view 的回归测试。 - 扩展版本升级到 0.6.0,保留既有默认关闭与无执行授权语义。
关键代码讲解
source_coverage:类型化区分期间、身份、覆盖缺口与缺失语义,避免展示层猜测。presentation_view:把权威 Finance projection 收敛为 Dashboard/Lark 的共同只读视图。lark_projection._lark_plain_text:仅在 Lark Markdown sink 转义不可信动态文本,防止视觉状态欺骗,但不污染源数据或 canonical view。- Dashboard finance view:只做结构化渲染,不复制 Python 侧的 readiness/coverage 业务规则。
对主干的风险
风险主要在新增字段的兼容性、Lark Markdown 渲染以及 Dashboard 布局。新增字段保持向后兼容;缺失值有显式语义;Lark 动态内容已转义;没有修改订单、签名、转账、broker 或 readiness authority。真实 Lark 客户端的视觉渲染仍属于 no-send 验收边界之外的剩余集成风险。
验证(exact head db45124f829cf421b49fc86bae6f9c22d2d640ff):
- Finance/extension 相关 pytest:213 passed;修补后聚焦回归:150 passed。
- Ruff changed files:通过。
- Dashboard coverage:通过(statements/lines/functions 100%,overall branches 97.5%)。
- Dashboard desktop/chat production build:通过。
- presentation surface schema smoke:通过。
- 标准 LoopX exact-head canary:18/18 通过,public-boundary scan clean。
此前远端 stage2c (e2e 2) 的唯一失败是无关的 task-lease outbox case(111 passed / 1 failed),不在本 PR Finance diff 内。按 owner 明确授权,本次不等待当前远端 CI 完成,但不将 pending CI 表述为已通过。
我的整体评价
改动符合 Finance capability 的职责边界,复用现有 extension projection 与前端入口,没有创建第二套状态源;自审发现的问题已修复,代码与测试规模和需求相称。我批准这个 exact head 合并并进入安装版验收。
English verdict: APPROVE at exact head db45124f829cf421b49fc86bae6f9c22d2d640ff; authoritative Finance derivation, shared typed projection, sink-safe Lark rendering, and 213 focused tests plus Dashboard build/coverage passed, with no added trading authority.
Motivation / 动机
Finance proposal decisions previously lacked a typed, shared contract for period completeness, authoritative event identity, sign basis, unified-account boundaries, and exact spot-market joins. That made missing data, venue liquidity, NAV composition, fees, funding, and rounded fallback values too easy to misread across CLI, Dashboard, and Lark.
本 PR 将来源周期、权威事件身份、符号口径、统一账户边界和现货市场精确关联沉淀为公共 finance capability,避免把缺失值、场所流动性、账户 NAV、费用/资金费和舍入后的回退值误当成同一语义。
What changed / 改动
Entry points / 用户入口
Validation / 验证
The older broad dashboard-home smoke currently stops before this surface on an unrelated stale Manager shortcut selector. Focused browser acceptance covers the changed journey. This PR does not authorize orders, signatures, transfers, or live trading.