grid_cli 0.5.0
grid_cli: ^0.5.0 copied to clipboard
Management CLI for the_grid — `grid watch` and companion commands for operating a grid station.
0.5.0 #
- PROMOTED from 0.5.0-rc.23. This is the stable release of the 0.5.0 line; the code is the candidate's, unchanged. Every intra-family dependency constraint is rewritten from its prerelease form to the stable one, because pub refuses a stable package that depends on a prerelease.
- Consumers on a
^0.5.0-rc.Nconstraint resolve this automatically: a caret range admits the release above its own prereleases, so no downstream pubspec edit is required to pick it up.
0.5.0-rc.23 #
- Floors
grid_engineto^0.3.0-rc.25. rc.22 declared^0.3.0-rc.24while callingStationAdmissionStatus.zeroAdmissionWaiters, which rc.24 does not have, so it did not build for any consumer resolving from pub and was retracted. rc.23 is rc.22's content on a floor that resolves (tg-qwsx). - BREAKING for exhaustive switches:
AttachResultgained aDeadPidcase. A consumer that switches over it without a default must add the case.
0.5.0-rc.22 #
- Added:
read— bounded source excerpts by symbol or span. Resolves a Dart declaration to its brace-balanced extent rather than taking a guessed line range, shares one byte budget across every file in the invocation (max-min fair, so a small file is never starved by a large one), names what a cap withheld and the--spanthat widens it, and suppresses a repeat only when a content fingerprint proves the answer unchanged (tg-qpro, #406).
0.5.0-rc.21 #
- Fixed:
statusfilters its mounted count through the engine's dispatchable-work eligibility, so ghosts and blocked beads no longer inflate it (tg-8p9, #386). - Added: the cli half of inert cross-link marking (tg-z4zx, #377).
- Floors
grid_engineto^0.3.0-rc.24.
0.5.0-rc.20 #
- Breaking:
StateStoreGcandmaintainStateStoremoved to grid_sdk and are no longer exported here;UpCommandno longer runs its own boot maintenance step (tg-bq4i, #374). - Fixed: the resident survives an uncaught post-mount error (tg-co52, #372).
- Floors
grid_engineto^0.3.0-rc.23andgrid_sdkto^0.3.0-rc.20.
0.5.0-rc.19 #
- Added:
session collectoperator verb (tg-yz4p, #361); the status payload carries admission facts and the soak instrument (#349, #354, #352). - Fixed: the station port release probe retries instead of flaking (tg-6uuw, #360).
- Floors
grid_engineto^0.3.0-rc.22,grid_sdkto^0.3.0-rc.19andgrid_runtimeto^0.2.0-rc.16.
0.5.0-rc.18 #
- Floors
grid_engineto^0.3.0-rc.21,grid_runtimeto^0.2.0-rc.15andgrid_sdkto^0.3.0-rc.18(the tg-g230 admission fixes, #345); no API change of its own.
0.5.0-rc.17 #
- Changed:
LegacyStoreUnavailableShadownamesShadowCompare.compare's newcorroborationparameter, so the bd-absent shadow stub compiles against grid_trajectory 0.2.0-rc.5's classifier surface (tg-ilug, #342). - Floors
grid_runtimeto^0.2.0-rc.14,grid_sdkto^0.3.0-rc.17andgrid_trajectoryto^0.2.0-rc.5.
0.5.0-rc.16 #
- Added: the
grid/substation/attachanddetachcontrol commands decode on the resident door, anduprenders status from the live roster instead of the launch-time arming (tg-wv9, #282). - Fixed:
StationDiagnosticsReporterbuckets its 30 s flare rate limit onnodePath ?? beadId ?? workBeadId ?? sessionId ?? bead, so refusals for different beads no longer collapse into one line per flare name — the silence that hid two days of mount-eligibility refusals on lunar (tg-ym3t, #333). - Added: pause and resume verbs for live work sessions (tg-5kb, #334).
- Added:
StationStatus/SubstationStatuscarrymintFailedScopes, derived from the tree snapshot'smintFailedflags, so a dead-minting scope is visible in status (tg-f6r, #335). - Fixed:
statusdistinguishes a slow resident door (SlowUp, "station: UP — alive but slow (N s)", soft threshold 3 s, hard bound 15 s, pid probe first) from a dead one, and/statusserves a cached snapshot refreshed off the request path (tg-k5hl, #337). - Floors
beads_dartto^0.2.0-rc.10,grid_engineto^0.3.0-rc.20,grid_runtimeto^0.2.0-rc.13andgrid_sdkto^0.3.0-rc.16.
0.5.0-rc.15 #
- Breaking:
AttachResult.Staleis replaced byStarting(a lock atacquiredwhose pid is alive — the station is booting) andUnreachable(a dead pid or an unreachable control endpoint), so a booting station is no longer reported as crashed; everyswitchover the sealed class must name both. Migration: replace theStalearm withStarting+Unreachable. - Added: the station lock is stamped with its lifecycle phase —
acquiredat acquire,liveatupdateControl(the VM-service attach is an orthogonal flag),releasingat release — preserving atomic ownership;statusreports the phase (tg-g3zx, #322). - Floor tightened to
grid_diagnostics_contract ^0.2.1.
0.5.0-rc.14 #
- Added:
asset-catalog— the union asset catalog served READ-ONLY and resolved offline from the resolved package closure (AssetCatalogCommandoverAssetCatalogResolver), plus thegrid/assetsread on the StationControl surface;upcomposes it (tg-oym2, #320). - Floors tightened to
grid_sdk ^0.3.0-rc.15andgrid_engine ^0.3.0-rc.18so a resolved set is coherent.
0.5.0-rc.13 #
- Added:
grid watch --until <predicate>— a closed set of typed event predicates with a bounded wait (--timeout), distinct exit codes for timeout and broken stream, and NDJSON-safe termination; transition-only semantics, so an operator seat returns when the gate opens instead of polling (tg-u5xt, #297). - Added:
grid bead boardandgrid bead round— deterministic operator READ verbs over the resident station (grid/bead/boardandgrid/bead/roundon the StationControl surface): work across stores with status/blocked/approval filters, and one round's lane verdicts (tg-wk3j, #304). upretains the Dolt query service's handles until close is confirmed during unwind (tg-gmkt, #296).- Floors tightened to
grid_runtime ^0.2.0-rc.11,grid_engine ^0.3.0-rc.13,grid_sdk ^0.3.0-rc.11,grid_trajectory ^0.2.0-rc.2.
0.5.0-rc.12 #
- 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;upsupervises process groups). Migration: addSessionOrphaned()to everyswitch (event); power_station#195 is the consumer fix. station.lockis published atomically: exclusive create, pid/startedAt ownership, hold-never-steal (tg-o2fy, #287).- Floors tightened to
grid_runtime ^0.2.0-rc.10,grid_engine ^0.3.0-rc.12,grid_sdk ^0.3.0-rc.10,grid_trajectory ^0.2.0-rc.1.
0.5.0-rc.11 #
- 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. upcloses every resident store's query service during unwind (dev-mode dispose, control dispose, grid teardown, projector dispose, then lock release), so the VM exits afterdowninstead of idling on ESTABLISHED db-proxy sockets and pinning the VM-service port for the next boot (tg-46q1, #285).stationFlags()andUpCommandtake adefaultHarness, so a composed station picks its ambient harness independently of the allow list's sort order; the default must be a member of the armed set (#276).- 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_sdk ^0.3.0-rc.9,grid_trajectory ^0.1.2.
0.5.0-rc.10 #
- Breaking: requires
grid_exploration ^0.3.0-rc.4(which requiresleonard_contract ^0.2.2on genesis 0.3.0). Migration: none beyond the constraint. Fixes rc.9, which did not resolve from pub.flutter-io.cn at all: it pinnedgenesis_tree ^0.3.0whilegrid_explorationrc.3 still reached genesis_tree 0.2 throughleonard_contract 0.2.1, sodart pub global activate grid_cli 0.5.0-rc.9failed version solving. TheDevModeHostimport (#249) now also matches the hosted grid_exploration.
0.5.0-rc.9 #
- Breaking: adopts genesis_tree 0.3.0, grid_engine 0.3.0-rc.10 and grid_sdk 0.3.0-rc.8 (#260). Migration: bump
genesis_treeto^0.3.0. - Trajectory: the Stage 0 substrate (grid_trajectory, the fenced appender, the
trajverbs, guard CI) and the Stage 1 dual-write shadow window ride the CLI (#241, #242, #245). DevModeSeatis renamedDevModeHost(#249).- Historical sessions with legacy outcomes are fenced (#232).
0.5.0-rc.8 #
VmServiceSession.connectgains an injectableVmServiceConnectorseam (defaulting to the existing connector), enabling direct tests of reload-capability classification and isolate selection (#225).
0.5.0-rc.7 #
reloadprobes the resident's reload capability before sending any reload request and refuses withReloadUnsupportedLaunchShapeinstead of crashing a non-reloadable resident's kernel service (#219)./statusderives wedge and work visibility from ONE captured snapshot (wedge.live == work.liveSessionsby construction) and populates per-substation ready/mounted/live rows for every armed store (#221).
0.5.0-rc.6 #
upperforms boot-timetypes.customvalidation and prints the exact missing set beside the banner (#211).- Floors tightened for train coherence across the rc train:
grid_sdk ^0.3.0-rc.5,grid_engine ^0.3.0-rc.6,grid_runtime ^0.2.0-rc.4,grid_exploration ^0.3.0-rc.3,beads_dart ^0.2.0-rc.4.
0.5.0-rc.5 #
-
StationEventLog+CompositeExplorationTransport: a durable, cursored sink over the existingExplorationTransport.flareseam, composed besideStationDiagnosticsReporter(tg-fqif). -
Threshold-gated offline
dolt gc --fullin the up lifecycle (tg-zc6x).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.
Changelog #
0.5.0-rc.4 #
- Breaking (tg-at3r): the
Resident*prefix is swept off the vended shell —ResidentUpCommand→UpCommand,ResidentDownCommand→DownCommand,ResidentStatusCommand→StatusCommand,ResidentStationConfig→StationConfig,ResidentGridRunner→GridRunner,ResidentGridDelegateFactory→GridDelegateFactory, andResidentLockResource/ResidentGridResource/ResidentControlResource/ResidentDevModeResourcedrop the prefix. Filenames follow (resident_up_command.dart→up_command.dart, …). Behavior — exit codes, stderr text, event and teardown order — is unchanged. - Breaking (tg-at3r): the delegate contract left this package —
ResidentGridDelegateis folded into grid_sdk'sGridDelegate(subclass that instead), and its supporting types (StationView, theStalenessPosturefamily,StationRefusal,SubstationConfig) ride grid_sdk's barrel.
0.5.0-rc.3 #
StationDiagnosticsReporter— the ratified diagnostics reporter, armed: engine flares as JSON lines + the sharedTreeProjectorfeeding/stream(tg-j4ym); works in JIT and AOT.StationStatusgains thesyncpayload (per-storeGraphSyncStats+ the federation freshness vector) — WHY a sync did or did not happen (tg-zd4v).StationControl's internal_error responses carry the bounded exception detail instead of a bare 'Command handler failed.'.
0.5.0-rc.2 #
- Fixed:
grid link ls/link/unlinkcrashed withbd type discovery field "custom_types" was not a listagainst any store that has no custom types.bd types --jsonOMITS an empty group rather than emitting an empty list, so the absent key was read as malformed. Absent now means none. - Fixed: on a store whose types do not include
link, the scoped read that replaced the whole-store export was refused by bd (invalid issue type) where the export had simply found nothing. A store without thelinktype cannot hold link beads, solink lsnow reports an empty listing andunlinkreports no match, instead of erroring.
0.5.0-rc.1 #
- Breaking: tracks the beads_dart 0.2.0-rc.1 wave.
grid link,grid link lsandgrid unlinkare migrated offBdCliService.exportAllonto scoped reads, and constructStationBeadWriterwith the requiredreader:.
0.4.1 #
- Bump the family floors onto the 0.2.0 substrate wave:
grid_engine,grid_exploration,grid_sdk^0.2.0;grid_diagnostics_contract^0.2.0. No API changes.
0.4.0 #
- Breaking:
acquire()establishes and verifies station-owned process groups — resident stations own their spawn tree, anddownkills only the station's own group. Callers embedding grid_cli must not assume the old detached-spawn behavior. - Breaking: the exploration surface speaks the
ext.leonard.*VM-service namespace (protocol version 2) vialeonard_contract;ext.exploration.*is gone. Attach tooling must be onleonard_*0.2.x. - Fix: link authoring compiles against the published
beads_dart— the retiredIssueType.linkconstant is replaced by the grid-ownedGridIssueTypes.linkvocabulary (0.3.0 was broken here at load time). - Diagnostics ride the
genesis_foundationsubstrate (typed tree snapshots over the station door).
0.3.0 #
- Breaking:
commandHandleris now REQUIRED onStationControl.start. Migration: pass the handler vended by grid_sdk ≥0.1.1 —StationControl.start(..., commandHandler: workRuntime.commands). - Added the vended resident station verbs —
ResidentUpCommand,ResidentDownCommand,ResidentStatusCommand, the resident flag surface, and state-workspace/lock resolution — parameterized over aGridDelegatefactory and a verb-name string, so a station composed directly on the_grid no longer copies ~1000 lines (the_grid #112). - Added the fenced station command route on
StationControlwith bearer-first routing, monotonic fencing, and cached idempotent dispatch (the_grid #106). - Station control serves tree snapshots; headless projection reads and count-gated snapshot streams are fenced by tests (the_grid #110, #113, #114, #115).
- Added attributed beyond-cap rework; open gate beads are trusted during rework (the_grid #101, #102).
0.2.0 #
- Breaking:
StationLockService.acquireno longer takes apgidparameter — the service now establishes the station's own process group itself (setsid-own-group before the lock write) and refuses viaStationRefusalwhen the resolved pgid is not the station pid. Migration: drop thepgid:argument fromacquire(...)call sites; if you were computing a group id to pass in, delete that code — the recordedpgidis now always the station's own, verified group. stop()gains a pgid-gated group signal: when the lock's recordedpgidmatches the live process group, teardown signals the whole group; on mismatch it falls back loudly to the previous pid-scoped SIGTERM.- New:
establishStationProcessGroup(re-exported), withProcessGroupController.resolvePgidas the single source of process-group identity; regression test boots from a non-leader parent and asserts the recorded group is the station's own tree.
0.1.0 #
- Initial tagged release (tag-pattern version solving).