Repository navigation
feat: read the cause of a jubilant wait timeout from the status it prints - #19
Open
tonyandrewmeyer wants to merge 1 commit into
Open
tonyandrewmeyer wants to merge 1 commit into
tonyandrewmeyer wants to merge 1 commit into
Conversation
…ints When `jubilant.wait()` times out, pytest's summary line only says "wait timed out after 900s". The reason is in the `Status(...)` that makes up the rest of the message, which the parser dropped, so the model had nothing to base a likely root cause on. The signature now lists the apps and units that were in error or blocked in that dump (for example `tempo/0: error (hook failed: "start")`), and the prompt says when that supports a cause. The enricher also now logs the envelope's routing decision, confidence and dedup reason. Those aren't posted anywhere, so until now there was no way to tell afterwards why a run was routed where it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
I ran this on my fork with a canary that prints the real summary and |
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.
When
jubilant.wait()times out in an integration test, the enricher now picks the apps and units that were in error or blocked out of theStatus(...)that jubilant prints with the timeout, and the prompt says that an app in error there supports a likely root cause. Before, pytest's summary line only said "wait timed out after 900s", the rest of the message was dropped, and the 40-line tail ended up being the storage part of the status dump. So canonical/operator#2834 had no likely root cause, although the log showedtempoinerror (hook failed: "start")in one job and"upgrade-charm"in the other. Run on those two job logs, the parser now givestempo: error (hook failed: "start")and the same fortempo/0.--tb nativethe same dump is also in the traceback, and reading both would list everything twice.:sig=markers still match.