Skip to content

feat(session-audit): SessionEvent soft bridge — Sprint A Phase 1 - #51

Merged
fivepanelhat merged 8 commits into
mainfrom
feat/sprint-a-session-events
Aug 21, 2026
Merged

feat(session-audit): SessionEvent soft bridge — Sprint A Phase 1#51
fivepanelhat merged 8 commits into
mainfrom
feat/sprint-a-session-events

Conversation

@fivepanelhat

Copy link
Copy Markdown
Owner

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

  • New aether/session_audit.py
    • Soft-import SessionEventStore / make_event / EVENT_TYPES
    • NullSessionEventStore fallback
    • install_session_event_hooks() — idempotent wrappers on:
      • start_tasksession_start, prompt_received
      • call_tooltool_call, tool_result
      • _execute_skillskill_applied
      • _approve_if_neededapproval_required / approval_granted / approval_denied
      • run_react_loop / run_pipelinesession_end / error
  • aether/orchestrator.py
    • Optional ctor flags: enable_session_events=True, session_event_path, tenant_id
    • Hooks installed at end of __init__ when enabled
  • CHANGELOG.md — Unreleased Sprint A Phase 1 entry

Design constraints (preserved)

  • No hard dependency on coastal-alpine-core in base deps
  • No change to HITL / computer-use / injection-lock policy
  • Payload rules: lengths, tool names, success flags only — no raw goals, no tool outputs, no secrets
  • Fail-soft: emit failures never break the main loop

Testing & Validation

  • Soft path: import and construct AetherOrchestrator() with no Core installed → Null store, normal operation
  • With Core present: events append to local JSONL; same event types as Weaver
  • Existing unit/smoke/computer-use suites unchanged by this PR

Te Tiriti & Cultural Alignment

  • Local-first storage only; no silent exfiltration
  • Supports kaitiakitanga of interaction evidence for HITL review
  • No cultural content or PHI in this change

Checklist

  • Soft-import + Null fallback
  • HITL paths unchanged
  • CHANGELOG updated
  • No secrets in event payloads
  • Optional follow-up: minimal tests/test_session_audit.py (Null + mock Core)

Follow-up

  1. Merge this PR
  2. Tag Core v0.5.7 if not already tagged
  3. Sprint A Phase 2 — provider seams (shared across Core / Weaver / Aether)

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).
@fivepanelhat
fivepanelhat merged commit bbe2e08 into main Aug 21, 2026
10 checks passed
@fivepanelhat
fivepanelhat deleted the feat/sprint-a-session-events branch August 21, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant