Issue #476: Bug: identity month_map, unused fetch_profile prefix, and dead stream option
No open PR fixes this and merges clean
0 fix it but don't merge clean, 2 fix it partly. See the board below.
How it breaks
The path is the model's reasoning. Each box is a citation checked against the code.
What's wrong
All three claims are confirmed as dead code, with no functional bug. (1) month_map maps each month abbreviation to itself, so month_map.get(x, x) always returns x. (2) fetch_profile declares a prefix parameter that its body never uses, and every caller passes a string that is discarded.Show full explanation
(3) "stream": False is put in the options dicts in evaluator.py and pdf.py, but OpenAICompatibleProvider.chat only copies temperature, top_p and reasoning_effort from options, and it hardcodes stream False in the request body. I didn't open pdf.py beyond the grep hit at line 93. Caveat: evaluator.py nests options inside a larger dict, and I didn't check whether another provider (for example an Ollama path at models.py:31) reads options["stream"].How to reproduce
- Read transform.py:449-462 and confirm every key equals its value.
- In a Python shell, import the date-parsing function that contains month_map and run it with 'Jan-Mar 2021' and 'Jan 2021'. The output is the same with or without the map lookup.
- Read transform.py:486-494 and confirm prefix is never referenced in the body. Then check the callers at transform.py:531-539.
- Read models.py:451-455 and confirm only temperature, top_p and reasoning_effort are read from options, and models.py:452 hardcodes stream False.
- Remove 'stream': False from the options dicts in evaluator.py:66 and pdf.py:93 and confirm the request body is unchanged.
Evidence
Each citation was checked against the code at e0ece80.
Start of the identity dictionary. Lines 450-461 map each month abbreviation to itself, e.g. "Jan": "Jan".
The lookup returns start_month unchanged, so it has no effect.
prefix is declared, but the body at lines 487-494 never uses it.
A caller passes a prefix that is discarded.
Only these three options are forwarded, so options['stream'] is ignored.
stream is already hardcoded to False in the request body.
Dead option, never read by the provider.
Same dead option.
Pull requests
Verdicts are judged from the diff, not run. Merge status is a real git check against e0ece80.
It deletes the identity month_map by rewriting parse_date_range, but it leaves the unused prefix parameter in fetch_profile and the stream:False options untouched.
It removes month_map and the stream:False entries in evaluator.py and pdf.py, and drops the prefix parameter. But the diff leaves the dev_profile call as `fetch_profile(..., ["dev community", "dev"], "dev")` with the third argument, so that caller would raise a TypeError.
9 PRs that don't fix itShow
It only adds a text_content message in pdf.py and leaves the dead stream option, month_map and prefix in place.
Its pdf.py change adds a text_content message, and the work.jinja change is a prompt edit. It does not remove the dead stream option, month_map or prefix.
It restructures pdf.py into section snippets with retries and keeps `"stream": False` in the options. It does not touch month_map or prefix.
It adds JD scoring and moves `"stream": False` into a new helper, and leaves fetch_profile's prefix and month_map alone.
It adds Codeforces and token-usage features, and it even adds new fetch_profile calls that pass the unused prefix. It leaves the dead stream option and month_map in place.
It adds a Claude Agent provider and an evaluator retry loop that still sets `"stream": False`. It does not touch month_map or prefix.
It reworks the temperature/top_p options in evaluator.py and pdf.py but keeps `"stream": False`. It does not touch month_map or fetch_profile's prefix.
It changes the options dicts to `**model_params` but keeps `"stream": False`, and leaves month_map and the prefix parameter alone.
It changes the options dicts to `**model_params` but keeps `"stream": False`, and does not touch month_map or prefix.
What this packet does not prove
- Citations are checked against the code. The explanation that links them, the order of the chain, and any claim about outside systems (APIs, libraries) are the model's reasoning and are not checked.
- PR verdicts are judged from the diff, not run. No PR was applied or tested.
- PRs were shortlisted because they change a cited line or mention the issue. A fix in another file, or a PR whose line numbers have drifted, is missed, so this is not proof that no other PR fixes it.