Repository navigation
fix(cli): clarify readiness and configuration refusals - #4702
Merged
Merged
Conversation
|
ScriptedAlchemy
marked this pull request as ready for review
November 3, 2026 02:09
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.
Problem
The readiness timeout text included the word “reached,” making a failed wait easy to misread. Configuration decoding also discarded the actionable missing-field reason, so a project-layer request without
project_idproduced only a generic contract error.Changes
wait: timed_out; last state: ...while preserving the typed timeout code and process exit 75.missing field project_id.application_surface_invalid_request, nonretryable classification, and rejection before dispatch.The diagnostic comes from the caller's submitted request and existing validators, without additional profile or store reads.
Verification
Passed 6 focused tests: 3 canonical decoder regressions, 2 CLI unit tests (missing project identity and readiness wait outcomes), and the real application configuration-batch behavior test.
A separate direct invocation of the compiled CLI also passed: a project-layer request without
project_idreturns JSONapplication_surface_invalid_request,retry: never, the precise missing-field message on stderr, and process exit 1.Local limitation:
tool_json_reports_argument_refusals_as_typed_problemscompiled but failed during daemon fixture setup, before its assertions, withOperation not permitted. An independent socket probe confirms this environment denies Unix socket creation. The daemon-backed subprocess test requires hosted CI; it is not counted as a pass. The timeout unit test checks the typed result and wording; the existing process-exit mapping to 75 is unchanged.Local validation used the combined worktree for #4698–#4703 with pinned Rust 1.99.1. Native Cargo compilation includes #4703 and the checked-in
scripts/bazel/patches/grafeo-core-read-allocation.patchapplied to Cargo's pinned Grafeo checkout, matchingMODULE.bazel; dependency revisions and the lockfile are unchanged. Profile fixtures ran on supportedtmpfsbecause this container'soverlayfilesystem is rejected by existing storage admission. Production project admission remained enabled. Formatting, whitespace checks, and independent source review pass. Hosted CI still needs to verify each PR branch independently.Refs #4451. The prose-query search-ranking complaint and other remaining issue requirements are not claimed as fixed by this diagnostic change.