Native Capability Preflight
This page is the public capability matrix for the locally qualified R2/R4 candidate. It does not announce a published package or installer. Release availability and exact artifact digests remain controlled by the signed release manifest.
The default Python engine is native. Unsupported work fails closed; no native
failure is redirected to the historical Python orchestrator. The only rollback
route is an explicit direct-Python call with engine="legacy". That route is not
reachable from Studio’s strict product boundary.
Check capabilities before execution
The following checks do not train a model or run a scientific operation:
from nirs4all.api.explain import explain_preflight
from nirs4all.api.generate import generate_preflight
from nirs4all.api.retrain import retrain_preflight
decisions = [
retrain_preflight(mode="full", engine="native"),
explain_preflight(engine="native"),
generate_preflight(engine="native"),
]
for decision in decisions:
print(decision.to_dict())
# Call decision.require() only when refusal should raise.
Static pipeline consumers can inspect syntax and effect support without loading a dataset:
nirs4all keyword-registry --schema
nirs4all keyword-registry
The registry preflights declared syntax and effects. Dynamic constraints are
still checked at the run() boundary before the affected scientific operation.
Limitations and their preflight
Public limitation |
Preflight |
Refusal/remediation |
|---|---|---|
An omitted |
Resolve the requested profile with |
|
|
Call |
Native selectors refuse it. Select |
Archive V2 native training accepts raw PLS or exact row-wise SNV ( |
Use the keyword registry for static syntax, then call |
|
|
Inspect the keyword registry, then use |
A structured |
A legacy Archive V1 loaded into a default-native |
Inspect/convert it with |
Native prediction reports |
Retrain support depends on mode, engine, plugin selector, session state, and bundle contents. |
|
Full retrain uses native DAG-ML. Transfer uses the explicit built-in |
Explain and synthetic generation remain Python-host features during this window. |
|
Native selection is refused; direct Python callers may select |
Studio accepts only its bounded JSON scientific-job contract. It does not expose arbitrary Python objects, paths, workspaces, schedulers, HTTP, or persistence to CPython. |
Validate through |
|
Legacy/dual usage telemetry is local and opt-in. |
Set |
The snapshot is process-only and data-free; it is not release telemetry and performs no network or persistent write. |
Conversion tooling has a separate deterministic result contract: exit 0 means
success, 10 means unsupported input, and 20 means corrupt or structurally
invalid input. Conversion never mutates its source. See the
/migration/python-to-native guide before moving a rollback archive.