feat(armor): --detail flag and ID column for full screened content#61
Open
acmck wants to merge 2 commits into
Open
feat(armor): --detail flag and ID column for full screened content#61acmck wants to merge 2 commits into
acmck wants to merge 2 commits into
Conversation
The violations table truncates content to a 60-char snippet with no way to see the rest. Each row now ends with a dim 12-char prefix of the Cloud Logging insertId, and --detail <id> (a unique prefix is enough) renders the matching entry as a full card: direction, match state, filters, template, and the complete untruncated content. Detail lookup matches any filterMatchState so IDs copied from an --all table resolve too, and validates the ID against insertId's character set so the quoted filter clause stays safe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
The
getop armortable truncates screened content to a 60-char snippet with no way to see the rest (short of--json). Now:insertIdgetop armor --detail <id>renders the matching entry as a full card: direction, match state, filters with confidence, template, and the complete untruncated content. A unique prefix of the ID is enough:Design notes
filterMatchState, so IDs copied from an--alltable resolve too.insertId's character set before being quoted into the Cloud Logging filter — no way to smuggle filter syntax through it.insertId:"..."is substring matching; client-side, prefix matches win when unambiguous, otherwise all candidates render (each is a self-contained card).--since(default 24h).Verification
uv run pytest -q— 149 passed (4 new: filter builder incl. any-state and unsafe-ID rejection, full-content render, ID-column render)--detailwith an 8-char prefix resolved a real entry and rendered its full multi-line content with template and location🤖 Generated with Claude Code