RecordingBdRunner class

A recording BdRunner (the grid_runtime fake shape): records full argv + stdin so a test asserts the EXACT bd commands, and create returns a caller-controlled synthetic id so the mint+stamp is exercised with no real bd.

Constructors

RecordingBdRunner({String createdId = 'tgdog-sess1', List<String>? eventLog})
Creates the recorder; create returns createdId.

Properties

calls List<List<String>>
Full argv of every recorded bd call, in order.
final
exportBeads List<Bead>
Beads returned by the lifecycle probe reader. Default empty (a fresh store); molecule tests stage the OPEN molecule/step beads they expect targeted reads to see.
getter/setter pair
exportDependencies List<BeadDependency>
getter/setter pair
graphApplyCalls List<List<String>>
The bd create --graph <plan-file> … pours only (StationBeadWriter.createMolecule's mint) — disjoint from callsFor('create')'s plain single-bead creates, which never carry --graph.
no setter
graphApplyIds Map<String, String>
The key → id map the next bd create --graph invocation reports (applyGraph's data.ids) — StationBeadWriter.createMolecule's pour reads this back through BdCliService.applyGraph. A molecule-mode test stages the ids it expects instantiateMolecule's plan-local keys to receive.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
neverShowOrSql bool
True if no call was bd show (forbidden on a controller path) and no call looks like raw SQL (defense — the chokepoint cannot issue SQL by construction).
no setter
openBeadsCallCount int
Number of purpose-shaped openBeads lifecycle reads.
getter/setter pair
openSupersedingCallCount int
Number of purpose-shaped openSuperseding lifecycle reads.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
stdins List<String?>
The --stdin payload of every recorded call (null when none), in order.
final
workCreates List<List<String>>
Every create EXCEPT the durable remount-budget record (tg-zlfu).
no setter
workUpdates List<List<String>>
Every update EXCEPT the durable remount-budget record's own writes (tg-zlfu) — the workCreates counterpart, for assertions that mean "the station wrote nothing to the SESSION". Identified by the grid.attempt. key namespace, which only the budget record carries.
no setter

Methods

beadById(String id, {required Set<IssueType> types}) Future<Bead?>
callsFor(String sub) List<List<String>>
All calls whose leading subcommand is sub. For 'create', this INCLUDES graph-apply pours (create --graph …) — use graphApplyCalls to isolate those from a plain single-bead create.
metadataOfUpdate(int index) Map<String, dynamic>
The metadata object of the session/step update call at index — decoded from --metadata '<json>' when present, else assembled from the op-shaped --set-metadata key=value pairs (BdCliService's atomic-merge emission). Mount-attempt metadata is intentionally excluded through workUpdates.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
openBeads({required Set<IssueType> types, Map<String, String> metadataAll = const {}, Map<String, String> metadataAny = const {}}) Future<List<Bead>>
openSuperseding(Set<String> priorIds) Future<List<Bead>>
run(List<String> args, {Duration? timeout, String? stdin}) Future<BdResult>
Runs bd <args>. Throws BdTimeoutException if the call exceeds timeout (the implementation kills the process tree); never throws for a non-zero exit — that is reported via BdResult.exitCode for the caller to route through BdException.fromOutput.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited