SIGN IN SIGN UP

fix(uq-publisher): use IHttpClientFactory, send repo-relative graph_path

Address Copilot review on PR #361:

- Register `UnderstandQuicklyPublisher` via `AddHttpClient<,>` (typed
  client) so the framework manages `HttpMessageHandler` lifetimes.
  The constructor now takes a non-nullable `HttpClient`; drop the
  `httpClient ?? new HttpClient()` fallback that leaked undisposed
  handlers in a scoped service.
- Send `graph_path` as a repo-relative, forward-slash path derived
  from `OutputRoot` instead of the absolute server path. The
  understand-quickly registry fetches via `raw.githubusercontent.com`
  and an absolute path was both incorrect and a minor info leak in
  Action logs. Falls back to the file name when OutputRoot is missing.
- Let `OperationCanceledException` propagate out of both broad catch
  blocks so the background worker can shut down cleanly instead of
  converting cancellation into a misleading warning.
- Drop the redundant explicit `await read.DisposeAsync()` after the
  `await using` declaration; switch to a block-scoped `await using`
  so the read stream is disposed before the write begins.
- Log status code + (trimmed) response body on non-success / non-404
  responses to make 401/403/422 triage practical.
- Wrap test temp-dir cleanup in try/finally so a failed assertion
  doesn't leak directories on the CI agent. Add coverage asserting
  `graph_path` is repo-relative, plus a `ToRepoRelativePath`
  unit test using platform-real paths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A
amacsmith committed
175123660bbcfca9d93eb10c65ada46fae5897b1
Parent: 789afd9