EvolvedPulseBase<P> class abstract

The abstract base class for EvolvedPulse implementations.

An EvolvedPulseBase is the internal engine that builds causal chains. Each evolved pulse links back to its parent, preserving the signal's lineage without duplicating data. This is how the framework maintains full provenance with minimal memory overhead.

How it works

  • Extends _Pulse and implements EvolvedPulse.
  • Overrides isComposite to return true, marking this as a chain.
  • Provides the parent getter that returns the immediate ancestor.
  • Builds a flattened list of all pulses in the chain for iteration.
  • The payload is inherited from the last pulse in the chain.

Non‑obvious: evolution is not mutation

When you call Pulse.evolve, you get a new pulse that points to the old one. The old pulse is still there — unchanged, available for reference. This is why you can trace the entire lineage without copying data.

Non‑obvious: payload is inherited, not copied

The payload getter returns the payload of the last pulse in the chain. The data is inherited from the root — it's never duplicated. This is why causal chains are memory‑efficient even when they're dozens of steps long.

Example

// You never create this directly — the framework does it for you:
final root = Pulse(42);
final evolved = root.withStep('validation');
// evolved is an EvolvedPulseBase instance

See also:

Inheritance
Implemented types
Implementers
Available extensions

Constructors

EvolvedPulseBase({PulseEphemeralPolicy? policy, PulseContext? context, P? payload, String? type, DateTime? timestamp, Cell? source, String? step, int? priority, Function? onComplete, Function? onError, Function? onProgress, required PulseBase pulse, required PulseBase parent})
Creates a new evolved pulse that extends a causal chain.

Properties

context PulseContext
Execution/security context.
no setterinherited
first Pulse
The first element.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
isComposite bool
Indicates whether this pulse is a multi-message bundle (a collection).
no setteroverride
isEmpty bool
Whether this collection has no elements.
no setterinherited
isGoverned bool
Indicates whether this pulse is subject to explicit governance.
no setterinherited
isInvalidated bool
Indicates whether this message has reached its terminal lifecycle state.
no setterinherited
isNotEmpty bool
Whether this collection has at least one element.
no setterinherited
iterator Iterator<PulseBase>
Returns an iterator over the sub‑pulses in this pulse.
no setter
last Pulse
The last element.
no setterinherited
length int
The number of elements in this Iterable.
no setterinherited
parent Pulse
The immediate causal ancestor of this pulse in the processing chain.
no setteroverride
payload → P?
Main payload.
no setteroverride
policy PulseEphemeralPolicy?
The lifecycle governance policy for this pulse.
no setterinherited
priority int
The execution priority of this pulse (0‑100, higher = more urgent).
no setterinherited
root PulseBase<P>
The primordial ancestor that initiated this pulse's causal lineage.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shell PulseShell<P, Receptor<Cell>>
Returns a Defensive Proxy of this pulse for untrusted receivers.
no setterinherited
single Pulse
Checks that this iterable has only one element, and returns that element.
no setterinherited
source Cell?
Origin cell (for tracing).
no setterinherited
timestamp DateTime
When this pulse was created.
no setterinherited
trace List<String>
Causal trace path.
no setterinherited
type String?
Semantic type tag for pattern matching and routing.
no setterinherited
unmodifiable PulseBase<P>
Returns a read‑only projection of this pulse, ensuring structural and payload-level finality for the current propagation hop.
no setterinherited

Methods

any(bool test(Pulse element)) bool
Checks whether any element of this iterable satisfies test.
inherited
attach(dynamic context) Pulse<P>

Available on Pulse<P>, provided by the PulseExtension extension

Returns a new version of this pulse with updated context metadata.
attach(dynamic context) Iterable<Pulse>

Available on Iterable<Pulse>, provided by the PulseIterableExtension extension

Returns a new collection of pulses, each with the provided context metadata attached.
batch() Pulse

Available on Iterable<Pulse>, provided by the PulseIterableExtension extension

Aggregates multiple signals into a single, flat CollectivePulse.
cast<R>() Iterable<R>
A view of this iterable as an iterable of R instances.
inherited
cast<T>() Pulse<T>

Available on Pulse<P>, provided by the PulseExtension extension

