Compare commits

..
2 Commits
Author SHA1 Message Date
ChuckBuildsandClaude Opus 5 4a64a37b01 chore: add the Ruff suppression nosec/nosemgrep do not cover
Ruff reports S603 on the same call Bandit and Opengrep do, and none of
the three suppressions covers the others. Confirmed the precondition
first: path comes from discover_plugin_tests(), which globs test files
inside the repo, and the call is a fixed interpreter with a list argv
and no shell.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RRtqXDCnvnY6EQwhT5CV9
2026-09-07 13:35:18 -04:00
ChuckBuildsandClaude Opus 5 25d3f35b55 chore: leave visual_display_manager untouched so #523 can merge
The only change this branch made to that file was a docstring, and it
collided with #523's rewrite of the same method -- so #534 and #523 each
merged cleanly against main but conflicted with each other. Reverted to
main's text; #523 owns this method and adds frame_hold to it.

The note the docstring carried ('frame_hold arrives in #523') would have
been stale the moment #523 landed anyway. The parity test in #523 is
what actually keeps the two signatures honest.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RRtqXDCnvnY6EQwhT5CV9
2026-09-07 09:56:37 -04:00
2 changed files with 2 additions and 10 deletions
+1 -1
View File
@@ -115,7 +115,7 @@ def run_script_tests(test_files: list, verbose: bool = False) -> int:
# discovered by globbing the repo; argument list, no shell, so
# nothing is word-split or expanded. Same suppression pair the
# rest of the repo uses for this shape (see permission_utils.py).
proc = subprocess.run( # nosec B603 - no shell invoked (list-form argv) # nosemgrep
proc = subprocess.run( # noqa: S603 # nosec B603 - no shell invoked (list-form argv) # nosemgrep
[sys.executable, str(path)], # nosemgrep
cwd=str(Path(path).parent),
capture_output=True, text=True, env=env,
@@ -507,15 +507,7 @@ class VisualTestDisplayManager:
# ------------------------------------------------------------------
def set_scrolling_state(self, is_scrolling: bool):
"""Set the current scrolling state (no-op for testing).
Deliberately mirrors DisplayManager.set_scrolling_state exactly. A
double that accepts arguments production does not lets a call pass
every harness run and then raise TypeError on the panel, which is the
one failure a safety harness exists to prevent. ``frame_hold`` arrives
here in the same change that adds it to DisplayManager (#523), not
before.
"""
"""Set the current scrolling state (no-op for testing)."""
self._scrolling_state['is_scrolling'] = is_scrolling
if is_scrolling:
self._scrolling_state['last_scroll_activity'] = time.time()