Repository navigation
feat(client-contract): add the timed_out no_data reason - #19
Merged
Merged
Conversation
Search gives a part its request deadline cut short a no_data reason of its own. The registry and actions.json gain timed_out, with action ask_data_question and gap kind timed_out, which actions.schema.json now admits. The name keeps clear of the client code timeout, a transport timeout with action report.
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.
Search answers a part that its request deadline cut short with a no_data reason of its own, so a client can tell "Search ran out of time" from "Search found nothing". DevelopmentFinanceObservatory/apis#98 introduced that reason as
timeout, which is already the client code for a transport timeout, with actionreportand no gap kind. A consumer that looked up the action by code would tell the user to report a part that is worth sending again.registries/codes.json(and its copy underpython/spec-kit) gains the active refusaltimed_out, owned bysearch, mapped onsearch.resolvefor theraw_text,parsedanddataset_resubmitdoors on theno_data_reasonchannel, the same doors asvariable_not_resolved.actions.jsongains its row with actionask_data_questionand gap kindtimed_out, andactions.schema.jsonadmitstimed_outas a gap kind;scenario.schema.jsonand the capture and validator tools already used that gap kind for parts flagged bydiagnostics.timed_out. Thetimeoutentry is unchanged. apis renames its reason totimed_outand pins this commit in DevelopmentFinanceObservatory/apis#98.The schema has no
retryaction, so the row takesask_data_question, the action every other no_data reason without a choice takes.Testing:
tools/validate_registry.py(205 entries) andtools/validate_client_contract.py(102 action rows, 118 scenarios) pass;tools/tests519 passed,python/client-contract78 passed,python/spec-kit259 passed. A new validator case drops thetimed_outrow and expects the validator to refuse.