Files
lda-wf/docs/current_roadmap.md
T

6.6 KiB

Current roadmap

This roadmap records the product shape, active implementation order, and constraints that must survive future work. Completed narratives and executable plans live under historical/.

Use these references for orientation:

Current product shape

The durable product path uses a neutral server composition behind local or remote clients:

wf_client / wf_cli / web console
  -> local WorkflowApi or JSON-RPC client
  -> wf_server.WorkflowServer
  -> wf_api application and administration surfaces
  -> wf_core / wf_artifacts / source providers

wf-rpc-server is the durable remote entry point. The old wf-mcp entry point remains a legacy or special-purpose Model Context Protocol (MCP) surface.

The Python client covers capability discovery, local graph authoring, remote validation, immutable artifact save, deployment selection, and durable runs. Draft workspaces remain a separate administration surface. The primary saved workflow lifecycle stays:

author -> validate -> save artifact -> deploy -> run -> inspect or resume

Active runtime sequence

The next three slices build on the foreach control-region, scheduler, lineage, and barrier foundations in this order.

1. Review and merge structured runtime context

The implementation plan is ready and its feature branch is under review:

This slice gives runtime code, expressions, validation, and authoring references one model for run data and same-scope foreach activations. Subgraphs continue to cross an explicit input boundary rather than inheriting a parent's context.

2. Add a persisted run step budget

After structured context is stable, implement the proposed run-wide limit:

The budget must cover every frame and subgraph scope in one run, survive checkpoint and resume, and stop valid but non-terminating graph cycles with a clear runtime failure.

3. Implement explicit fork and gather

Reuse the scheduler, activation, lineage, and reducer-aware barrier machinery:

Outcomes continue to choose one transition. Forks create concurrent branch activations. Gathers wait on declared incoming topology, merge compatible lineages according to policy, and emit one continuation.

Runtime work after fork and gather

Defer these slices until the active sequence exposes a concrete need:

  • Add optional per-use child deployment overrides and clearer child trace inspection for native subgraphs
  • Investigate protocol-native progress or streaming only if polling through wf run watch proves inadequate
  • Continue OpenAPI capability sources when a real non-MCP source requires them

Durable platform constraints

These rules describe current boundaries. New work should preserve them.

Run and resume correctness

Persisted interrupted runs, bounded trace reads, dependency revalidation, process-rebuild resume, and same-process resume serialization exist.

Source, authentication, and configuration boundaries

Source registry state, static configuration, runtime source sessions, and authentication records remain separate concerns.

  • Keep configuration bootstrap separate from mutable source registry state
  • Keep secret payload values write-only; inspection may expose metadata and payload keys
  • Keep role-specific stores filesystem-backed until a real database or secret manager slice is planned
  • Add new source families through the generic runtime source lifecycle instead of forcing them through MCP connection configuration
  • Preserve the server and transport boundary

Current source contracts:

MCP package ownership

wf_sources_mcp owns upstream MCP source implementation. Keep durable server and transport packages independent of the combined wf_mcp facade. Retain compatibility shims only for real callers, move code only when ownership is clear, and keep MCP application or widget metadata out of durable workflow transports.

Established runtime baseline

The active sequence can assume these foundations:

  • Native subgraph scopes and durable return to the parent node
  • Concurrent foreach with activation barriers and reducer-aware lineage merges
  • Validated foreach back-edges with one static control region per node use
  • Durable stopped-run inspection and resume
  • Python client reconstruction of capabilities, artifacts, deployments, and runs through the API

The current foreach return contract is foreach back-edge design.

Historical entry points

Use these completed roadmaps when implementation history matters: