Skip to content

[orchestration] pending-plan fetcher 忽略 sessionId 全局拉 plan —— 多租户前需 session/subject 过滤 #73

Description

@mirror29

来源:PR #72 review 第三轮(medium)。

现状

createPaperPendingPlanFetcherhooks/handlers/pending-plan-fetcher.ts)忽略 sessionId 参数,按状态全局拉 pending_approval + approved plans——paper GET /plans 本身没有 session 维度过滤。

危害

单租户 dev console(agent 与控制台同账户)下行为正确(代码注释已声明此限制)。但:

  • cron scheduler 的 Stop hook 强制续 turn 时,可能被其他 session 的残留 plan 触发,把不属于本 job 的 plan 拉进上下文
  • 多租户化后会跨用户泄露 plan 摘要(plan_id / symbol)

修向

  1. paper /plans 加 session(或 subject)维度列与过滤参数
  2. fetcher 透传 sessionId,调用方(scheduler / chat processor)各自带上
  3. [orchestration] divination subject 越权(多租户 tracking)—— subject 取自客户端无 JWT 校验 #66(divination subject 越权)同属多租户 tracking 族,可一起规划

关联

PR #72 · PendingPlanFetcher 签名已预留 sessionId 形参,只差后端过滤语义。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions