feat(swm): source_patch modela tarballs además de git (Fase 4)
Mutation::SourcePatch y RecipeInline ganan campos repo/commit XOR tarball/sha256 (Option, serde-default ⇒ compat con .swm git existentes), resueltos por swm::swm_source_kind con la misma regla que recipe::Source::kind. swm_bridge sintetiza la receta según el modo; hammer export reconstruye fuentes tarball como source_patch en vez de caer a file_drop (provenance fina recuperada). Prompt del traductor y roadmap actualizados. Tests nuevos para tarball + XOR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7c099afe4f
commit
0f42c38106
+4
-2
@@ -94,8 +94,10 @@ pre-requisito de validación.
|
||||
- [x] Provenance en `export`: mapa artefacto→receta vía sidecar `.hammer/recipe.toml` que
|
||||
`hammer-build::build` escribe dentro del artefacto antes de sellar. `hammer export`
|
||||
agrupa eventos por `artifact_hash` y emite UN `source_patch` por grupo cuya receta
|
||||
sea recuperable; lo demás cae al fallback `file_drop`. Source `git` modelado;
|
||||
`tarball` cae a file_drop con warning (pendiente extender SourcePatch).
|
||||
sea recuperable; lo demás cae al fallback `file_drop`. Source `git` **y `tarball`**
|
||||
modelados: `Mutation::SourcePatch` (y `RecipeInline`) llevan campos `repo`/`commit`
|
||||
**xor** `tarball`/`sha256` (resueltos por `swm::swm_source_kind`, misma regla que
|
||||
`recipe::Source::kind`); `hammer export` reconstruye ambos sin caer a `file_drop`.
|
||||
- [x] Firma `signature` (ed25519) y `TrustStore` local. `hammer_core::sign`: `KeyPair`
|
||||
(genera/carga/escribe claves), `TrustStore::load(dir)` (lee `*.ed25519.pub`),
|
||||
`Swm::verify_signature(&trust) → SigStatus` (`trusted`/`unknown-key`/`bad-sig`/
|
||||
|
||||
Reference in New Issue
Block a user