Publish curated ITWorx-ModelForge source from 990401737f96c8d46a9f7b0d84994516cadcb6a0

This commit is contained in:
Public Source Publisher committed 2026-09-30 09:23:17 +00:00
1 parent 7082ab955a
commit 848f0d8f8a
434 files changed
+67298 -4315

No files matched your search

@@ -0,0 +1,42 @@
# ADR 0054: Model Lab preflight and execution are separate contracts
Status: accepted for P03A; persistent execution remains outstanding.
## Context
The existing serving gateway has private worker jobs, GPU leases and transient payloads.
Its invoke methods synchronously await completion, use service-client authorization and,
for several modalities, resolve an experiment rather than an explicitly chosen candidate.
Wrapping these methods in an operator endpoint would conflate credential domains and would
not provide a durable, restart-safe Model Lab run.
## Decision
First expose an operator-authorized, read-only `POST /api/v1/lab/preflight`. Requests bind to
exact candidate, artifact, runtime profile, node and LAB approval IDs. Inputs discriminate
the five supported capability families and reuse existing typed serving validators. Execution,
queue, retention and output budgets are bounded; concurrency is one.
Recompute current assessment and approval evidence through the runtime service. Check candidate,
completed probe, profile, node and contract coherence. Responses contain only typed binding,
input digest/count/size, bounded limits and blocker codes. No raw content, arbitrary review text,
service credential, payload-store reference or inferred GPU measurement is returned or persisted.
Validation errors for this namespace also omit caller-controlled input, locations and messages.
Preflight does not create an experiment, approval, gateway request, job, payload or lease. Both
`execution_started` and `permission_granted` are always false. Passing is a current read-only
observation; a future start operation must repeat admission and evidence checks atomically.
The existing control-plane HTTP body cap applies, so initial inline inputs must fit that cap.
No service-key privilege or machine credential is converted into an operator principal.
## Subsequent implementation
Persist LabRun identity, actor, immutable provenance and idempotency separately from transient
input/output content. Extract explicit-target dispatch into the existing scheduler/private-worker
pipeline rather than create another scheduler or fabricate a ServiceClient. Add leases, bounded
retry, deadline/retention cleanup and restart reconciliation with PostgreSQL migration/recovery proof.
Running cancellation must distinguish requested cancellation from worker acknowledgement.
An API or database status alone cannot establish that GPU execution or reclamation has completed.
Then expose run history/results and connect the Console. Real hardware, consumer journeys and
the frozen RC artifactset remain separate qualification gates.