Repository navigation
#21 co-core 0.37.0: dead-lettered give-ups publish dead_lettered - #55
Merged
Merged
Conversation
…0 → 0.37.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…7.0 pin (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tered publish_gave_up's fact moves from extraction_error to dead_lettered (cannobserv#536). The handler's own cap stays extraction_error. Goldens: 0 moved (the extract package is unchanged across 0.32.0..0.37.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… DEPLOYMENT.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Refs #21. The Watcher notice and the deploy come after the merge.
What. co-core
==0.32.0→==0.37.0(all three packages), soprocessor_versionbecomes0.37.0+1(LOCAL_GENERATIONstays 1).handler.publish_gave_upnow publishesdead_lettered(cannobserv#536) where it publishedextraction_error.Scope (upstream's, from the release comment on #21):
dead_letteredis published only on the dead-letter path: the consumer's cap, when an escape got past the handler or a publish was refused non-transiently.extraction_error. Upstream accepts that limit: a timeout or crash can't be told from a document that defeats the parser.detailkeeps itsdead-lettered: <DLQ reason>prefix, so the DLQ entry and the fact still agree.dead_letteredfollows.test_a_refused_ack_at_the_cap_adds_no_failure_factstill holds this, unchanged.Catch-up 0.32.0 → 0.37.0, checked in code (
git diff v0.32.0 v0.37.0 -- packages/):canonical_text,spec_fingerprint,resolve_dispatch_essence,util.blobstore/util.hashing,co_core_sync.drivers.blobstore,effects.bus,dead_letter, busexceptions,co_core_aio.bus.changes.py:ProcessingFailureReasongains"dead_lettered", andProcessingFailedEvent's docstring changes. The fields and validators ofContentProcessCommand,ProcessingCompleteEmitandProcessingFailedEmitare unchanged. The rest of the file is the watch pair,FetchPolicyState.generationand theWatchStatusStatelevels, none of which Processor reads.envelope.py/streams.py: additive only (theinfo.watch-events/info.watch-checkstreams and their key rules, plus comments).pyproject.tomlchanges only its version and the sibling floor.Goldens:
co-core 0.37.0: 0 moved. Only theco_corestamp ingoldens.jsonchanged. Real corpus: passes unchanged.Tests: the test of
publish_gave_upis renamed and now assertsdead_lettered. The consumer's give-up tests that go through it (the escape cap, a transiently refused fact, a retried dead-letter, a failed dead-letter at the cap, a dead-letter refused every time) now assertdead_lettered. The handler-cap tests keep assertingextraction_error. Full suite, integration included, on the scratch Redis withchild containment: required (Landlock ABI 6): 650 passed, 14 skipped (environment skips, the same as onmain).Docs: spec (a 2026-10-17 amendment, §4 rows and the #17 prose, D5, §2, §5, §7's pin test, the quick reference, OQ2), docstrings in
handler.pyandconsumer.py, DEPLOYMENT.md's dead-letter line, and AGENTS.md's pin. Plan:docs/plans/2026-10-17-21-dead-lettered.md.🤖 Generated with Claude Code