feat(identity): accept local http:// endpoints and downgrade mismatches to advisory
Two companion relaxations so `test labeler http://localhost:8080 --did
did:plc:<prod>` can drive the full pipeline against a local copy of a
production labeler:
1. The `labeler::identity::labeler_endpoint_is_https` check accepts an
`http://` DID-doc service endpoint when its hostname is classified as
local. Remote HTTP endpoints still produce a `SpecViolation` with an
error message that now names the local exception.
2. The `labeler::identity::resolved_did_matches_flag` check now emits
`Advisory` (not `SpecViolation`) when the `--target http://<local>`
URL disagrees with the DID document's published endpoint, and
`IdentityFacts.labeler_endpoint` is overridden to the local URL so
every downstream stage (HTTP, subscription, report) talks to the
local copy instead of the published production endpoint. Remote
URL mismatches remain a hard `SpecViolation`.
Adds an `advisory` builder to the identity `Check` enum and a new
`local_http_override_mismatch_is_advisory` integration test that pins
the full rendered pipeline output via snapshot. The pre-existing
`non_https_endpoint_renders_spec_violation` snapshot is regenerated
because the scheme-check error message text changed.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
authored by