Skip to content

feat(control-plane): compile Planner lifecycle guarantees - #453

Merged
zzylol merged 5 commits into
mainfrom
feat/planner-lifecycle-sync
Sep 2, 2026
Merged

zzylol merged 5 commits into
mainfrom
feat/planner-lifecycle-sync

Conversation

@zzylol

@zzylol zzylol commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Why

The latest ASAPPlanner selects not only a sketch primitive but also a summary-maintenance lifecycle. The MVP must compile and transmit that guarantee rather than silently assuming runtime behavior.

What

Pins merged ASAPPlanner#324 at 5d0b6f6edcac65edc89a72051f37977ab0c83031, supplies recurrence/ingestion/horizon/capability/cost evidence, fails closed on stale or non-executable choices, and carries the selected lifecycle in Collector and backend plans.

How

Translate runtime evidence into the Planner lifecycle request, accept only an executable selection, encode it in target-specific JSON and typed protobuf, and reject unsupported backend values during decoding.

Before this PR

The compiler omitted lifecycle selection, so continuous incremental maintenance could be assumed without an explicit Planner commitment.

After this PR

Every accepted physical plan includes the lifecycle selected from current evidence, and both Collector and backend validate that commitment.

Evidence

Execution example: compiler and backend-plan tests cover lifecycle propagation and unsupported lifecycle rejection. Visual and performance evidence are not applicable.

Verification

  • Unit/integration tests: cargo test -p control_plane — 717 library tests and 28 binary tests passed.
  • Focused tests: physical compiler and backend-plan suites — passed.
  • End-to-end tests: lifecycle is carried through compile/publication structures; cross-repository runtime consumption is covered by feat(collector): enforce Planner lifecycle guarantees ASAPCollector#564.
  • Other checks: cargo check -p data_plane and git diff --check — passed.

Architectural decisions

Planner remains authoritative for lifecycle selection; runtime components validate and execute the selected guarantee rather than selecting locally.

Limitations and follow-up

Stacked on #452. ASAPPlanner#324 is merged; this PR pins its main merge commit 5d0b6f6edcac65edc89a72051f37977ab0c83031. The MVP runtime currently supports continuous, incremental, per-update maintenance only.

Human review — do not complete with an agent

  • The MVP boundary is correct.
  • New conceptual layers or public interfaces are necessary.
  • The before/after description matches the intended product behavior.
  • Human reviewer:
  • Decision and rationale:

@zzylol
zzylol changed the base branch from feat/opamp-physical-plan-publication to main September 2, 2026 17:53
@zzylol
zzylol merged commit af12791 into main Sep 2, 2026
@zzylol
zzylol deleted the feat/planner-lifecycle-sync branch September 2, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant