Spec cleanup: remove unimplemented artifact dedup semantics from External Results v1 - #323
Merged
Merged
Conversation
Agent-Logs-Url: https://github.com/bg-playground/BGSTM/sessions/ae571118-9d38-4718-bf48-9824c50dd222 Co-authored-by: bg-playground <259109604+bg-playground@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Remove SHA-256 artifact deduplication content from spec
Spec cleanup: remove unimplemented artifact dedup semantics from External Results v1
May 8, 2026
bg-playground
marked this pull request as ready for review
May 8, 2026 19:58
Owner
|
LGTM ✅ — exactly the targeted three-spot edit requested.
The replacement wording is right — calls out that retries can produce duplicates and explicitly bounds the decision to v0.1, so a future reader knows it was deliberate, not an oversight. Closes #321. 🚀 |
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.
This PR aligns the External Results v1 spec with current implementation by removing unimplemented SHA-256 artifact dedup behavior and related error-code claims. It keeps idempotency guidance explicit and intentional for v0.1.
Scope
docs/specs/external_results_v1.md(no code/test/migration changes).Idempotency rules (§d)
external_idError model (§f)
artifact.duplicatefrom the error-code registry.Upload artifact endpoint (§c.7)
409 artifact.duplicate(no change required there).Original prompt
Goal
Resolve issue #321 by selecting option B — remove the SHA-256 artifact deduplication content from the spec, since it is not implemented and we are not implementing it now. Keeps the spec honest with current behavior.
Closes: #321
Scope —
docs/specs/external_results_v1.mdonlyThis is a documentation-only PR. No code changes, no tests, no migrations.
1. Remove the artifact-dedup paragraph from § d
§ d ("Idempotency rules") currently contains an "Artifacts — deduplication by SHA-256" subsection (around lines 429–431) that says BGSTM dedupes artifacts by SHA-256 hash on the same
case_result_idand returns the existing row. This is not implemented in the artifact endpoint shipped in #319.Remove that subsection entirely. Keep the surrounding § d content (case-result dedup by
external_id, requirement-link no-op insertion) intact.2. Remove
artifact.duplicatefrom § f's error-code registry§ f ("Error model" → "Error code registry") lists
artifact.duplicateas a valid response code. Remove that row from the table — there is no code path that returns it.3. Cross-check § c.7 ("Upload artifact") error-codes table
Verify the § c.7 error-codes table does not include a
409 artifact.duplicaterow. If it does, remove it. (#319 already removed the older409row, but double-check during this edit.)4. Add a one-line rationale comment
In the same § d edit, leave a single explanatory line so future readers understand why dedup isn't there:
Phrase it however reads best — the goal is just to make the absence intentional rather than an oversight.
Out of scope
Acceptance criteria
external_iddedup and requirement-link no-op subsections.artifact.duplicate.409 artifact.duplicate.The following is the prior conversation context from the user's chat exploration (may be truncated):
Assistant: 🎉 Nice. Onward to closing out PR #314.
Recap of what #314 needs now that #319 is on
mainmainscripts/smoke/assert.pydetailsfields (case_result_id,kind,size_bytes,filename,content_type). This was the whole reason the audit-log shape was load-bearing.response.idfix. Bump to whatever SHA includes that fix (and readsbgstm:requirementannotations once #316 lands — but for now just theresponse.idfix).external_case_artifactsmigration (l1m2n3o4p5q6) needs to be in the smoke bootstrap's migration sequence. Should be automatic viaalembic upgrade headbut worth a sanity check.Two questions before I dispatch / draft anything
Frameworks-side
response.idfix PR — was that ever dispatched and merged? The earlier log showed it was queued but I don't have confirmation. If it's not merged yet, the pin bump on Add BGSTM external-results smoke workflow pinned to reporter SHA ab5d7c1 with main-branch, audit-log, and artifact-path compatibility hardening #314 has nothing new to point at and we should dispatch that first.[v0.2] BGSTMReporter should transmit
bgstm:requirementannotations and BGSTM should resolve external→UUID for case-result linking #316 status — still open, right? (Reporterbgstm:requirementannotations + BGSTMrequirement_external_idsresolution.) If yes, the requirement-link assertion stays relaxed with a# TODO(#316)comment; if it's quietly merged, we tighten it.Suggested sequence (assuming both above are "still open / not merged")
#316-blocked assertions alone).This pull request was created from Copilot chat.