Context
Every run goes to one build of one engine. Questions like "when did this stop deoptimising?", "was this bytecode different in V8 12?", "does Hermes still emit this in the latest release?" cannot be asked at all. Engine base images are already independent (engines/dockerfiles/, published under pavlof01/*), so a version axis is an infrastructure question, not an application rewrite.
Proposal
- Tag engine base images by engine version rather than only
:latest, and let a deployment declare a set of versions per engine.
- Route by version:
POST /api/run takes an optional engineVersion, defaulting to the current one; unknown versions 400 with the list of available ones.
GET /api/engines reports the available versions per engine (depends on the engine-version reporting issue).
- UI: a version selector next to the engine tab, and a diff mode across two versions of the same engine.
Cost
This multiplies pods and disk on a single-node k3s host. Worth scoping as "two V8 builds" first and measuring before generalising.
Acceptance criteria
- Two V8 versions serve simultaneously and produce independently cached results.
- Cache keys include the version; a version change never serves a stale dump.
- Node disk usage after adding the second build is documented in
infra/README.md.
Context
Every run goes to one build of one engine. Questions like "when did this stop deoptimising?", "was this bytecode different in V8 12?", "does Hermes still emit this in the latest release?" cannot be asked at all. Engine base images are already independent (
engines/dockerfiles/, published underpavlof01/*), so a version axis is an infrastructure question, not an application rewrite.Proposal
:latest, and let a deployment declare a set of versions per engine.POST /api/runtakes an optionalengineVersion, defaulting to the current one; unknown versions 400 with the list of available ones.GET /api/enginesreports the available versions per engine (depends on the engine-version reporting issue).Cost
This multiplies pods and disk on a single-node k3s host. Worth scoping as "two V8 builds" first and measuring before generalising.
Acceptance criteria
infra/README.md.