Skip to content

fix(ingest): #780 the recombination drop notice names its own branch - #789

Merged
jasonssdev merged 1 commit into
mainfrom
fix/780-recombination-drop-notice
Aug 19, 2026
Merged

fix(ingest): #780 the recombination drop notice names its own branch#789
jasonssdev merged 1 commit into
mainfrom
fix/780-recombination-drop-notice

Conversation

@jasonssdev

Copy link
Copy Markdown
Owner

What

The ingest drop notice no longer mislabels #630 recombination drops as wrong-language leaks. The gate's two arms now report separately: the #618 language-vote class keeps its existing notice, and the #630 recombination class gets its own — dropped N title(s) recombined from the source's words, not quoted from it: … — rendered right after it.

Why

On a Spanish-dominant chunked source, 15 gate-neutral titles (Proyecto AFG, Knowledge Recovery System, …) were dropped by the recombination arm and announced as wrong-language title(s). The first title shown was Spanish. The two failure modes call for opposite responses — a language leak points at the anchor and the model, a recombination points at extraction quality — so the merged label sent a whole investigation at the wrong subsystem. The gate logic was right; only the message lied.

How

  • _drop_wrong_language_titles returns (kept, dropped_wrong_language, dropped_recombined); the floor and fail-open paths return both empty.
  • ExtractionReport.recombined_dropped_titles beside the existing field; both chunked call sites (legacy and union) thread it through all three construction sites.
  • _recombined_title_notice in the CLI, same bounded-list shape as its sibling.
  • evals/language_leak probe re-joins the two tuples — it scores the gate as a whole.
  • Tests: gate-level class separation, chunked-path report field, and a CLI test asserting the new wording appears and wrong-language does not.

Review

Gentle AI lineage review-7f5aa406714f4250, high risk, canonical 4R, approved, zero corrections. Two WARNINGs declined deliberately: R2's typed-return suggestion (a positional swap is caught by the class-separation test) and R3's weak-negative-assertion concern (its premise is false — the sibling notice does emit the literal wrong-language token, so the negative assertion is falsifiable).

ruff clean, mypy clean, 5176 passed / 1 skipped.

Closes #780

The #618 gate's two arms fed one merged list, so a #630 recombination drop
(gate-neutral title, not quoted, bigrams non-adjacent) was announced as a
'wrong-language title' -- on a Spanish source, with a Spanish first title
shown, pointing the operator at the language anchor when the real question
is extraction quality. The two failure modes call for opposite responses,
so they now travel apart: _drop_wrong_language_titles returns the two
classes separately, ExtractionReport carries recombined_dropped_titles
beside wrong_language_dropped_titles, and ingest renders a second notice
('dropped N title(s) recombined from the source's words, not quoted from
it') right after the language one. The language-leak eval probe re-joins
the tuples since it scores the gate as a whole.

Review round findings declined deliberately: R2's typed-return suggestion
(a positional swap is caught by the class-separation unit test) and R3's
weak-negative-assertion concern (the sibling notice does emit the literal
'wrong-language' token, so the negative assertion is falsifiable).

Closes #780
@jasonssdev
jasonssdev merged commit 909e612 into main Aug 19, 2026
6 checks passed
@jasonssdev
jasonssdev deleted the fix/780-recombination-drop-notice branch August 19, 2026 12:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ingest: the 'wrong-language title' notice mislabels #630 recombination drops (a Spanish title reported as a language leak)

1 participant