Class CirculateOperation

java.lang.Object
cloud.opencode.base.flow.operation.CirculateOperation

public final class CirculateOperation extends Object
Circulate (read-only notification) action — appends a history row and publishes a TaskCirculatedEvent; does not affect the workflow state (v4 §8.8). 抄送操作 —— 写 history + 发事件,不影响主流程状态。
Since:
JDK 25, opencode-base-flow V1.0.5
Author:
Leon Soo
  • Field Details

    • MAX_RECIPIENTS

      public static final int MAX_RECIPIENTS
      Hard cap on recipients per circulate call. Prevents history.extra_json blowup and event-storm DoS via a single call asking to notify millions. 单次抄送 toUserIds 上限;防止 history.extra_json 爆炸与事件风暴。
      See Also:
  • Constructor Details

    • CirculateOperation

      public CirculateOperation(HistoryWriter history)
      Construct a circulate operation with no instance-status / user-existence checks beyond InputSanitizer.validateUserId(String) form validation. Used by tests and integrators that want minimal interception; production callers should prefer the four-arg constructor. 构造抄送操作(最简形式,仅做 userId 形式校验);生产侧推荐使用四参构造。
      Parameters:
      history - history writer — 历史追加器
      Since:
      JDK 25, opencode-base-flow V1.0.5
    • CirculateOperation

      public CirculateOperation(FlowRepository repo, HistoryWriter history, AssigneeResolver assigneeResolver)
      Construct a circulate operation with full instance-status + recipient validation. Recommended for production wiring. 构造抄送操作(含实例状态 + 抄送对象校验);推荐生产使用。
      Parameters:
      repo - persistence facade (nullable for legacy wiring) — 持久化门面(旧装配可空)
      history - history writer — 历史追加器
      assigneeResolver - assignee resolver SPI (nullable for legacy wiring) — 参与者解析 SPI(旧装配可空)
      Since:
      JDK 25, opencode-base-flow V1.0.5
  • Method Details

    • execute

      public void execute(Task task, String fromUserId, List<String> toUserIds, String comment)
      Execute the circulate action. 执行抄送操作。
      Parameters:
      task - already-validated owned PENDING task — 已校验任务
      fromUserId - caller user id — 调用者
      toUserIds - notify list (non-empty) — 被抄送列表(非空)
      comment - sanitised comment (nullable) — 已清洗意见
      Since:
      JDK 25, opencode-base-flow V1.0.5