Adaptify.PureView.Tool 0.1.6

dotnet tool install --global Adaptify.PureView.Tool --version 0.1.6
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Adaptify.PureView.Tool --version 0.1.6
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Adaptify.PureView.Tool&version=0.1.6
                    
nuke :add-package Adaptify.PureView.Tool --version 0.1.6
                    

puresg

Prototype for deriving adaptivity from a pure Model -> view, as the view-side of Adaptify. Full design + plan: ~/claude/adaptify-view-plan.md.

Step 1 (this) — the runtime architecture + oracle

No analysis, no codegen, no rendering. Just:

  • DummyApi.fs — a stand-in for aardvark.dom. Each Node constructor declares the adaptive shape it accepts (the callee contract): Text takes aval<string>, Styled takes aval<Style> (deliberately not a per-prop alist), Children takes alist<Node> (fine), ItemList takes aval<Item list> (deliberately coarse).
  • Example.fsEagerCells (the design we keep: one cell per path, eager minimal-mark push-down) and SingleRoot (the anti-pattern, kept to show fan-out).
  • Instrument.fs — counts how often each projection body re-runs.
  • tests/ — a console runner that changes one field and asserts which projections re-ran. This is the oracle Step 2's generated wiring must match.

What the tests prove:

  1. eager cells → a one-field change re-runs exactly one projection (no fan-out)
  2. single cval<Model> root → a one-field change re-runs everything (the fan-out)
  3. setting a cell to the same value doesn't re-run
  4. alist → append re-maps only the new element
  5. aval<list> → any change reprocesses the whole list (the coarse-shape cost)
  6. aval<list> -> alist coercion → correct, and reports how many elements re-map (the keyed-reconciliation "hard part")

Run

dotnet run --project tests/Adaptify.PureView.Tests

Step 2 (next) — the analysis

Clone/extend Adaptify: expose its Adaptor shape algebra, add an FCS read-effect analysis that generates the EagerCells+projections wiring from a pure view : Model -> Node. The Step-1 oracle is the differential test target.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.6 91 5/29/2026
0.1.5 75 5/29/2026
0.1.4 79 5/29/2026
0.1.3 77 5/29/2026
0.1.2 78 5/29/2026
0.1.1 88 5/29/2026
0.1.0 80 5/29/2026