Skip to content

Clarify when HttpClient transport errors need translation - #221

Draft
Wenjie Fan (gggdttt) wants to merge 1 commit into
mainfrom
gggdttt-clarify-http-error-translation
Draft

Wenjie Fan (gggdttt) wants to merge 1 commit into
mainfrom
gggdttt-clarify-http-error-translation

Conversation

@gggdttt

Copy link
Copy Markdown
Collaborator

Summary

Clarify the existing HTTP platform-failure article without changing its fail-fast alternative:

  • Both omitted optional Boolean/runtime propagation and explicit Boolean handling can be valid. Require visible caller, documented error-contract, or concrete user-facing evidence before reporting missing custom transport-error translation.
  • A custom error or label for completed non-2xx responses does not itself establish a transport-error translation requirement. Preserve genuine consumed-false success conversion and non-success response/body defects.

One article changed, four inserted lines. Existing good/bad samples and fixture selection remain unchanged. No engine, general skill, schema, pin, gold, or evidence changes. This is a separate change from #220 and merged #196, based on 86d809b5252aa2fe187ccb9f16bef435bb8c9be6 (live main verified before editing).

Evidence and scope

Motivated by the sealed read-only diagnosis of BC-Bench run 37616085214, under recall-closure work item 649781:

  • Bench e15e5adbc31754e222b9d2e97057fe9c8c2fb9f6 -> engine 0b01ed8c90f3b07cbc693aa8869f84a16ded338d -> BCQuality 8c9385c16fdb1f21afa6ce957420ead73294d06d.
  • The optional-clean root emitted two unsupported custom-message findings at bare GET line 10 / POST line 22; all 19 leaves were silent. The findings acknowledged platform runtime failure, rather than claiming silent success. The supplied source has non-2xx status handling but no caller/error-translation contract establishing why runtime propagation is insufficient.
  • The run had six artifact-valid/scored entries and one cancellation-incomplete entry; 139 completed reviewer records had no observed original schema/semantic generation failures. This is not a 7/7 success or a causal-fix claim.
  • Sealed diagnosis SHA-256: 15220504938d7d558a662a736eec515bb6fdd28c04c131083a5c04d3abea6561; evidence index: c7b382a69fef893e8fb8ffd2fca70458d315f6190ce2ec7c820b8113ef1653ca. Both were verified before editing; evidence was not rewritten.

Local validation before publishing

  • python -X utf8 .github\scripts\validate_frontmatter.py --root .: passed, 0 errors, 2 existing unrelated keyword-count warnings. An initial Windows cp1252 stdout encoding failure was resolved by rerunning the unchanged validator with UTF-8 output.
  • pwsh -NoProfile -File .github\scripts\Test-KnowledgeIndex.ps1 -Root .: passed, 414 articles, deterministic/full index coverage; bounded retrieval round-tripped 414 articles and 715 samples. Existing HTTP source-contract and exact-body reachability checks passed.
  • pwsh -NoProfile -File tools\Test-ReviewFixtures.ps1 -Root . -ChangedPathsFile <session-files>\http-translation-changed-paths.txt -CoverageReportPath <session-files>\http-translation-coverage.json -PrepareDirectory <session-files>\http-translation-prepared: passed, 252 cases covering 126/346 paired articles across 20 domains; changed-article coverage passed without a waiver. Existing report-contract checks passed (8 predicate cases plus executable acceptance cases). This only prepared inputs; it did not invoke a model.
  • git diff --check: passed; inspected one-file, four-line diff.

The existing fixture convention already selects the HTTP good/bad pair. No string-presence tests were added as a proxy for model behavior. Manual normative review covered bare GET/POST with status handling, label present/absent neutrality, explicit caller translation contracts (violated and satisfied), consumed-false defects, non-2xx success parsing, swallowed TryFunction diagnostics, and contextual recoverable-error guidance. The detailed scenario matrix and exact patch are retained in the implementation session handoff, outside the repository.

Limitations

Offline validation proves content/fixture integrity and helper-level exact-body reachability, not actual root/leaf retrieval, correct model silence, precision/recall, or causal correction. The retrieval/evidence-transfer hypothesis remains unproven; the clarification may be redundant with existing fail-fast and precision rules. No fresh live smoke, reviewer/judge invocation, or workflow dispatch was performed. No change to general error-handling guidance or blanket suppression of root findings is intended.

Keep runtime fail-fast and explicit Boolean handling valid; require contextual evidence before demanding a custom transport error.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed draft head cc5c60f37a70963d96aa18ccf1b3fe405bd56146. The clarification is sound: omitting HttpClient's optional Boolean propagates transport/platform errors, and a custom non-2xx response message does not establish a separate obligation to translate transport failures. The text preserves explicit caller/error-contract requirements and continues to reject consumed-false success conversion or response processing after transport failure. Existing canonical fixtures and deterministic registration are unchanged. Exact-head local frontmatter, changed-path fixture preparation (252 cases), review-contract, skill/schema and index/retrieval checks pass; all reported GitHub checks are green. No merge-critical issue found; content is ready when the draft is marked ready for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants