FrameworkFacts
THE ONE PLACE THIS PANEL NAMES `Milpa\AppRuntime\Framework` — by string, on purpose. The provenance family lives in `milpa/app-runtime` because what a house was born from is a fact about the APP, and because applying a reconciliation is a governed act, which is an Operation, which a panel cannot declare (greenhouse decisions/0295). 🚨 AND IT IS REFERENCED BY STRING, WHICH IS THE HOUSE'S OWN IDIOM HERE — see {@see PluginsSource::capabilities()}, which names `Milpa\AppRuntime\Support\Capabilities` exactly this way. `milpa/admin` does not depend on `milpa/app-runtime`: the panel works without it, with fewer facts to show. Adding it as a dev dependency to get typed calls was tried and measured: it turned six green tests red, because the passkey gate's class becomes RESOLVABLE while `milpa/auth` is still absent, so a middleware the container cannot build stops being invisible. Those six are a real coupling and they are not this slice's to fix — installing a package to type-check one file is not worth surfacing them halfway. So the strings live HERE, once, and every caller in this package talks to a typed method instead.
FrameworkFacts::available()
public static function available(): boolWhether this app carries the package that knows any of this.
FrameworkFacts::version()
public static function version(string $root): ?stringThe framework version this house runs on, or null when nothing can say.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string |
FrameworkFacts::divergence()
public static function divergence(string $root): ?arrayThe counts of what this house has changed since it was born, or null.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string |
FrameworkFacts::divergenceRows()
public static function divergenceRows(string $root): arrayEvery file that is not untouched, with what became of it.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string |
FrameworkFacts::lastCheck()
public static function lastCheck(string $root): ?arrayWhat the last update check found, or null when nobody has checked.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string |
FrameworkFacts::latest()
public static function latest(): ?stringAsks the registry which release is newest — the only method here that reaches the network.
FrameworkFacts::ships()
public static function ships(string $version, string $root): ?arrayA release's tracked-file hashes, from cache when they are there.
Parameters
| Name | Type | Description |
|---|---|---|
| $version | string | |
| $root | string |
FrameworkFacts::remember()
public static function remember(string $root, string $version, string $at): voidRemembers which release the last check found, so a render never has to ask.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string | |
| $version | string | |
| $at | string |
FrameworkFacts::reconcile()
public static function reconcile(string $root, array $ships): ?arrayWhat a release would do to this house, judged, or null when it cannot be judged.
Parameters
| Name | Type | Description |
|---|---|---|
| $root | string | |
| $ships | array<string, string> |