Skip to content

Replace legacy batch/Node toolchain with Python CLI for authorized Wi-Fi exposure simulation - #49

Open
warengonzaga with Copilot wants to merge 6 commits into
mainfrom
copilot/replace-node-with-python-cli
Open

Replace legacy batch/Node toolchain with Python CLI for authorized Wi-Fi exposure simulation#49
warengonzaga with Copilot wants to merge 6 commits into
mainfrom
copilot/replace-node-with-python-cli

Conversation

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
  • Inspect PR review thread and identify actionable comments addressed to @copilot
  • Check recent GitHub Actions workflow runs/logs for CI status context
  • Update Windows profile parsing to be less locale-dependent and add tests
  • Improve profile detail parsing fallback behavior for localized output and document limitation clearly
  • Harden report output path handling when --output points to a directory
  • Run targeted tests, then full pytest suite
  • Run final parallel validation and address findings
  • Reply to the new PR comment with the fixing commit hash
Original prompt

Completely replace the current batch/gulp/node-based project with a Python-based CLI project for authorized red-team simulation and security validation.

Primary objective:

  • Full migration to Python and replacement of current files/setup while preserving project identity (wifi-passview) and focusing on local-access credential exposure simulation for educational and authorized assessments.

Required implementation scope:

  1. Replace architecture
  • Remove old batch build workflow and Node/Gulp build dependency surface from active project path.
  • Introduce a Python project layout (src package) with clear module boundaries:
    • CLI entrypoint
    • OS adapter interface
    • Windows adapter implementation (first-class)
    • capability detection module
    • report module (JSON + human-readable summary)
  1. Windows-first functionality
  • Implement robust profile enumeration and credential retrieval on Windows through stable command execution and parsing (avoid brittle fixed-line parsing assumptions).
  • Add explicit error handling for unsupported cases and clear operator messaging.
  1. Responsible simulation controls (must-have)
  • Tool must include explicit authorized-use warning/consent gate.
  • Keep scope educational and defensive simulation-focused.
  • Do not implement stealth behavior or silent exfiltration mechanics.
  • If export exists, default to local report output only.
  1. CLI design
  • Provide at minimum commands/options for:
    • capability check
    • list profiles
    • collect findings
    • output path format selection
  • Non-interactive mode should be supported for repeatable lab use.
  • Provide useful exit codes for scripting.
  1. Packaging and developer setup
  • Add pyproject.toml and dependency management for Python 3.11+.
  • Add basic test scaffolding (pytest) with at least parser/normalization tests using mocked command output fixtures.
  • Add CI workflow updates to run tests on push/PR.
  1. Documentation refresh
  • Rewrite README with:
    • project purpose and legal/authorized-use statement
    • installation and usage examples
    • supported platforms/capability notes
    • migration note that legacy batch version was replaced
  1. Repository cleanup
  • Remove obsolete files that are no longer applicable to Python architecture (batch artifacts/build scripts/node metadata), unless intentionally kept for archival under a clearly marked legacy directory.
  • Ensure final tree is coherent and runnable with Python tooling.
  1. PR quality expectations
  • Include clear commit history and a thorough PR description summarizing replacement scope.
  • Ensure tests pass in CI.
  • Target branch: main.

Acceptance criteria:

  • Running the Python CLI on Windows can perform capability check, profile listing, and credential exposure collection with deterministic structured output.
  • No reliance on old batch/gulp flow for core functionality.
  • Documentation and CI reflect the new Python-first setup.
  • PR is ready for review and merge into main.

Copilot AI and others added 2 commits May 7, 2026 09:24
Copilot AI changed the title [WIP] Migrate project wifi-passview to Python-based CLI for red-team simulation Replace legacy batch/Node toolchain with Python CLI for authorized Wi-Fi exposure simulation May 7, 2026
Copilot AI requested a review from warengonzaga May 7, 2026 09:32
@warengonzaga
warengonzaga marked this pull request as ready for review May 7, 2026 09:39
Copilot AI review requested due to automatic review settings May 7, 2026 09:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR replaces the legacy Batch/Gulp/Node implementation of wifi-passview with a Python 3.11+ CLI focused on authorized local Wi‑Fi credential exposure simulation on Windows, including structured reporting and a Python-based CI/testing setup.

Changes:

  • Removed legacy Node/Gulp toolchain artifacts and Batch scripts (including build outputs and CI config).
  • Added a Python src/-layout package with CLI commands (capability, list-profiles, collect), a Windows netsh wlan adapter, and report generation (text + JSON).
  • Introduced pytest-based parsing fixtures/tests and a GitHub Actions workflow for Python CI.

Reviewed changes

Copilot reviewed 20 out of 23 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
yarn.lock Removes Yarn lockfile as part of Node toolchain removal.
package.json Removes Node/Gulp project metadata.
gulpfile.js Removes Gulp build pipeline.
.circleci/config.yml Removes CircleCI Node workflow.
wifi-passview-v5.0.0-sohee.bat Removes legacy Batch CLI entrypoint.
dist/wifi-passview-v5.0.0-sohee.bat Removes legacy built Batch artifact from dist/.
src/core.bat Removes legacy Batch core script.
src/config.json Removes legacy Batch/Gulp build configuration.
pyproject.toml Adds Python packaging, console script entrypoint, and pytest dev extra.
src/wifi_passview/init.py Introduces Python package + version.
src/wifi_passview/main.py Adds python -m wifi_passview entry.
src/wifi_passview/cli.py Implements CLI commands, authorization gate, exit codes, and reporting flow.
src/wifi_passview/capabilities.py Adds capability detection wrapper.
src/wifi_passview/models.py Adds datamodels for capabilities and findings.
src/wifi_passview/report.py Adds report building + JSON/summary serialization + file writing.
src/wifi_passview/adapters/base.py Defines OS adapter interface contract.
src/wifi_passview/adapters/windows.py Implements Windows netsh wlan adapter + parsers.
tests/test_windows_adapter_parsing.py Adds pytest coverage for parsing behavior.
tests/fixtures/netsh_profiles.txt Adds fixture for netsh wlan show profiles output.
tests/fixtures/netsh_profile_detail.txt Adds fixture for netsh wlan show profile ... key=clear output.
.github/workflows/python-ci.yml Adds GitHub Actions CI to install Python deps and run pytest.
README.md Rewrites documentation for Python CLI + authorized-use framing and usage examples.
.gitignore Updates ignore rules for Python artifacts; retains node_modules/.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/wifi_passview/adapters/windows.py Outdated
Comment thread src/wifi_passview/adapters/windows.py
Comment thread src/wifi_passview/report.py Outdated
@warengonzaga

Copy link
Copy Markdown
Owner

@copilot apply changes based on the comments in this thread

Copilot AI and others added 3 commits May 7, 2026 09:52

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
Author

@copilot apply changes based on the comments in this thread

Implemented the requested updates from that review thread in commit bca4c7c.

Changes included:

  • Locale-tolerant profile parsing updates in the Windows adapter.
  • Numeric SSID-safe filtering to avoid dropping valid profiles.
  • --output directory handling improvements (including separator normalization).
  • Added/updated tests covering localized profile parsing and report output path behavior.
  • Updated README capability notes for localized netsh detail-field limitations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants