diff --git a/registry.json b/registry.json index 403e04a71..f58454e4b 100644 --- a/registry.json +++ b/registry.json @@ -2,31 +2,31 @@ "modules": { "spark-researcher": { "source": "https://github.com/vibeforge1111/spark-researcher", - "commit": "44743cacee7646823d2addf8aa188f2f51364955", + "commit": "972b1679e1b736741107c74822e3c15892ab4bd5", "require_signed_commit": false, "blessed": true, "summary": "Research, advisory, memory packet, and domain-chip authoring runtime for Spark", "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/spark-researcher", - "commit": "44743cacee7646823d2addf8aa188f2f51364955" + "commit": "972b1679e1b736741107c74822e3c15892ab4bd5" } }, "spark-character": { "source": "https://github.com/vibeforge1111/spark-character", - "commit": "dc85fc8a85c42cde764a80a30d9ada7807a545f2", + "commit": "c5acaacf085b84325aefd3ec34a773f90e743635", "require_signed_commit": false, "blessed": true, "summary": "Persona, voice consistency, scoring, and opt-in character evolution runtime for Spark", "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/spark-character", - "commit": "dc85fc8a85c42cde764a80a30d9ada7807a545f2" + "commit": "c5acaacf085b84325aefd3ec34a773f90e743635" } }, "spark-telegram-bot": { "source": "https://github.com/vibeforge1111/spark-telegram-bot", - "commit": "fefcd56220e45f6b0c709c652cf38fc10ea5d1f6", + "commit": "597b33a19da7b5cdfc4d9c26d50a3d8c6938a777", "verify_ref": "refs/heads/main", "require_signed_commit": false, "blessed": true, @@ -34,48 +34,48 @@ "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/spark-telegram-bot", - "commit": "fefcd56220e45f6b0c709c652cf38fc10ea5d1f6" + "commit": "597b33a19da7b5cdfc4d9c26d50a3d8c6938a777" } }, "spark-intelligence-builder": { "source": "https://github.com/vibeforge1111/spark-intelligence-builder", - "commit": "7442cb476f72a4deedf2a90fc4407bb0b78110df", + "commit": "22cebe0bd83e785ed3f32c98495c0fbd13c9eec5", "require_signed_commit": false, "blessed": true, "summary": "Spark runtime core for identity, memory, and routing", "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/spark-intelligence-builder", - "commit": "7442cb476f72a4deedf2a90fc4407bb0b78110df" + "commit": "22cebe0bd83e785ed3f32c98495c0fbd13c9eec5" } }, "domain-chip-memory": { "source": "https://github.com/vibeforge1111/domain-chip-memory", - "commit": "aae23128776a129decefb4fca98ad6915bf179f8", + "commit": "3ef975db30bd3b1c0e51b251683669147c6884d1", "require_signed_commit": false, "blessed": true, "summary": "Default memory substrate, benchmark pack, and Telegram memory-check chip", "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/domain-chip-memory", - "commit": "aae23128776a129decefb4fca98ad6915bf179f8" + "commit": "3ef975db30bd3b1c0e51b251683669147c6884d1" } }, "spark-voice-comms": { "source": "https://github.com/vibeforge1111/spark-voice-comms", - "commit": "f9bbd8212a866b7b975b0afacbb46ea5fae402df", + "commit": "21a9467e9bd4eebd54b06a72a4c21afcfcd316ee", "require_signed_commit": false, "blessed": true, "summary": "Speech I/O chip for Spark voice transcription, provider onboarding, and spoken replies", "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/spark-voice-comms", - "commit": "f9bbd8212a866b7b975b0afacbb46ea5fae402df" + "commit": "21a9467e9bd4eebd54b06a72a4c21afcfcd316ee" } }, "spawner-ui": { "source": "https://github.com/vibeforge1111/vibeship-spawner-ui", - "commit": "3a9458dfb67adee7e2a0e1e503d68317bd0af8bd", + "commit": "4e81ed21a4e14c735312f56b54f340c9f59ffffa", "verify_ref": "refs/heads/main", "require_signed_commit": false, "blessed": true, @@ -83,7 +83,7 @@ "attestation": { "type": "git-commit-pin-v1", "source": "https://github.com/vibeforge1111/vibeship-spawner-ui", - "commit": "3a9458dfb67adee7e2a0e1e503d68317bd0af8bd" + "commit": "4e81ed21a4e14c735312f56b54f340c9f59ffffa" } } }, diff --git a/src/spark_cli/sandbox/audit.py b/src/spark_cli/sandbox/audit.py index e9c520a9b..6d12504cd 100644 --- a/src/spark_cli/sandbox/audit.py +++ b/src/spark_cli/sandbox/audit.py @@ -37,6 +37,9 @@ def _redact_value(value: Any) -> Any: return value +CANONICAL_AUDIT_FIELDS = ("schema_version", "timestamp", "backend", "target") + + def write_audit_event( backend: str, target: str, @@ -46,12 +49,19 @@ def write_audit_event( ) -> Path: path = sandbox_audit_path(backend, target, home=home) path.parent.mkdir(parents=True, exist_ok=True) + redacted_event = _redact_value(event) + if isinstance(redacted_event, dict): + redacted_event = { + key: value + for key, value in redacted_event.items() + if key not in CANONICAL_AUDIT_FIELDS + } payload = { "schema_version": AUDIT_SCHEMA_VERSION, "timestamp": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), "backend": validate_target_name(backend), "target": validate_target_name(target), - **_redact_value(event), + **(redacted_event if isinstance(redacted_event, dict) else {}), } with path.open("a", encoding="utf-8") as handle: handle.write(json.dumps(payload, sort_keys=True) + "\n")