Conversation
|
Up to standards ✅🟢 Issues
|
4 tasks
JE-Chen
added a commit
that referenced
this pull request
Apr 26, 2026
MCP server refresh + bug fixes since PR #87
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.



Summary
51 commits since PR #86 merged. The PR is dominated by quality work (SonarCloud / Codacy findings, real-browser smoke, integration test suite) plus genuine usability wins (
WR_sleep, cookbook, façade).New executor surface
WR_sleep— nativetime.sleepaction so JSON pipelines no longer needWR_execute_async_script + setTimeoutto pace themselves. Validates type / non-negative.webdriver_wrapper.execute_scriptwas discarding return values;WR_execute_scripttherefore always resolved toNone. Fixed.Cookbook (
examples/)Each recipe was run end-to-end before commit:
counting_stars.{py,json}— YouTube + skip-ad pollinggoogle_search.py— consent dismissal + result heading scrapeform_submit.py—form_autofill+state_diffagainst httpbinsmart_wait_demo.py— fetch idle / SPA route stable / memory probefanout_demo.py— parallel HTTP preflightspii_redact_demo.py— pure-logic scan / redactquick_smoke.json— minimal executor sanity checkComprehensive integration test suite
test/integration_test/— 30 tests across 10 files, each wiring 2+ modules with real I/O:db_fixtureshar_replay,mock_services,live_dashboard,visual_reviewsys.stdout.reconfigure(newline="")in__main__.py)bootstrap → format → lint → schema,coverage_map + impact_analysis + diff_shard,record_run → trend_dashboardWired into
test_dev.ymlandtest_stable.ymlas a step right after the unit suite.Real-browser E2E scaffold
test/e2e_test/+.github/workflows/e2e_browser.ymlbootsselenium/hub:4.20.0+selenium/node-chromeand runssmart_wait/state_diff/memory_leak/csp_reporter/shadow_piercesmoke tests daily.Thematic API façade —
je_web_runner.api11 themed submodules (
authoring,debugging,frontend,infra,mobile,networking,observability,quality,reliability,security,test_data) re-exporting the 80+ helpers fromje_web_runner.utils.<area>so callers canfrom je_web_runner.api import qualityinstead of memorising deep paths. Original top-level Selenium API unchanged.Sphinx autodoc + autosummary
docs/source/conf.pygainssphinx.ext.autodoc+autosummary+napoleonwith mock imports for soft deps (selenium / playwright / appium / Pillow / locust / OTel / testcontainers). NewEng/doc/api_reference/api_reference.rstdrives recursive per-module reference page generation.Static-analysis cleanup (4 rounds against PR #86's review)
pipeline.load_pipeline,coverage_map.build_coverage_map,fanout.run_fan_out,browser_pool.checkout,visual_review do_GET,a11y_trend.aggregate_history,storybook.visual_snapshots.capture_story_snapshots,examples/counting_stars.py main); S7632 suppressions reanchored; S5131 hardening with_safe_echo+nosniff; S3358 nested ternaries →_direction_for; S5754, S7500, S7504, S6353, S5852, S5869, S5906, S2068, S125, S1192, S5042, S4828, S1313, S5332 all resolved or properly annotated.__test__ = False;workspace_lockdistribution walk cached (~1.2s saved);socket_serverquit tests went from 2.42s → 0.49s viathreading.Event+ tighterpoll_interval.Numbers
Test plan