Repository navigation
fix(system-agent): sha256 scope schema+id+blueprint (0.2.1) - #3
Conversation
…nsumers (0.2.1)
sha256 is now computed over canonical JSON (sort_keys, compact separators,
UTF-8, ensure_ascii=False) of exactly {schema, id, blueprint}; version,
capability, permissions and _meta are excluded. Consumers (BACH, ellmos-ai/bach#334)
can recompute it from the printed output alone.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E
The old whole-file hash already ignored version, so the previous test passed against the 0.2.0 code too. Changing _meta.description makes it fail there (verified) and pins the actual scope change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E
Review R8 (Zweitmodell Claude Opus 5.5; Autor Sonnet-Worker S1) – bestandenGeprüfter Stand: 1. Tests/Lint (eigener Worktree, eigenes venv, Exitcodes getrennt)
2. Kreuzprobe gegen den Konsumenten (ellmos-ai/bach #334, Kopf
3. Diff 4. Review-Fix Ergebnis: bestanden → ready + squash-merge, danach Tag |
Vertrag
data.sha256vongithubbot-core --json system-agent= sha256 über kanonisches JSON von genau{schema, id, blueprint}(sort_keys, Trenner,/:, UTF-8,ensure_ascii=False). Ohneversion,capability,permissions,_meta. Damit aus der Ausgabe allein nachrechenbar (vorher: ganze Paketdatei inkl._meta.description, in der Ausgabe nicht enthalten).Spiegelt
template_sha256aus ellmos-ai/bach#334. Blueprint unverändert, Wert:2e72c000d1aaf00c8643082bd7efe3d80a028817c050f20b588938cad19646c8.Tests
pytest 145 passed, 1 skipped; ruff sauber; Consumer-Install-Test (
GITHUBBOT_CORE_CONSUMER_TEST=1) grün. Neu: gepinnter Hash, unabhängige Nachrechnung, Änderung bei schema/id/blueprint, keine Änderung bei version/_meta.Version 0.2.1, kein Tag, nicht gemergt.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E