feat(session-audit): SessionEvent soft bridge — Sprint A Phase 1 - #51
Merged
Conversation
Soft-import Core SessionEventStore; NullSessionEventStore when Core absent. CAT stamp: local-first, optional dep, HITL evidence path.
Wire session_audit into start_task, call_tool, skill_applied, approval_required, and session_end. Soft-dep on Core.
… (Sprint A Phase 1) CAT stamp: local-first JSONL, Null fallback when Core absent, no secrets in payloads. HITL evidence only — Guardrails remain authoritative.
…oks (Sprint A Phase 1) Previous branch state had PLACEHOLDER only. Restored Phase B hardened orchestrator and added soft SessionEvent integration (enable_session_events / tenant_id / path).
This was referenced Aug 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the observability gap between Weaver and Aether using Coastal-Alpine-Core SessionEvent (same vocabulary as Core #27 / Weaver #37).
Soft-import only — Aether remains fully usable when Core is not installed (Null store, zero behaviour change). Events are audit evidence only; Guardrails + ThreatModeler remain the sole decision authority.
CAT stamp: local-first JSONL (
~/.aether/session_events.jsonl), no secrets in payloads, Te Mana Raraunga HITL evidence path.Depends on
Changes
aether/session_audit.pySessionEventStore/make_event/EVENT_TYPESNullSessionEventStorefallbackinstall_session_event_hooks()— idempotent wrappers on:start_task→session_start,prompt_receivedcall_tool→tool_call,tool_result_execute_skill→skill_applied_approve_if_needed→approval_required/approval_granted/approval_deniedrun_react_loop/run_pipeline→session_end/erroraether/orchestrator.pyenable_session_events=True,session_event_path,tenant_id__init__when enabledCHANGELOG.md— Unreleased Sprint A Phase 1 entryDesign constraints (preserved)
coastal-alpine-corein base depsTesting & Validation
AetherOrchestrator()with no Core installed → Null store, normal operationTe Tiriti & Cultural Alignment
Checklist
tests/test_session_audit.py(Null + mock Core)Follow-up
v0.5.7if not already tagged