Preserve error context across command boundaries - #54
Merged
Conversation
Command-layer translations were collapsing operational failures into generic messages and exit statuses, losing the resource and diagnostic details that identify what failed. Route failures through the shared typed error boundary so categories, subjects, details, and category-derived exits survive to the CLI. Intentional command outcomes remain unchanged, including verification findings, empty search results, strict sync aggregation, and uninstall refusal.
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.
Operational failures could lose their resource subject, diagnostic details,
category, and corresponding exit status while crossing command-layer
translations, leaving users with generic errors that obscured the actual
failing operation.
This change routes operational failures through the shared typed error
boundary and preserves context through activation, repository, service,
generation, install, and command dispatch paths. Command execution coverage
now checks the final rendered subject, details, and category-derived exit
behavior.
Intentional command outcomes remain distinct and retain their existing
behavior, including verification findings, no search matches, strict sync
aggregation, and uninstall refusal. Presentation-only allocation and TTY
fallbacks are also unchanged.