Adds metadata-only durable runtime/provider/tool audit records with correlation and latency/error codes, liveness/readiness, and credential-safe provider operational status. Resource identifiers are hashed before durable audit persistence.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head adfa5c0697
Evidence:
Exact PR/branch head verified: adfa5c0697512853cafc7c442ec08b125a1f3e30.
PR CI green on exact head: ci/woodpecker/pr/ci pipeline 1720 success.
Runtime/provider audit remains fail-closed before side effects: RuntimeProviderService still awaits the requested audit record before provider lookup/capability/provider invocation, and the regression test verifies provider send is not called when audit persistence rejects.
Durable audit is metadata-only via createRuntimeAuditLogEntry(): explicit allowlist only, content fixed to runtime.provider.audit, no message bodies, tool args/output, credentials, or approval refs. Provider resource IDs are always SHA-256 hashed before persistence/log emission, with canary tests proving raw resource secret material is absent.
Correlation is propagated into durable audit metadata with duration and stable error codes; denied termination records policy_denied, provider failures record provider_error without provider error detail.
Provider health/status and effective policy output are safe-to-expose: provider errors are reduced to provider_unavailable, no endpoints/credentials/request content/error detail are returned, and /health/ready returns only readiness status.
git diff --check clean; no credential material or secret values in the PR diff beyond explicit canary test strings.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head adfa5c0697512853cafc7c442ec08b125a1f3e30
Evidence:
- Exact PR/branch head verified: `adfa5c0697512853cafc7c442ec08b125a1f3e30`.
- PR CI green on exact head: `ci/woodpecker/pr/ci` pipeline 1720 success.
- Runtime/provider audit remains fail-closed before side effects: `RuntimeProviderService` still awaits the requested audit record before provider lookup/capability/provider invocation, and the regression test verifies provider send is not called when audit persistence rejects.
- Durable audit is metadata-only via `createRuntimeAuditLogEntry()`: explicit allowlist only, content fixed to `runtime.provider.audit`, no message bodies, tool args/output, credentials, or approval refs. Provider resource IDs are always SHA-256 hashed before persistence/log emission, with canary tests proving raw resource secret material is absent.
- Correlation is propagated into durable audit metadata with duration and stable error codes; denied termination records `policy_denied`, provider failures record `provider_error` without provider error detail.
- Provider health/status and effective policy output are safe-to-expose: provider errors are reduced to `provider_unavailable`, no endpoints/credentials/request content/error detail are returned, and `/health/ready` returns only readiness status.
- `git diff --check` clean; no credential material or secret values in the PR diff beyond explicit canary test strings.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 53f5414131
Evidence:
Exact PR/branch head verified: 53f541413182a25a0edfd2758911a89eba16fe7c.
Prior approval at adfa5c0697512853cafc7c442ec08b125a1f3e30 discarded after head move; this is a fresh ROR on the new head.
PR CI green on exact head: ci/woodpecker/pr/ci pipeline 1723 success.
Rebase preserved both @mosaicstack/log barrel exports: redaction (redactSensitiveContent, RedactionResult, SensitiveClassification) and runtime audit (createRuntimeAuditLogEntry, RuntimeAuditEvent, RuntimeAuditErrorCode, RuntimeAuditOperation, RuntimeAuditOutcome).
Runtime audit remains metadata-only: fixed log content, explicit allowlist, no message bodies/tool args/tool output/credentials/approval refs, and provider resource IDs are SHA-256 hashed before persistence/log emission.
Fail-closed audit-before-side-effects remains intact: requested audit is awaited before provider lookup/capability/provider invocation, and tests still prove provider side effects do not run when audit persistence rejects.
Effective provider policy/status and readiness remain safe-to-expose: provider errors become stable provider_unavailable, readiness returns only status, and no endpoint/credential/request content/provider error detail is exposed.
git diff --check clean; no credential material in diff beyond canary test strings.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head 53f541413182a25a0edfd2758911a89eba16fe7c
Evidence:
- Exact PR/branch head verified: `53f541413182a25a0edfd2758911a89eba16fe7c`.
- Prior approval at `adfa5c0697512853cafc7c442ec08b125a1f3e30` discarded after head move; this is a fresh ROR on the new head.
- PR CI green on exact head: `ci/woodpecker/pr/ci` pipeline 1723 success.
- Rebase preserved both `@mosaicstack/log` barrel exports: redaction (`redactSensitiveContent`, `RedactionResult`, `SensitiveClassification`) and runtime audit (`createRuntimeAuditLogEntry`, `RuntimeAuditEvent`, `RuntimeAuditErrorCode`, `RuntimeAuditOperation`, `RuntimeAuditOutcome`).
- Runtime audit remains metadata-only: fixed log content, explicit allowlist, no message bodies/tool args/tool output/credentials/approval refs, and provider resource IDs are SHA-256 hashed before persistence/log emission.
- Fail-closed audit-before-side-effects remains intact: requested audit is awaited before provider lookup/capability/provider invocation, and tests still prove provider side effects do not run when audit persistence rejects.
- Effective provider policy/status and readiness remain safe-to-expose: provider errors become stable `provider_unavailable`, readiness returns only status, and no endpoint/credential/request content/provider error detail is exposed.
- `git diff --check` clean; no credential material in diff beyond canary test strings.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Refs #707
Task: TESS-M1-OBS-001
Adds metadata-only durable runtime/provider/tool audit records with correlation and latency/error codes, liveness/readiness, and credential-safe provider operational status. Resource identifiers are hashed before durable audit persistence.
Verification: pnpm typecheck, pnpm lint, pnpm format:check, pnpm test.
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head
adfa5c0697Evidence:
adfa5c0697512853cafc7c442ec08b125a1f3e30.ci/woodpecker/pr/cipipeline 1720 success.RuntimeProviderServicestill awaits the requested audit record before provider lookup/capability/provider invocation, and the regression test verifies provider send is not called when audit persistence rejects.createRuntimeAuditLogEntry(): explicit allowlist only, content fixed toruntime.provider.audit, no message bodies, tool args/output, credentials, or approval refs. Provider resource IDs are always SHA-256 hashed before persistence/log emission, with canary tests proving raw resource secret material is absent.policy_denied, provider failures recordprovider_errorwithout provider error detail.provider_unavailable, no endpoints/credentials/request content/error detail are returned, and/health/readyreturns only readiness status.git diff --checkclean; no credential material or secret values in the PR diff beyond explicit canary test strings.adfa5c0697to53f5414131VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head
53f5414131Evidence:
53f541413182a25a0edfd2758911a89eba16fe7c.adfa5c0697512853cafc7c442ec08b125a1f3e30discarded after head move; this is a fresh ROR on the new head.ci/woodpecker/pr/cipipeline 1723 success.@mosaicstack/logbarrel exports: redaction (redactSensitiveContent,RedactionResult,SensitiveClassification) and runtime audit (createRuntimeAuditLogEntry,RuntimeAuditEvent,RuntimeAuditErrorCode,RuntimeAuditOperation,RuntimeAuditOutcome).provider_unavailable, readiness returns only status, and no endpoint/credential/request content/provider error detail is exposed.git diff --checkclean; no credential material in diff beyond canary test strings.