)]}'
{
  "log": [
    {
      "commit": "b61de76507def9be4f181c07d778d5391df8c9b9",
      "tree": "351a6082eaf18cce3a3b0821ba417abdb0078aaf",
      "parents": [
        "836faa71af001002c6a76f3a55748592196987d1"
      ],
      "author": {
        "name": "anierbeck",
        "email": "achim.nierbeck@codecentric.de",
        "time": "Fri Oct 16 21:34:21 2026 +0200"
      },
      "committer": {
        "name": "anierbeck",
        "email": "achim.nierbeck@codecentric.de",
        "time": "Fri Oct 16 21:34:21 2026 +0200"
      },
      "message": "Fix CI startup failure: use only first-party actions\n\nThe apache org limits GitHub Actions to an allowlist; third-party\nactions such as astral-sh/setup-uv are not on it and the run dies\nimmediately as a startup failure (\"workflow file issue\") without a\njob ever starting. The registry and spec CI work the same way for the\nsame reason: they use actions/* only.\n\nReplace astral-sh/setup-uv with actions/setup-python (first-party)\nplus the documented uv install path (python -m pip install uv). The\nrest of the workflow is unchanged; the step sequence was verified\nlocally (uv sync --group validate, trainer smoke run).\n\nApache-ai: Yes\nGenerated-by: pi (claude-sonnet-5-5)\nReviewed-by: anierbeck\n"
    },
    {
      "commit": "836faa71af001002c6a76f3a55748592196987d1",
      "tree": "478ee2fcdc4975344a5115186dc6594229bca654",
      "parents": [],
      "author": {
        "name": "anierbeck",
        "email": "achim.nierbeck@codecentric.de",
        "time": "Thu Oct 15 18:06:02 2026 +0200"
      },
      "committer": {
        "name": "anierbeck",
        "email": "achim.nierbeck@codecentric.de",
        "time": "Fri Oct 16 21:31:56 2026 +0200"
      },
      "message": "Initial import: end-to-end training sample with full provenance\n\nThe Apache Sourcelume sample: a tiny char-level model trained on a\nbundled public-domain corpus (Project Gutenberg\u0027s Alice\u0027s Adventures\nin Wonderland, 1865) with the full provenance chain emitted as\nSourcelume records. Demonstrates the two-layer story: a dataset record\n(ProvenanceRecord) authored for the corpus, and a model record\n(TrainingProvenanceRecord) born from an actual training run — both\nsigned-off by the trainer, not hand-typed.\n\nContents:\n\n- data/: bundled PD corpus and the authored dataset record\n- src/train.py: the tiny numpy char-LM trainer; writes the model-side\n  provenance record from the real run (params, tokens, epochs, checksums)\n- scripts/validate-records.py: validates both records against the spec\u0027s\n  JSON Schema and SHACL shapes (needs SOURCELUME_SPEC pointing at a\n  sourcelume-spec checkout until the training record ships in a release)\n- Makefile: make demo (local), make demo-atlas (optional registry/Atlas\n  round-trip), make publish / make query\n- .asf.yaml: baseline settings per the spec repo\u0027s template\n  (description, homepage, labels, squash-only merges, protected main)\n- AGENTS.md: agent conventions per the spec repo, including the commit\n  and AI-attribution rules\n- CI: tiny-model training smoke test; record validation runs once a\n  spec checkout is available in CI\n\nThe README is deliberately honest about what works today and what\nstill needs registry/tooling follow-ups (type-based schema dispatch,\nplugin support for the training record).\n\nVerified locally: deterministic trainer run, both records pass spec\nvalidation, and the full registry round-trip (validate, publish,\nGET /records/{id} -\u003e VALIDATED) was exercised against the running\nAtlas stack.\n\nApache-ai: Yes\nGenerated-by: pi (claude-sonnet-5-5)\nReviewed-by: anierbeck\n"
    }
  ]
}
