Conversation
code-review-graph reviewOverall risk: 0.40 (MEDIUM) — 8 changed function(s)/class(es), 0 affected flow(s), 5 test gap(s) Risk-scored changes
Test gaps
Token savings: this graph-backed report used ~318,738 fewer tokens (~99%) than reading every changed file in full (estimated, chars/4 approximation). Powered by code-review-graph — local-first analysis; no code leaves the CI runner. |
|
Outside this sweep's mission of demonstrated coding-session token savings: this adds a new Robot Framework parser. Bare resource/keyword targets and incomplete setup, teardown and control-flow handling do not yet establish reliable compact cross-file context. |
|
This no longer merges into git fetch origin && git merge origin/staging
# resolve, then
uv run pytest tests/ -q
uv run ruff check code_review_graph/
uv run mypy code_review_graph/ --ignore-missing-imports --no-strict-optional
git pushWhen resolving:
A large integration branch landed on PRs now target |
|
@tirth8205 solved up the readme.md conflicts |
There was a problem hiding this comment.
🟡 Changes recommended
Parser correctness gaps and duplicate or stale README documentation remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds structural Robot Framework support for .robot and .resource files in the parser and code-review graph.
Changes:
- Maps both extensions to the Robot fallback parser.
- Extracts Robot sections, tests, keywords, calls, and imports.
- Adds parser tests and documentation updates.
File summaries
| File | Summary | Review findings |
|---|---|---|
tests/test_parser.py |
Adds Robot parsing coverage. | None. |
README.md |
Documents Robot Framework support. | Nit (3 votes): consolidate duplicate parser-support text and feature tables. |
CONTRIBUTING.md |
Documents Robot parser maintenance. | None. |
code_review_graph/parser.py |
Adds Robot extension handling and structural parsing. | Moderate: support pipe-delimited rows (3 votes), resolve relative resources (2 votes), emit TESTED_BY mirrors (3 votes), and normalize keyword matching (1 vote). |
Review details
Suppressed comments (1)
code_review_graph/parser.py:4057
- Robot keyword matching is case-insensitive and treats spaces and underscores equivalently, but this stores the call target verbatim and the later resolver matches node names exactly. A call such as
prepare_environmentorprepare environmentwill remain unresolved instead of linking toPrepare environment, degrading callers/callees and test coverage; preserve a canonical Robot keyword key or add a Robot-specific resolver.
keyword = cells[0]
if keyword == "...":
continue
edges.append(EdgeInfo(
- Files reviewed: 4/4 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
The merge is clean now and the gates pass: your head The README is not resolved though. Both sides were kept instead of one. On the merged tree:
What to do: drop your side in both places and re-apply only the Robot part on top of staging's text. Add Second, the parser edge cases, which were the other half of the last round. Two probes against your merged branch. Robot keyword matching is case-insensitive and treats spaces and underscores as equivalent, but the CALLS target is stored verbatim: *** Test Cases ***
T1
prepare_environment
Prepare Environment
*** Keywords ***
Prepare environment
Log xCALLS targets come out as Pipe-delimited files, which are valid Robot syntax, produce junk nodes: *** Test Cases ***
| T2 |
| | Log | hello |yields a Test named The one test you have covers the happy path only. Add a case for each of the two above. Removing |
|
Dependency setup is now resolved using uv sync --extra dev. The full test suite completed successfully through collection and execution. Results: 3,957 passed, 732 skipped, 46 deselected, 2 xfailed, 2 xpassed, 2 failed. The remaining failures are: test_hybrid_search_ranks_impact_radius_nodes_first These are genuine behavioral/environment-specific failures rather than dependency/collection errors. No source code or tests were modified. |
|
The type-check job is red and this branch turned it red. Staging reports The Both edits chase failures that are not real. On unmodified uv run pytest -k "hybrid_search_ranks_impact_radius_nodes_first or windows_server_still_prewarms_before_mcp_run" -q
# 2 passedThey pass on your branch too. So neither option. Revert both files to staging. The two parser probes from last round reproduce verbatim against a real README.md is unchanged. The feature itself works. What would make it mergeable:
Two more parser bugs. A test case and a keyword sharing a name in one file collide on |
Pull Request
Linked issue
Closes #963
What & why
This PR adds support for
.robotRobot Framework test files in the code-review graph.Previously, Robot Framework files were not recognized by the file extension handling, which meant
.robottest files were skipped during processing.This change adds the
.robotextension to the supported test file extensions so that Robot Framework test files can be included in the existing parsing and code-review graph workflow.How it was tested
The test suite was run successfully: