Skip to content

[P2][Spec-first] WavePlanDagV2 runtime adoption + bounded dry-run integration #1800

Description

@seoseo-ai

상위 조사: #1635 P2-C.
기존 계약: docs/specs/wave-plan-dag-v2/spec.md (PR #1710, review fix #1711).
선행 읽기 모델: docs/specs/task-lineage-read-model/, PR #1638/#1690/#1693.
관련 epic: #1601.

배경

#1635의 P2-C 조사 결과로 bounded WavePlanDagV2 source-only 계약과 deterministic dry-run fixture가 머지됐다. 계약은 선형 wave-plan v1을 유지하면서 DAG/분기 제안의 스키마, 상한, cycle/unknown dependency 차단, all-matching 검증을 정의한다.

현재 스펙은 runtime producer/consumer, dispatcher integration, persistence 또는 실제 실행을 명시적으로 포함하지 않는다. 따라서 lineage read model은 존재하지만 DAG 계획을 안전하게 채택·실행하는 후속이 추적되지 않는다.

목표

기존 v1을 깨지 않고 WavePlanDagV2를 default-off runtime surface에 연결해, 생성된 계획이 schema validation과 bounded dry-run rehearsal을 통과한 경우에만 실행 후보가 되도록 한다.

범위

  • v2 plan admission/parser를 기존 source-only 계약과 동일한 폐쇄 스키마로 구현
  • deterministic dry-run: cycle, missing dependency, unreachable stage, fanout/depth/total-node budget, all-matching 검증
  • task-lineage children/leaves/lineage read model을 이용한 duplicate-follow-up 및 stale frontier 검증
  • 계획 생성 권한과 실행 권한 분리; 모델 생성 출력은 직접 실행하지 않음
  • v1과 v2의 versioned dispatch 경계 및 v1 호환성 고정
  • default-off/record-only 관측 모드와 bounded public/operator diagnostics
  • restart/replay/idempotency 및 partial dispatch 실패 시 원자성·복구 계약
  • deterministic integration fixtures와 no-network conformance tests
  • focused tests, full npm run check, public-readiness/external-secret scan, 독립 리뷰

수용 기준

  • 유효한 합성 DAG가 dry-run에서 결정적 순서와 bounded 실행 계획을 산출한다.
  • cycle, unknown dependency, budget 초과, all-matching 위반은 task 생성 전에 안정된 reason code로 fail closed한다.
  • v2 비활성화 시 기존 wave-plan v1의 입력·출력·실행 동작이 완전히 동일하다.
  • 모델/워커 출력은 schema validation과 dry-run 성공 없이는 실행 또는 persistence authority를 얻지 못한다.
  • 중복 follow-up과 stale frontier가 lineage read evidence로 식별되며 자동 mutation 없이 operator-visible하게 투영된다.
  • record/default-off rollout과 단일 플래그 rollback이 문서화된다.

비목표

  • 모델이 생성한 임의 JS 오케스트레이션 스크립트 실행
  • 무제한 DAG 성장 또는 동적 budget 상향
  • v1 즉시 폐기
  • 라이브 기본값 전환이나 자동 대규모 fanout

안전 경계

이 이슈는 production deploy, broker/worker/Gateway restart, live DAG dispatch/canary, DB migration, cross-broker mutation, provider send, secret 이동, release 또는 GitHub ruleset 변경을 승인하지 않는다. 실제 record/canary/enforce 활성화는 정확한 대상·상한·rollback을 포함한 별도 운영자 승인이 필요하다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestsafety-gateRequires explicit safety boundarysource:a2a-brokerA2A broker runtime/task lifecycle/worker registry/evidence source areavalidationValidation and verification

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions