# Open-source notice: greenbar-prepared-starts 2026.11.06

This is the source and license set for greenbar's **prepared starts**, version **2026.11.06** (release tag
`greenbar-prepared-starts-v2026.11.06`): the corresponding source of what the prepared starts hold beyond their images.

## What a prepared start is

A prepared start is a signed OxideVM snapshot of a VM running one of greenbar's two test-runner images: the
image's programs in memory, with greenbar's warm launcher running and its warm-up exercise loaded, so a new
session continues from there instead of starting the runner from scratch. The launcher has imported the
unmodified Exercism test runner and its test framework, has run the warm-up exercise once, and waits for jobs.

Every program in a prepared start other than the launcher and the warm-up exercise comes from the image it was
started from, and is covered by that image's own source and license set:

| Prepared start | Image | Its image set and release | Image manifest SHA-256 | Snapshot manifest SHA-256 |
| --- | --- | --- | --- | --- |
| `python-warm` | exercism-python-test-runner 2026.09.22 | [`/open-source/exercism-python-test-runner/`](/open-source/exercism-python-test-runner/) · release [`image-exercism-python-test-runner-v2026.09.22`](https://github.com/spacia-ai/greenbar-sources/releases/tag/image-exercism-python-test-runner-v2026.09.22) | `cbb05270e40abc1aadb291c91843de257d15b07a12208801796788f47025b7fe` | `4809ec51c7bffebd125eedf25148e115e2df2d288df0d58d649cceba5973a95e` |
| `ruby-warm` | exercism-ruby-test-runner 2026.11.01 | [`/open-source/exercism-ruby-test-runner/`](/open-source/exercism-ruby-test-runner/) · release [`image-exercism-ruby-test-runner-v2026.11.01`](https://github.com/spacia-ai/greenbar-sources/releases/tag/image-exercism-ruby-test-runner-v2026.11.01) | `d42d1222b843f69746278d09b87f1a266ad487f4cc0bb092b634800d44f63a0f` | `912848bb70ca6c97f6a7be2205e37a7b87efc5366580bd3ffbd08e2bc2269b5d` |

The snapshot manifest digests name the exact prepared starts this set covers. A **PENDING** field is filled by the
final run of the generator from `snapshots/<name>/dist/<name>.snapshot.ts`, and only when that snapshot was built
from exactly the launcher and warm-up files in this set and the image above.

## Who made it

- The launchers and the snapshot recipes are Spacia B.V.'s own work, under the MIT license.
- The warm-up exercises are Exercism's, under the MIT license: the Python track's Two Fer from
  [exercism/python](https://github.com/exercism/python) at commit `6105f6d9d3ef66ce3d5c8f529d2882af3d76b706` and the
  Ruby track's Leap from [exercism/ruby](https://github.com/exercism/ruby) at commit
  `f54fd955af01a6cb1c172f068c7bdfa985360f47`. They are the tracks' reference solutions and tests, unchanged: each file below was
  verified byte for byte (git blob id) against those commits.

- `cases/python/two-fer-pass/.meta/config.json` = exercism/python `exercises/practice/two-fer/.meta/config.json` at `6105f6d9d3ef`
- `cases/python/two-fer-pass/two_fer.py` = exercism/python `exercises/practice/two-fer/.meta/example.py` at `6105f6d9d3ef`
- `cases/python/two-fer-pass/two_fer_test.py` = exercism/python `exercises/practice/two-fer/two_fer_test.py` at `6105f6d9d3ef`
- `cases/python/LICENSE` = exercism/python `LICENSE` at `6105f6d9d3ef`
- `cases/ruby/leap-pass/.meta/config.json` = exercism/ruby `exercises/practice/leap/.meta/config.json` at `f54fd955af01`
- `cases/ruby/leap-pass/leap.rb` = exercism/ruby `exercises/practice/leap/.meta/example.rb` at `f54fd955af01`
- `cases/ruby/leap-pass/leap_test.rb` = exercism/ruby `exercises/practice/leap/leap_test.rb` at `f54fd955af01`
- `cases/ruby/LICENSE` = exercism/ruby `LICENSE` at `f54fd955af01`

## The launcher and the AGPL runner

The launchers (`launchers/python-warm.py`, `launchers/ruby-warm.rb`) are Spacia B.V.'s under the MIT license; each
file says so in its `SPDX-License-Identifier: MIT` header. In a prepared start the launcher runs in one process
with Exercism's test runner, which Exercism publishes under the GNU Affero General Public License version 3
(AGPL-3.0-only; its source is in the image's set). Combined in that process, the launcher and the runner are
conveyed together under AGPL-3.0-only (`licenses/AGPL-3.0-only.txt`). The launcher stays available on its own under
MIT.

## OxideVM is separate software

The OxideVM engine that restores and runs a prepared start in a web browser is separate proprietary software of
Spacia B.V. It is not part of this set and not covered by any license listed here. A snapshot's signature only
authenticates the copy; you can build, sign and run modified prepared starts with your own keys.

## Open-source licenses prevail

The open-source licenses of the programs in a prepared start prevail for those programs. Nothing in Spacia's terms
limits the rights they give you.

## Contents of this set

- `sbom.spdx.json`: SPDX 2.3 inventory; every source file of this set with its SHA-256, attributed to exactly one package.
- `sbom.cdx.json`: CycloneDX 1.6 SBOM of the four packages and their files, with the prepared starts' digest fields.
- `licenses/` (MIT and AGPL-3.0-only texts) and `licenses/NOTICES.txt`: every package's license, copyright and file headers.
- `sources/<package>/`: the files at their project paths, with a `BUILD.md` and a `SHA256SUMS`.
- `SHA256SUMS`: SHA-256 of every file in this set.

The same materials are published at https://github.com/spacia-ai/greenbar-sources/releases/tag/greenbar-prepared-starts-v2026.11.06.

## Packages

| Package | Version | License | Copyright | Files | Source |
| --- | --- | --- | --- | --- | --- |
| greenbar-launchers | 2026.11.06 | `MIT` | 2026 Spacia B.V. | 3 | [sources/greenbar-launchers/](sources/greenbar-launchers/) |
| greenbar-snapshot-recipes | 2026.11.06 | `MIT` | 2026 Spacia B.V. | 13 | [sources/greenbar-snapshot-recipes/](sources/greenbar-snapshot-recipes/) |
| exercism-python-exercises | 6105f6d9d3ef | `MIT` | 2021 Exercism | 4 | [sources/exercism-python-exercises/](sources/exercism-python-exercises/) |
| exercism-ruby-exercises | f54fd955af01 | `MIT` | 2021 Exercism | 4 | [sources/exercism-ruby-exercises/](sources/exercism-ruby-exercises/) |

## Corresponding source

Everything a prepared start holds beyond its image is in `sources/`: the launcher, the warm-up exercise, and the
recipe and script that build the snapshot (`scripts/build-snapshot.sh` stages the launcher, the warm-up exercise and
`tracks.json` into the recipe and runs the snapshot builder). The image's programs, the Exercism runner included,
have their complete corresponding source in the image's own set, named above.
