genesis_foundation 0.3.0-dev.2
genesis_foundation: ^0.3.0-dev.2 copied to clipboard
Dependency-free diagnostics protocols, typed, versioned tree snapshots, and marker annotations for genesis analyzer rules.
Changelog #
0.3.0-dev.2 #
- Add the marker annotations
genesis_lintreads:deriveOnly(DeriveOnly) for classes constructed only inside their own library,effect(EffectMarker) for members that perform an effect, andeffectLeaf(EffectLeafMarker) for classes that own effects through their lifecycle. Additive; the package stays dependency-free.
0.3.0-dev.1 #
- Breaking:
TreeNode.componentTypereplaces the source spellingseedType; migrateTreeNode(seedType: 'Node', ...)toTreeNode(componentType: 'Node', ...). Deprecated constructor, getter, andcopyWithbridges remain, and version-1 JSON continues to use the literalseedTypekey.
0.2.0 #
- Breaking:
debugFillPropertiesnow receives aDiagnosticsBuilder— replaceproperties.add(...)list calls with the builderadd(); wire format unchanged.
0.1.2 #
- Docs only, no API changes. The LICENSE, README and CHANGELOG were already
present in the 0.1.1 archive —
pubpublishes the working tree, and they were added there before that upload — but they were untracked in git. This release reconciles the repository with what shipped.
0.1.1 #
Initial release.
DiagnosticableandDiagnosticableTree— a dependency-free, pure-Dart diagnostics protocol. Implementers contribute their own properties viadebugFillPropertiesand their own children viadebugDescribeChildren, and gettoStringDeep()for free. Types become diagnosable without any change to a central projector.DiagnosticsProperty— a sealed union overstring,int,double,flag,enumValue,duration,timestampandobject, each carrying aDiagnosticsLevel(fine/info/warning/error) so severity travels with the value. Exhaustive switches are compiler-checked.TreeSnapshot/TreeNode— the typed, versioned wire contract for out-of-process consumers, carryingcontractVersionandprojectedAt. A deliberate divergence from Flutter, whose inspector ships an untypedMap<String, Object?>.
This package sits below genesis_tree, so a consumer that only reads
diagnostics depends on it alone and never pulls in a tree engine. It has no
runtime dependencies.
The diagnostics contract and snapshot types were previously developed as
grid_diagnostics_contract in the_grid, and briefly carried as
genesis_diagnostics; neither was ever published. Value types are hand-written
rather than generated, which is permanent for the foundation and the spine.