Skip to content

Add optional Pup Lint agent tool - #35

Open
kvandre12-commits wants to merge 2 commits into
mpfaffenberger:mainfrom
kvandre12-commits:feat/pup-lint-tool
Open

Add optional Pup Lint agent tool#35
kvandre12-commits wants to merge 2 commits into
mpfaffenberger:mainfrom
kvandre12-commits:feat/pup-lint-tool

Conversation

@kvandre12-commits

Copy link
Copy Markdown

Summary

  • add an optional pup_lint builtin plugin discovered through the existing entry-point system
  • register and advertise a structured, diagnostic-only Pup Lint tool when the CLI is on PATH or the module is importable
  • add model-facing guidance to lint changed Python paths before completing coding tasks
  • execute with argv directly, enforce a timeout, clean up cancelled child processes, and cap returned diagnostics
  • remain completely silent when Pup Lint is unavailable

Pup Lint is the zero-Rust, dependency-free Python linter released at:
https://github.com/kvandre12-commits/pup-lint

The model tool intentionally does not expose --fix; model-initiated mutations should continue through Code Puppy's governed file tools.

Verification

  • ruff check --fix code_puppy_core_plugins/pup_lint tests/test_pup_lint_plugin.py tests/test_pup_lint_plugin_timeout.py
  • ruff format code_puppy_core_plugins/pup_lint tests/test_pup_lint_plugin.py tests/test_pup_lint_plugin_timeout.py
  • 10 focused tests pass on Android/Termux
  • real cross-repository smoke test discovers Pup Lint, injects the tool, invokes the actual CLI, and returns F401/W291/W292 diagnostics
  • built wheel contains the pup_lint entry point, implementation, and README
  • full suite: 1,987 passed, 2 skipped; 11 environment-only failures from unavailable Azure Identity and isolated wheel subprocesses that intentionally omit local code_puppy/httpx

@kvandre12-commits

Copy link
Copy Markdown
Author

Revalidated the current PR head (1e9126e) against current Code Puppy main after the subprocess-hardening update.

Validation on Python 3.14:

  • 10 passed across tests/test_pup_lint_plugin.py and tests/test_pup_lint_plugin_timeout.py
  • Ruff E4,E7,E9,F,I checks passed for the plugin and focused tests
  • Ruff formatting check passed
  • git diff --check passed

The focused run explicitly supplied the current Code Puppy checkout as the plugin host; the core-plugin repository intentionally does not declare the host application as a runtime dependency. The PR remains mergeable and current with the plugin repository's main.

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.

1 participant