-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Context
PR #94 introduced --dlq for opt-in error classification during builds. GPT review raised valid concerns about partial-build semantics that are documented but not fully enforced by the system.
Open items from review
1. Downstream artifact metadata
When upstream artifacts are DLQ'd, downstream layers (monthly rollups, core memory) build from a reduced input set. Their provenance accurately reflects the inputs they received, but nothing on the artifact itself indicates it was built from incomplete inputs. Consider:
- A
partial_inputs: truemetadata flag on artifacts whose parent layer had DLQ entries - Or a
missing_parentsfield listing DLQ'd artifact descriptions
2. Release gating
synix release currently logs a warning when the source snapshot has DLQ entries, but does not block. Consider:
- A
--allow-partialflag (or--strictto block) - Persisting DLQ summary in the release receipt so downstream tooling can check
3. Classifier robustness
The current LLMErrorClassifier uses regex patterns on exception message strings. This is fragile across:
- Provider SDK version changes
- Different providers (Anthropic vs OpenAI vs compatible APIs)
- Localized/wrapped error messages
Consider also checking exception class hierarchy (anthropic.BadRequestError, openai.AuthenticationError) as a more stable signal, falling back to regex.
4. Timeout classification
Concurrent path hardcodes 600s timeout as fatal. Sequential path has no equivalent timeout. Should timeouts go through the classifier? Should 429/5xx post-retry-exhaustion be DLQ instead of fatal?
5. Search/index behavior after DLQ
When episodes are DLQ'd, the search index omits them (correct), but there's no test or documentation confirming that search results don't reference DLQ'd artifacts via stale provenance chains.
Current state (what's already handled)
- DLQ is opt-in (
--dlqflag, default is fail-hard) - DLQ entries persisted in snapshot manifest
- Release engine warns on partial snapshots
- Per-layer DLQ counts in CLI summary
- JSONL structured log records all DLQ events
- 24 tests covering classification, persistence, downstream builds
References
- PR feat: error classifier + DLQ for non-fatal build failures #94: feat: error classifier + DLQ for non-fatal build failures #94
- GPT review comments on feat: error classifier + DLQ for non-fatal build failures #94
docs/cli-ux.md(DLQ section)docs/entity-model.md(manifest schema)