fix: restore bugfixes silently dropped by the v0.5.0 release commit - #306
Open
atulya-singh wants to merge 1 commit into
Open
fix: restore bugfixes silently dropped by the v0.5.0 release commit#306atulya-singh wants to merge 1 commit into
atulya-singh wants to merge 1 commit into
Conversation
The v0.5.0 release commit (12d3fd8) appears to have been branched from around 2026-04-09 and squashed onto main on 05-19, so everything merged in between was reverted without any mention of it. Fixes dated 04-06 to 04-08 survive intact; almost everything from 04-10 onward is gone. Restores three correctness fixes whose removal is unambiguous, each of which maps to an issue that is currently closed but reproducible again at HEAD: - Doctor gateway probe: health.py was back to `method="HEAD"` on /models. Gateways that reject HEAD but serve GET fine report a false doctor failure (aiming-lab#292, aiming-lab#241). - SOTA hallucination (aiming-lab#238): the release restored the exact prompt line the fix removed ("State whether SOTA results exist ... and what they are"), and dropped the goal.md disclaimer. The prompt block moved from prompts.py to prompts/ml.py in the refactor, carrying the pre-fix text with it, so this reads as an artifact of the squash rather than intent. - Search plan schema variants (aiming-lab#243): _literature.py was back to `plan.get("search_strategies", [])`, so plans returned as search_phases/phases or with dict-wrapped queries silently yield no queries. aiming-lab#234's retry fix was reverted the same way; that one is already restored in PR aiming-lab#304, so it is deliberately not touched here. Deliberately NOT restored, because removal may have been intentional and that is the maintainers' call: the Gemini native adapter (aiming-lab#227, llm/gemini_adapter.py is deleted and no gemini preset remains) and the Volcengine/BytePlus presets (aiming-lab#240, merged in 84dad0a — the release's own parent — and now absent from PROVIDER_PRESETS entirely). Tests: the aiming-lab#239 tests were dropped too and are restored. Added coverage for the doctor probe. aiming-lab#243 shipped with no tests, which is a large part of why it vanished unnoticed; its parsing is inline in a heavily-coupled stage function, so it stays untested here.
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.
I went looking for the cause of one reverted fix (#234, restored in #304) and found it wasn't a one-off. The v0.5.0 release commit reverted most of a month of merged PRs.
What happened
12d3fd8("release: AutoResearchClaw v0.5.0") is a single squashed commit — 318 files, +42,268/−8,632 — sitting directly on top of84dad0a. Judging by what survived and what didn't, the v0.5.0 work was branched around 2026-04-09/10 and landed on 05-19, overwriting everything merged in between. Nothing in the commit mentions reverting anything.The date cutoff is unusually clean:
ad806b5MiniMax preset URL / from-stage28478ccMCP path traversal, dispatcher failover5dc7fccResponses API / MiniMax 404be89838HITL collab fixesafccebescripted HITL adaptere6a6dfaperf: lift regex compilation (#231)7b57457--from-stagewithout--output(#217)684ddb2Gemini native adapter (#227)8ec230dretry error tracking (#234)9f8d11ddoctor gateway probe61a92d8Volcengine/BytePlus presets (#240)28508f2SOTA hallucination (#239 / fixes #238)9f15247search plan schema variants (#243)Everything ≤04-08 survives; almost everything ≥04-10 is gone.
61a92d8is the sharpest case — it came in via84dad0a, the release commit's own parent, and was wiped by its own child.I verified each of these against HEAD rather than trusting a diff heuristic — the refactor moved
prompts.pyinto aprompts/package, so "file gone" needed checking by hand.5dc7fcclooked lost by line-matching but its content genuinely moved intoprompts/ml.py; it's fine.What this PR restores
Three correctness fixes whose removal is unambiguous, each mapping to an issue that's closed but reproducible again at HEAD:
Doctor gateway probe —
health.py:177was back tomethod="HEAD"on/models, byte-for-byte pre-fix. Gateways that reject HEAD but serve GET normally get reported as unreachable, which is what #292 and #241 were about.SOTA hallucination (#238) — this one is the clearest evidence of an accident rather than a decision. The release didn't just drop the fix, it restored the exact prompt line the fix removed:
The
goal.mddisclaimer is gone too. Notablyprompts/ml.py:182still has the anti-fabrication line from5dc7fcc(04-07) while line 186 has the pre-#239 text (04-20) — the file is a snapshot from between those two dates, which is exactly the squash artifact you'd expect.Search plan schema variants (#243) —
_literature.pywas back toplan.get("search_strategies", []), so a plan returned assearch_phases/phases, or with dict-wrapped queries, silently produces zero queries.What this PR deliberately does not restore
These may have been removed on purpose, and that's your call, not mine:
llm/gemini_adapter.pyis deleted and nogeminipreset remains. Cleanly removed, no dangling imports, so this could well be intentional.PROVIDER_PRESETSentirely (HEAD has: anthropic, deepseek, kimi-anthropic, minimax, novita, openai, openai-compatible, openrouter), andtests/test_volcano_provider.pywas deleted.e6a6dfa(perf: lift repeated regex compilations to module level #231) — the regex hoisting is undone (_helpers.py:527compiles per-call again). Perf only, and a separate concern.7b57457(fix: --from-stage without --output now finds existing run directory #217) — the fix survives, but its 212-linetests/test_from_stage_run_dir.pywas deleted, so it's now unprotected.Happy to send any of those as follow-ups if you confirm they weren't intentional.
Testing
pytest tests/→ 2799 passed, 56 skipped (2797 on main + the 2 tests added here).#239's tests were dropped by the release too, so they're restored: the
test_rc_prompts.pyguard, and thetest_rc_executor.pyassertion that had to change becausegoal.mdnow leads with the disclaimer. I added a probe-method test for the doctor fix. I checked the new tests actually fail against un-restored source rather than passing vacuously:#243 has no test and I didn't add one. Its parsing sits inline in
_execute_search_strategy, which needs run-dir artifacts, adapters and an LLM path to drive, so any test I wrote would be mostly mock scaffolding. Worth noting the original also shipped without tests — which is a large part of why it disappeared unnoticed for three months. If you want it covered, extracting the plan-parsing into a helper would make it a one-liner to test; happy to do that separately.Worth considering
The single most useful change here isn't in the diff: whatever produced
12d3fd8should rebase rather than squash onto main, or at minimum diff againstmainbefore landing. Five merged community PRs were reverted with no notice, and the only reason any of it surfaced is that I chased an unrelated 429 error message. I'd suggest a CI check that fails when a PR deletes a test file it didn't add — that alone would have caught #217, #240 and #227.I'd also hold off closing #238, #241, #292 and #243 as fixed until this (or an equivalent) lands, since all four currently reproduce on main.