Repository navigation
jobs: log which check rejects a manifest - #3060
Open
colinmegill wants to merge 1 commit into
Open
colinmegill wants to merge 1 commit into
colinmegill wants to merge 1 commit into
Conversation
When a claimed attempt's output manifest is refused, the daemon records the transition reason `manifest_invalid` but collapses every distinct cause to that one opaque reason and logs nothing more: a validator field (too large, a bad embedding-spool descriptor, a schema field), any result-staging check (embedding spool, a family spool, a digest, a byte bound, a receipt), and a finalize-time invalid_output all look the same in the log. So an operator cannot tell which check refused a specific conversation's output. Emit one additive `polis_jobs.manifest_reject/1` line naming the failing check next to the unchanged transition. The stored reason and the poison code stay `manifest_invalid`, so poison detection and the transition schema are unchanged, and a distinct schema keeps the line out of the transition stream its readers parse. The integration test for refused manifests now asserts the log names a check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018NVGBuYCk4EZmiz4csUv9s
This branch has not been deployed
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.
Observable change
When the job daemon refuses a claimed attempt's output manifest, it now writes one
polis_jobs.manifest_reject/1log line naming the specific check that failed — a manifest-validator field (e.g. the manifest is too large, or a bad embedding-spool descriptor), a result-staging check (the embedding spool, a family spool, a digest, a byte bound, a receipt), or a finalize-timeinvalid_output. The attempt's transitionreasonand the poison code are unchanged (manifest_invalid); this is an additional, additive diagnostic line on a distinct schema, kept out of the transition stream its readers parse.Why
A refused manifest was recorded only as
manifest_invalid, with every distinct cause collapsed to that one opaque reason and nothing else logged. When a large conversation's result manifest was refused, it was not possible to tell from the daemon's log which check rejected it. This line makes a rejection diagnosable from the log alone.Scope / safety
is_poison_code) and thepolis_jobs.transition/1schema are untouched; the storedpq_failreason staysmanifest_invalid.Tests
cargo fmt --check,cargo clippy --all-targets -D warnings(default andjobs-integration),cargo test(unit + thejobs_integrationsuite). The refused-manifest integration test now asserts the daemon log names a check.🤖 Generated with Claude Code
https://claude.ai/code/session_018NVGBuYCk4EZmiz4csUv9s