Repository navigation
test: pin three checks the reviews of #71, #153 and #105 found unpinned - #198
Conversation
… found unpinned - intel#71: `GitTree.resolve` refuses a path that climbs out of the tree after a directory link (`docs -> real`, then `docs/../../x.md`). With that check disabled, the read failed later as "links to nothing" and the suite passed. - intel#153: a patch that adds only an MCP server, or only a file an agent can use, still gets an `uptake` record. Gating `uptake` on the files alone, or on the servers alone, passed the suite. - intel#105: the catalog's competitor cards keep their descriptions. Building them with `description=""` passed the suite. Signed-off-by: Anton Volkov <antonwolfy@gmail.com>
|
@exai-bot /review |
exai-bot
left a comment
There was a problem hiding this comment.
Note
AI-generated review of c0b5b46c63c4, requested by @vchamarthi, using the default review skill. It can be wrong: verify a finding before acting on it. React with a thumbs up or down on a finding to tell the bot whether it helped.
Model us.anthropic.claude-sonnet-5-5, effort default, 9 of 80 turns, 0.6 of 40 minutes, 269k in / 3k out tokens.
Tests-only change that pins three previously unpinned checks: the second escape check in GitTree.resolve, repo run uptake for a patch with only a server or only a file, and the description kept on catalog_competitors cards. I found no defects. I traced the escape-check test by hand through source.py: docs/../../x.md goes through docs -> real to ../x.md, so it trips the check at line 230. With that check removed it would fail later as links to nothing, as the description says. The two halves of KIT_PATCH are sliced cleanly. FAKE_TOOL_USES is read by the fixture in the [name, input] form the new parametrization uses. test_repo_budget.py is still under the 1000-line test cap.
No issues found.
Not verified
I could not run the tests or the mutants. The claim that each new test kills its mutant rests on reading the code and the author's stated runs. I did not read the uptake gating code in repo_run, so the two uptake mutants are unchecked.
vchamarthi
left a comment
There was a problem hiding this comment.
**No blockers ** CI at the head is not green (0 failing, 18 pending).
No defects found; the three new tests each reach the check they pin. Traced at c0b5b46: docs/../../x.md with docs -> real normalizes to ../x.md after the hop and raises at the second escape check in GitTree.resolve (_norm keeps .., so the first check cannot catch it); SERVER_ONLY_PATCH and FILE_ONLY_PATCH each make one element of uptake_of empty, so any(uptake_of) in repos/runner.py:231 is the only gate both cases pass through; catalog_competitors builds Candidate(name=s.name, description=s.description), which the tuple assertion now checks.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #198 +/- ##
=======================================
Coverage 91.78% 91.78%
=======================================
Files 223 223
Lines 27623 27623
Branches 4549 4549
=======================================
Hits 25354 25354
- Misses 1606 1607 +1
+ Partials 663 662 -1 🚀 New features to boost your workflow:
|
Summary
Three test gaps from the reviews of #71, #153 and #105: in each, a mutant of the new code passed the full suite. The authors fixed the rest of each thread; these parts were left. Only tests change.
Changes
GitTree.resolve(source.py:229). The new test usesdocs -> real, thendocs/../../x.md, and expectspath escapes the repository. With the check disabled, the read failed later aslinks to nothing: ../x.md, and the suite passed.repo runrecordsuptakefor a patch that adds only an MCP server, and for one that adds only a file an agent can use. The patches are each half of the existingKIT_PATCH. Gatinguptakeon the files alone (if uptake_of[0]) or on the servers alone passed the suite.catalog_competitorskeeps each card's description, which is what the model chooses by. Building the cards withdescription=""passed the suite.Risk
None: tests only. No changelog fragment, since nothing under
dokimi/dokimi/changes.Testing
On a Linux review host, at
8fc3cce(onmain506f7ba):make ci-local: 29 passed, 0 failed, 7 skipped (the Docker catalog smoke,test-latest, thecli-surfacepackaging step, conda-forge-deps without micromamba, docsdeploy, the pip-audit report, semgrep). 7,384 tests passed, 1 skipped.if False:for the escape check: 1 failed intest_repo_budget.py;if uptake_of[0]:andif uptake_of[1]:: 1 failed each intest_repo_uptake.py;description="": 1 failed intest_novelty_routing.py.main92d92d3 (test(llm): pin provider-call budgets for judge, panel, answer and validation paths #170, tests only) before opening; with the ten follow-up branches merged together, the full suite (7,447 passed, 1 skipped), the growth check,mypyandruffpass.Checklist
pytestpassesruff,mypy, and schema checks pass.github/.licenserc.yaml)