Re-casts the pulse payload to type T while maintaining causal history.
compareTo(Pulse other) int
Compares this pulse with another to determine relative execution precedence.
inherited
contains(Object? element) bool
Whether the collection contains an element equal to element.
inherited
elementAt(int index) Pulse
Returns the indexth element.
inherited
every(bool test(Pulse element)) bool
Checks whether every element of this iterable satisfies test.
inherited
evolve({Pulse? pulse, String? step, covariant PulseContext? context}) Pulse
Creates a derived version of this pulse for the next processing stage.
inherited
expand<T>(Iterable<T> toElements(Pulse element)) Iterable<T>
Expands each element of this Iterable into zero or more elements.
inherited
firstWhere(bool test(Pulse element), {Pulse orElse()?}) Pulse
The first element that satisfies the given predicate test.
inherited
flatten() Iterable<Pulse>

Available on Iterable<Pulse>, provided by the PulseIterableExtension extension

Recursively flattens any nested CollectivePulse structures into a sequence of simple pulses.
fold<T>(T initialValue, T combine(T previousValue, Pulse element)) → T
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
inherited
followedBy(Iterable<Pulse> other) Iterable<Pulse>
Creates the lazy concatenation of this iterable and other.
inherited
forEach(void action(Pulse element)) → void
Invokes action on each element of this iterable in iteration order.
inherited
join([String separator = ""]) String
Converts each element to a String and concatenates the strings.
inherited
lastWhere(bool test(Pulse element), {Pulse orElse()?}) Pulse
The last element that satisfies the given predicate test.
inherited
lineage<T>(LineageArgument arg) List<T>
Traverses the causal chain from the root ancestor to this pulse to reconstruct a historical timeline of values.
inherited
map<T>(T toElement(Pulse e)) Iterable<T>
The current elements of this iterable modified by toElement.
inherited
map<T>(T mapper(P payload)) Pulse<T>

Available on Pulse<P>, provided by the PulseExtension extension

Transforms the payload of this pulse into a new type T while preserving its causal history.
mapEach<T>(T mapper(dynamic payload)) Iterable<Pulse<T>>

Available on Iterable<Pulse>, provided by the PulseIterableExtension extension

Transforms the payload of every pulse in the collection while preserving their individual causal traces.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
reduce(Pulse combine(Pulse value, Pulse element)) Pulse
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
inherited
scrutinize(covariant Receptor<Cell> receptor, List? positionalArguments, [Map<Symbol, dynamic>? namedArguments]) → dynamic
Challenges a receptor to prove it has the authority to see this pulse.
inherited
singleWhere(bool test(Pulse element), {Pulse orElse()?}) Pulse
The single element that satisfies test.
inherited
skip(int count) Iterable<Pulse>
Creates an Iterable that provides all but the first count elements.
inherited
skipWhile(bool test(Pulse element)) Iterable<Pulse>
Creates an Iterable that skips leading elements while test is satisfied.
inherited
take(int count) Iterable<Pulse>
Creates a lazy iterable of the count first elements of this iterable.
inherited
takeWhile(bool test(Pulse element)) Iterable<Pulse>
Creates a lazy iterable of the leading elements satisfying test.
inherited
tap(void action(P payload)) Pulse<P>

Available on Pulse<P>, provided by the PulseExtension extension

Executes a side-effect action using the current payload and returns this pulse instance.
toList({bool growable = true}) List<Pulse>
Creates a List containing the elements of this Iterable.
inherited
toSet() Set<Pulse>
Creates a Set containing the same elements as this iterable.
inherited
toString() String
A string representation of this object.
where(bool test(Pulse element)) Iterable<Pulse>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
inherited
whereType<T>() Iterable<R>
Creates a new lazy Iterable with all elements that have type T.
inherited
withStep(String step) Iterable<Pulse>

Available on Iterable<Pulse>, provided by the PulseIterableExtension extension

Appends a diagnostic stage to the causal trace of every pulse in this collection.
withStep(String step) Pulse<P>
Appends a diagnostic stage to the pulse's causal trace without branching the causal chain.
inherited

Operators

operator +(covariant Pulse other) CollectivePulse
Combines this pulse and other into a composite CollectivePulse.
inherited
operator ==(Object other) bool
The equality operator.
inherited