Skip to content

id: F12.6 audit log and OpenTelemetry export #1063

Open

Description

@dezren39

F12.6 — Audit log and telemetry

From the Phase 12 plan (.opencode/plans/phase-12-platform-flexibility.md, workstream B):

A structured audit log of administrative actions and provider use, with OpenTelemetry export. Builds on F11.7 (host metrics, #553).

Exit: every admin frame produces an audit line, and a test replays the log to the final grants.

Coordination (2026-10-26 reprioritization, per Drew): every id roadmap item now has its own GitHub issue, and priority encodes the order: (1) the path to Phase 12 — now + priority/high; (2) Phase 12 itself — next; (3) Phase 13 and long-term ideas — priority/low. The dashboard mirrors this list (org Project "Developing Today" #4, Area id-train; Grist Program roadmap, Area id). If this item turns out to be blocked, wrong, or superseded, park or close it with a note rather than letting it stall the queue — dropping an issue is always allowed; silently stalling is not.

Activity

  1. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  2. added
    priority/normalOrdinary priority (the default)
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    nextOrg Project gate: queued next — orchestrator adds to the board
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    on Oct 27, 2026
  3. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane B shift
    • Session / ID: queue task 2336 (triage)
    • Found via: queue claim
    • Task: Triage verdict for id: F12.6 audit log and OpenTelemetry export #1063 (F12.6 audit log and OpenTelemetry export).
    • Expectation: Verdict with fresh-HEAD citations + follow-up route — both delivered below.
    • Links: slice-1 fix task 4885 (queued, ungated); packet: hidden_files/packet-1063-code-fix.json

    Triage verdict: CONFIRMED — no structured audit log, no OTEL export; foundation already landed, route is a sliced slice 1

    Evidence (fresh, current main b56ccda5c, 2026-10-31 21:06 CDT, laptop primary origin/main):

    • pkgs/id/Cargo.toml:86-87: tracing + tracing-subscriber (env-filter) only — no opentelemetry dependency, no OTLP exporter anywhere in pkgs/id.
    • "Audit" in pkgs/id/src is journal annotation only: world/handle.rs:576/736 and world/actor.rs:86/133 record a moderator/builder participant "for the audit journal"; world/core.rs:295/299 are audit-only journal comments. There is no audit record type, no sink, and nothing replayable.
    • The auditable surface is enumerable: the world actor's admin commands in pkgs/id/src/world/actor.rs (granted-set change ~L144, ceiling replace ~L150, runtime profile ~L155, AdminScheduleAt/AdminCancelSchedule, isolation, cross-world force), and provider-use accounting already exists as CapUsage in world_caps.rs.

    Dependency state: the foundation this builds on — #553 (F11.7 host metrics, Prometheus endpoint, tracing spans) — is CLOSED. Nothing gates slice 1.

    Route — sliced, because the full F12.6 is effort/l:

    • Slice 1 enqueued as queue task 4885 (kind small_fix, packet packet-1063-code-fix.json, ungated): one structured audit record (timestamp, world, authority/actor, action, outcome — never credentials) for every admin command, accepted or refused, through a single sink; provider-use records (grant / denial / first-use grant) from CapUsage in the same shape; and the issue's own exit test in miniature — replaying a scripted session's audit log reconstructs the final grants and ceiling exactly. The PR states the sink choice (reserved tracing target vs dedicated audit journal) and why.
    • Slice 2 (not yet enqueued): OpenTelemetry/OTLP export of these records. Enqueue it when slice 1 lands — exporting a log that does not exist yet is not a coherent packet.

    This issue stays open (tracker for both slices) with queue/queued for task 4885.

  6. 39 remaining items

  7. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    work/assignedQueue worker lifecycle state
    on Nov 1, 2026
  8. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 6819 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  9. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestmode/onlineFully doable remotely: design, config, code, cloudnextOrg Project gate: queued next — orchestrator adds to the boardpriority/normalOrdinary priority (the default)source/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions