Repository navigation
fix: keep every answer from repeated provider blocks - #255
Merged
Merged
Conversation
Keep every overlapping report’s reasons and attribution evidence before choosing one home, preserving existing claim precedence and ambiguity (§FS-001-forge-interface.6.1).
vjovanov
force-pushed
the
fix/issue-253
branch
from
November 5, 2026 19:40
508f222 to
6e740ac
Compare
vjovanov
marked this pull request as ready for review
November 5, 2026 19:40
The rebase onto main brought batched, aliased issue comment reads (§FS-001-forge-interface.8.3), which the #253 fixture forge refused as an unknown query. Answer each aliased read from the same four issues.
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.
Closes #253
With two
github-issuesblocks answering[1 2 3]and[4],ephor refresh javelin --quietpreviously kept only whichever block finished last and exited 0. It now retains[1 2 3 4]in either completion order.Both project
providersand sitesourcesretain every contribution under the existing provider identity. Each configured block contributes to that provider's slot, as clarified in §FS-001-forge-interface.9. Overlapping subjects retain their combined reasons. Shared reports also combine every report's attribution evidence before placing the subject once, preserving existing precedence and ambiguity rules. Combination and completeness are established before attribution or persistence publishes an answer (§AR-008-pipeline.2).Any failed contribution makes the whole provider slot incomplete. Every distinct diagnosis remains visible, and the previous whole complete slot stays labelled last-good without advancing its timestamp or cursor. A successful subset cannot replace it as current; without previous data, the failure remains explicit and no rows are invented. A later complete answer replaces the old slot and clears failure state, including when empty. Discovered task stores of the same kind follow the same completeness and failure rule (§FS-001-forge-interface.6.1).
Refresh exits count actual contributions: mixed success and failure gives exit 4; every attempted contribution failing gives exit 3. Empty successful answers count, while idle projects and cached last-good data cannot turn total failure into partial failure. Five existing E2E-004 store-only failure expectations now require exit 3 because their sole attempted store failed. The manual explains repeated blocks, incomplete answers and recovery. Configuration shape, public provider identity, cache schema and binding/move policy are preserved. Query-cost work in #252 is separate.
Eight enabled regressions in
E2E-065-every-provider-contribution-countscover project and site answers, overlapping reasons and placement evidence, mixed and total failures, whole-slot last-good/recovery, and discovered stores. The overlapping shared-report regression failed before the attribution repair and passed afterward: both block orders now yield one project row with both reasons and no duplicate in the unattributed bucket. All eight passed with zero ignored tests.Local validation at
508f2229bffinishedREADY: yeson the first gate run, in 8m02s:[1 2 3 4]in both forced completion orders and all six unheld turns; mixed failure returned exit 4 with a diagnosis in either order.pre-commit run --all-filespassed Rust formatting, the warnings-as-errors locked all-target build, locked all-target Rust tests, Python tests, CI-pinned grund 0.18.0 check/format, file budgets and content guards.check_boundary.pyandcheck_parity.pypassed.TMPDIR, including all eight issue-253 regressions with none ignored.These fixtures use an offline forge. Hosted CI and merge verification remain for shipping; the generated workflow summary below covers recorded invocations before shipping.
AI workflow: `rhei`, 13 agent invocations across 1 model; 8 tasks completed, 8 in progress.
github-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 1) — cdx, openai/gpt-6.1-sol — 1m43s — 523.7k in / 3.5k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 2) — cdx, openai/gpt-6.1-sol — 3m09s — 817.3k in / 7.0k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticket.specifyspecify — cdx, openai/gpt-6.1-sol — 11m32s — 4.1M in / 26.2k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 3) — cdx, openai/gpt-6.1-sol — 2m07s — 629.6k in / 5.0k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticket.implementimplement — cdx, openai/gpt-6.1-sol — 12m18s — 5.4M in / 22.9k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 4) — cdx, openai/gpt-6.1-sol — 1m53s — 578.2k in / 4.5k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticket.review-1review — cdx, openai/gpt-6.1-sol — 6m00s — 2.8M in / 14.5k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 5) — cdx, openai/gpt-6.1-sol — 1m53s — 493.2k in / 4.0k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticket.fix-1fix — cdx, openai/gpt-6.1-sol — 14m52s — 5.9M in / 29.5k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 6) — cdx, openai/gpt-6.1-sol — 2m02s — 729.7k in / 4.8k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticket.review-2review — cdx, openai/gpt-6.1-sol — 2m45s — 1.2M in / 6.6k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 7) — cdx, openai/gpt-6.1-sol — 1m54s — 840.2k in / 4.4k outgithub-issues-agent-grounds-ephor-253-implement-fba34977.ticketsupervising (visit 8) — cdx, openai/gpt-6.1-sol — 1m59s — 527.3k in / 4.0k out