docs: document Python Guard degraded capture outcomes - #901
Conversation
Python checkpoint helpers now record metadata.outcome=degraded when an action ran only because on_guard_error=allow and policy did not judge it fully. Teach the five outcome values on the existing capture page and point Python Guard surfaces there. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Match the JavaScript, Python, and Go tab order used on the rest of the capture page so the synced language switcher stays consistent. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Approved
Rationale: Documentation-only PR that adds a new 'Capture outcomes' section describing Python checkpoint helper outcome values, plus short cross-reference pointers on related pages. No code changes, no secrets, no security surface. Screenshot baselines were regenerated for the affected pages. Description accurately reflects the diff.
Summary of Changes
Documents the Python Guard metadata.outcome values (success, degraded, error, denied, unavailable) on the Capture events page, with pointers added from the Python reference, LangChain guard, framework-integrations, reference, testing, and troubleshooting pages. Also updates Linux Playwright screenshot baselines for the pages that grew.
Review: c7f8d991 | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
Resolve framework-integrations screenshot conflicts against main's CrewAI and LangChain JS pages, and keep CrewAI hooks from being documented as recording degraded. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Use the same third-column header on the JavaScript and Python tabs, and spell out that error is the wrapped action throwing, not a thrown guard check. Co-authored-by: David Mytton <davidmytton@users.noreply.github.com>
Documents the capture/Sequence outcome added in arcjet-py#225 (
c86deb2409deae34c36f5c83214f648819af42f0).What changed
Python checkpoint helpers record
metadata.outcome = "degraded"when an action ran only becauseon_guard_error="allow"and policy did not judge it fully.This is capture/Sequence metadata only:
conclusionis stillALLOWorDENYon_guard_erroris still"allow"or"deny"on_guard_error="deny"still blocks those same conditions and still recordsunavailableThe existing Capture events page now teaches the five Python outcome values (
success,degraded,error,denied,unavailable) and thedecision_iddiscriminator on adegradedevent. Short pointers were added on the Python Guard, LangChain, CrewAI, testing, and troubleshooting pages.Accuracy notes
guard_tool/ArcjetMiddleware(andguard_action) go through the checkpoint engine, so they get this.guard_toolalso goes through the checkpoint engine.register_arcjet_hooksrecordssuccesswhen the action proceeds and does not recorddegraded.success,denied,error,unavailable) and do not recorddegraded, verified againstarcjet-guard/src/agents/guarded.ts.Capturedoes not writemetadata.outcome.Merge
Rebased onto current
mainby merging #900, #902, and #903. Framework-integrations screenshot conflicts were resolved and regenerated. CrewAI hooks are explicitly documented as not recordingdegraded.