Repository navigation
Conversation
ensureBlobPresent re-stores only on a confirmed missing blob. An errored exists check now logs the real error at critical and fails the request with a generic message instead of blindly overwriting the blob. Replaces the change-001 C4 expectation (maintainer approval required). Spec: docs/changes/020-dedup-no-blind-rewrite.md.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Please reconcile these four points:
|
|
The expectation guard failed because we're changing an existing test expectation here. I approved the fail-closed behavior and applied |
|
@NickSeagull — fresh remediation scope/decision request for #908. Its live head still matches the audit. Auto-merge is off; please keep it off while these substantive issues and evidence gates are addressed. No fixing push has been made, and I will not turn auto-merge back on. PR #908 — proposed narrow finish and historical evidence decisionThis follow-up proposes clearer documentation and one focused regression test. A duplicate upload already fails when the blob existence check returns an error, without rewriting the existing blob. A blob reported missing is still restored. Applications need no code or data migration for this finish. Please approve this exact scope (Gate 1 continuation)
Proposed source of truth remains Historical red evidence: separate decision requiredThe first published commit Please choose:
The current fixed head must not be represented as a new failing C1. Your Suggested explicit reply: “Approve #908 Gate 1 continuation for the five items above, retaining returned-Err/missing-heal semantics and no Local rewrite. For the historical red gap choose [existing receipt / labelled post-hoc evidence], with [receipt/required follow-up].” A maintainer must separately resolve any machine-gate incompatibility; no approval record or red receipt will be fabricated. No new product implementation or race test has been completed in this remediation cycle. Prior audit: 40 ContentDedup examples passed at Current preparation resultThe narrow spec001/spec020/fragment020 wording amendments are prepared locally. Structural spec-check, spec-drift, criteria-locator resolution, fragment validation and diff checks passed. No new runtime or race test was run; no product implementation, commit, source push, regenerated candidate or new CI success is claimed. The historical red-evidence decision and explicit scoped continuation approval remain open. Generated codemap syncI am separately running the upstream codemap generator and repeat-generation checks at this PR's current published head. This addresses the generated-file request only; it is not approval or completion of the substantive audit remediation. Auto-merge remains off. I will not push a codemap-only merge-unblocking update while the serious findings/required decisions above remain unresolved. Generated results will need regeneration again after source/base integration. |
Duplicate uploads fail when the blob existence check returns an error, without rewriting the existing blob. A blob reported missing is still restored. This update strengthens the evidence for the concurrent retry path and corrects documentation; it does not change the already-reviewed fail-closed implementation.
What changed in this update
BlobStore.existserrors. Local filesystem existence semantics are unchanged. Logs use error level viaLog.critical; presence is a check-time guarantee, not permanent availability.Exact verification
Published candidate:
18ef44018d787b01d79e796864d4eb60f258c444; integrated main:7bd77c0fd88a4b56091fc015388df85837e97d96.ContentDedup: 41 examples,0 failures, repeated on final integrated candidate.No hints), codemap-check and repeat-generation passed.expectations-approveddecision; that is not blanket approval of other changes.Limits / remaining review
This tests a deterministic injected state conflict with real filesystem operations, not a PostgreSQL race. Failed best-effort deletion can still leave a provisional object; no universal cleanup guarantee is added. No S3/provider behavior is claimed.
Full
test-all --require-alland testbed have not run: the host5432 database is not owned by this session, several test fixtures hardcode that port, and no active isolated test runtime was available. Those gates remain required; missing dependencies are not skipped-green. Draft CI is not full verification.Historical red-first evidence remains a separate maintainer disposition: review the genuine private receipt if available, or accept a clearly labelled after-the-fact reproduction. No receipt or historical approval was fabricated. The current fixed test passing is not a new failing C1.
This PR remains draft, auto-merge off, until the remaining evidence/full-gate review is resolved. Applications require no code/data migration for this narrow finish. Source of truth: Changes001/020 and the reviewed fragment. Merge/release/deploy remain maintainer actions.