grid_sdk 0.3.0-rc.21
grid_sdk: ^0.3.0-rc.21 copied to clipboard
The public authoring surface of the grid — a station is authored as a Seed: compose the SDK's composition types and drive them with `runGrid`.
0.3.0-rc.21 #
- Fixed: the boot state-store maintenance step requires the OWNED proxy after gc (
bd info --jsonplusproxy.pid), guards discovery, and treats an unresolvable state endpoint at boot as a terminal boot-classGridHookErrorinstead of letting the state writer resolve to the wrong store (tg-ywor, #387; the lunar epoch-54 dead epoch). - Fixed: the sdk half of operator-only spec preservation on rework (tg-3u1h, #376).
- Floors
grid_runtimeto^0.2.0-rc.17.
0.3.0-rc.20 #
- Added:
runGridmounts the tree inside one guarded zone; an uncaught asynchronous error born after mount is contained, attributed as aGridHookError, and reported throughonError, whose default is now loud-but-non-fatal — the resident survives instead of dying (tg-co52, #372). - Added: boot state-store maintenance is homed on
runGridbehindGridDelegate.maintainsStateStoreOnBoot(defaultfalse);StateStoreGcmoved here from grid_cli; a maintenance failure is advisory and reported throughonErroror one stderr line, never thrown (tg-bq4i, #374). - Floors
grid_engineto^0.3.0-rc.23.
0.3.0-rc.19 #
- Added:
TrajectoryDiscipline {shadow, cut}and the cut lever, with the dry-run refusal preserving the caller's posture (tg-rcm3 #351, tg-k0pb #353);TrajectoryHarness.appendAckedwith the one-tickIntervalqueue-wait deadline that bounds queue residence only, splitdecisionBearingDropped/fireAndForgetDroppedaccounting, and the cut-only shared admission halt composed inwork_assembly(tg-ppo5, #364). - Added: the epoch-scoped soak instrument and boot-epoch station gates wired through assembly (#354, #352); admission facts on the status payload (#349).
- Fixed: proxied dolt test teardown is fenced so the attach tests no longer leak sql-servers (tg-qaux, #347).
- Floors
grid_engineto^0.3.0-rc.22andgrid_runtimeto^0.2.0-rc.16.
0.3.0-rc.18 #
- Floors
grid_engineto^0.3.0-rc.21andgrid_runtimeto^0.2.0-rc.15(the tg-g230 admission fixes, #345); no API change of its own.
0.3.0-rc.17 #
TrajectoryHarness.buildtakes asessionClosureprobe and threads it, with its ownhasQueuedAppendFor, into the Stage-1 obligation set;sessionClosureOf(Bead)derives the ledger's terminal outcome from the same markers legacy's disposition reads, and the assembly wires it off the state snapshot source (tg-ffl6).TrajectoryConfig.reconcileLedgerCloses(default true) arms it at EVERY posture and turns the appender's resolving pre-read on with it, so testimony yields to observation atofftoo — one in-transaction SELECT per session terminal is the price, r13's byte-identity claim foroffis narrowed to decisions, andreconcileLedgerCloses: falseis the rollback line. The comparator's own heal takes the same derived outcome and the ledger'sclosed_atthrough the same probe, so the two triggers write one shape.ObligationAppendandTickAppender.appendcarry anoccurredAt.- Floors
grid_runtimeto^0.2.0-rc.14andgrid_trajectoryto^0.2.0-rc.5.
0.3.0-rc.16 #
- Added: attach and detach live substations —
SubstationRoster.attach/detachwith named refusals (invalid_identity,identity_collision,root_invalid,store_absent,store_unparsed,provision_failed,not_attached,already_draining,sessions_live, forced draining), a lazy drain settle that requeries the state store only while a seat drains, and thegrid/substation/attach/detachcontrol commands (tg-wv9, #282). - Added:
StationServicesconstructs and disposes the singleStationAdmissionAuthoritythe engine's work admission runs through (tg-1u3c, #328). - Added: the pause/resume handler writes only
grid.session.pause_stateon the single owned open session (tg-5kb, #334). - Changed: the bd-backed attach integration tests skip by reason when no
bdbinary is on PATH instead of dying in the CI runner (tg-nh5e, #332). - Floors
beads_dartto^0.2.0-rc.10,grid_engineto^0.3.0-rc.20andgrid_runtimeto^0.2.0-rc.13.
0.3.0-rc.15 #
- Added:
GridAssetDefinition.teaches— the top-level commands a skill asset teaches, declared besideartifacts(default empty) and validated at the pack boundary byGridAssetPackDefinition(well-formed command names, no duplicates per asset;ArgumentError.valuenames the offending asset). Round-trips unchanged through pack and registry (tg-onap, #318).
0.3.0-rc.14 #
- Added:
TrajectoryConfig.obligationQueryExtensions— a station-authored list ofObligationQueryvalues thatTrajectoryHarness.startappends after the base tick queries (default empty, so every existing composition is unchanged);asDisabledforwards it (tg-8zfd, #316). - Floor tightened to
grid_engine ^0.3.0-rc.18(the mount-eligibility recheck fix, tg-gukc, #315) so a resolved pair is coherent.
0.3.0-rc.13 #
bead boardrenders cross-store LINK blockers in its BLOCKED-BY column (previously only same-storeblocksedges), and the station join bridge threads block observations into the joined snapshot (tg-vdt0, #311).- Floors tightened to
beads_dart ^0.2.0-rc.8,grid_engine ^0.3.0-rc.16.
0.3.0-rc.12 #
- Re-exports
CacheTokenTotalsandLandedDeliveryTotals(tg-mws0, #307); the trajectory-harness reshape message names the current projection shape (tg-0zop, #306). - Floors tightened to
grid_engine ^0.3.0-rc.14,grid_trajectory ^0.2.0-rc.3.
0.3.0-rc.11 #
- Added: the neutral typed asset registry contract — const inert asset definitions, stable logical and artifact identities, and validated pack and station registries, exported publicly and proven composition- and dependency-neutral (tg-1w3m, #301).
- Added:
bead_boardandbead_round— deterministic board and round projections over resident snapshots and trajectory verdicts, store-free, with unreadable stores and missing rounds surfaced as typed outcomes (tg-wk3j, #304). - Trajectory and Dolt store handles are retained until their close is confirmed, and trajectory sessions are vended through the ordered resident shutdown locus, so an evicted or timed-out state-server socket stays reachable for a later close attempt (tg-gmkt, #296).
- Adopts the grid_runtime 0.2.0-rc.11 GitOps work-tree-root guard in the work assembly (tg-amwa, #302).
- Floors tightened to
grid_runtime ^0.2.0-rc.11,grid_engine ^0.3.0-rc.13,grid_trajectory ^0.2.0-rc.2.
0.3.0-rc.10 #
- Silent, artifact-less harness exits (a usage window running out, a network refusal) classify as
infra: the restart budget is spent with backoff, then the round opens a gate naming the throttle and flaresharness.throttledwith the tail of the agent's output — never a gatelessfailedstrand (tg-mbeh, #294; shipped in this rc after the tag was cut from main). - Breaking: process groups are supervised as groups and exit status is preserved —
SessionOrphanedis a newRuntimeEventvariant (emitted once, NOT terminal: the group stays supervised until it empties or the bounded grace elapses and it is signalled), so exhaustive switches overRuntimeEventneed an arm (tg-8kye, #290; sdk consumes the new event). Migration: addSessionOrphaned()to everyswitch (event); power_station#195 is the consumer fix. trajectory.appendDroppedcarries sessionId and stepPath; the harness never drops a terminal for an oversized reason (tg-kzvs, #288).- Floors tightened to
grid_runtime ^0.2.0-rc.10,grid_engine ^0.3.0-rc.12,grid_trajectory ^0.2.0-rc.1.
0.3.0-rc.9 #
- Breaking:
StationKernelis deleted;runGridis the station's single flush coordinator and now carries the tg-60n fail-closed flush guard (#284). Migration: nothing constructsStationKernelin the org — drop any import of it and callrunGrid(grid_sdkrun_grid.dart); see decisions/2026-09-02-run-grid-is-the-single-flush-coordinator. grid reworkaccepts a gate-parked PARTIAL molecule pour (an open gate naming the session) as parked, not only an empty cursor (#277).- Dry-run
NoOpBdRunnermints under the owning store prefix (tg-czsf, #278). - Foreign dependency rows refused loudly (tg-mspw, #283); resident unwind closes store sockets (tg-46q1, #285).
- Floors tightened to
beads_dart ^0.2.0-rc.7,grid_runtime ^0.2.0-rc.9,grid_engine ^0.3.0-rc.11,grid_trajectory ^0.1.2.
0.3.0-rc.8 #
- Breaking: adopts genesis_tree 0.3.0 and grid_engine 0.3.0-rc.10;
FakeTreeContextand the SDK's tree overrides forward{Object? aspect}(#260). Migration: bumpgenesis_treeto^0.3.0; consumers that overrideaddDependentadd the parameter.
0.3.0-rc.7 #
- The trajectory harness's dual-read posture (tg-zfek, cut-wiring C1–C4):
TrajectoryConfig.dualReadselectsDualReadMode.off(THE DEFAULT and the rollback — byte-identical to no harness),observe, orprimary. The harness implements grid_engine's fold read interfaces over grid_trajectory's rows (#245, #250). - The P1/P2 mirrors (
SessionHeadMirror,StepCursorMirror): versioned in-memory read surfaces so each dual-read is served from pre-fetched state rather than a synchronous query on the join path (#250). - Terminal-reconcile heal: a session the ledger closed with no terminal record gets one appended, reporting
appended/skippedGuard/skippedUnavailable/failedrather than failing the caller (#250). - gc disables itself on a privilege denial — the latch is checked at arm AND at fire, and the transition flares
trajectory.gcDisabled(#250). - Boot refuses to start when dual-read is armed and the session-head projection needs a reshape, naming the fix instead of seeding clean and reading
livefrom an un-reshaped home (#250). grid reworkpublishes both resident mutation rails after the durable session re-key, so the joined engine sees a fresh ready snapshot and mints the successor before the command completes (#231).
0.3.0-rc.6 #
- The station work transport overlay derives its ServiceBundle via
ServiceBundle.derive()— new bundle fields can no longer be dropped by the hand-copied overlay (#217). StationView/StationWorkRuntimegainwedgeFor, backing the one-snapshot status projection (#221).- Session settlement on work-bead close (#215).
0.3.0-rc.5 #
SubstationWork's transport overlay is a total derivation:ServiceBundle.mountEligibilitynow reachesWorkList, so a composed mount gate actually enforces (#212). Previously the overlay hand-copied six fields and silently dropped the predicate — the gate tested green in the seat and did nothing in the live arm.- Floors tightened for train coherence:
grid_engine ^0.3.0-rc.6,grid_runtime ^0.2.0-rc.4,beads_dart ^0.2.0-rc.4.
0.3.0-rc.4 #
-
Verdict-based rework cap accounting and the readiness-hold exclusion (tg-04tj);
station_command_handlerreads verdict evidence from existinggrid.result.*metadata.NOTE: the previous version was published and the package then kept accruing source without a bump, so the hosted archive and the in-repo sources at that version differed. Local builds passed on path overrides while hosted resolves got stale code. This release re-syncs them.
0.3.0-rc.3 #
- Breaking (tg-at3r): grid_cli's old
ResidentGridDelegatecontract is folded intoGridDelegate— ONE delegate class. Absorbed hooks:stationView,commandHandler,afterFlush,sweepOrphans,treeProjector,armRoster(+ the non-virtualresolveArmedRoster), andstalenessPosture.stationViewandcommandHandlerare now NULLABLE with null defaults — absence is a rendered posture (docs/STYLE.md rule 3): the shell banner and/statusreport what they can without a view, and the control surface refuses commands with a clear message when no handler is vended. Migration for delegate subclasses (space_station / lunar_station / power_station): extendGridDelegatedirectly and drop theResidentprefix from overridden names; supporting types moved here —StationView(was grid_cliResidentStationView), theStalenessPosturefamily,StationRefusal, andSubstationConfig. - Breaking (tg-at3r): the command extension's
ResidentGridCommandHandler/ResidentWorkCommandStoreare renamedStationCommandHandler/WorkCommandStore(nowsrc/command/station_command_handler.dart); construction signatures are unchanged.
0.3.0-rc.2 #
runGridgains thetreeProjectorseam; completed flushes feed the diagnostics reporter (tg-j4ym); thedart:developerlog side channel is retired — the VM service stays a debug surface, never a diagnostics dependency.buildStationWorkthreadssyncFloorInterval, arms the federation's freshness + flare wiring, and exposessyncStats/workFreshness.grid reworkreaps the retired round's molecule, accepts pour-parked sessions, appends the operator note BEFORE housekeeping, and reports a reap failure LOUD in the result (tg-ehht).
0.3.0-rc.1 #
- Breaking: tracks beads_dart 0.2.0-rc.1, grid_runtime 0.2.0-rc.1 and grid_engine 0.3.0-rc.1. No SDK API change of its own; the constraint bump is the breaking part for resolvers.
- Changed: work assembly wires a probe reader beside each write chokepoint.
0.2.0 #
- Breaking: rides
grid_engine0.2.0's foundation diagnostics substrate. - Fix: registry notes route to the owning store.
0.1.3 #
- Constraint coherence: requires grid_runtime ^0.1.2 / grid_engine ^0.1.2 / beads_dart ^0.1.1 (fixes hosted 0.1.2 resolving against grid_runtime 0.1.1, which lacks
onFlare/ownedPrefixOf).
0.1.2 #
buildStationWorkcomposes capability registries over its owned note appender: aregistryBuildercallback receives aNoteAppenderbacked by the assembledStationBeadWriter(append-notes chokepoint), so station compositions can wire capability receipt lines to work-bead notes (#137).
0.1.1 #
- Added the command-operation seam:
grid/reworkandgrid/gate/resolverun inside the resident reconcile loop, andStationWorkRuntime.commandsvends the handler a station wires into its control plane (the_grid #104). - One-shot commands route through the resident station (the_grid #120).
0.1.0 #
- Initial release: the public authoring surface of the grid — composition types driven with runGrid.