Skip to content

Gascan plugin - #752

Draft
maxbube wants to merge 4 commits into
mainfrom
gascan_plugin
Draft

Gascan plugin#752
maxbube wants to merge 4 commits into
mainfrom
gascan_plugin

Conversation

@maxbube

@maxbube maxbube commented May 18, 2026

Copy link
Copy Markdown
Contributor

Summary

gascan execution plugin built 100% with cursor based on checksums one

Tested

Nothing yet

Checklist

  • New/modified functions have type hints and rST docstrings
  • New tests added for new features or bug fixes
  • All tests pass locally (make test)
  • Pre-commit hooks pass (make run-pre-commit)
  • Database migrations generated if models changed (make makemigrations)
  • User-facing changes documented (README, inline help, UI text)
  • Configuration changes documented with examples
  • Changelog fragment added under changelog.d/ if the change is user-facing (make changelog-add), or confirmed N/A (internal-only change, or a same-release-cycle fix for an unreleased sibling ticket)

Copilot AI review requested due to automatic review settings May 18, 2026 16:29
@maxbube
maxbube marked this pull request as draft May 18, 2026 16:29

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 introduces a new Gascan execution plugin to SEP, including both the legacy Jinja UI routes and the schema-driven React SPA integration via the /api/plugins/gascan/ gateway.

Changes:

  • Add Gascan backend plugin (HTML routes + JSON plugin API) with schema, models, deps, templates, and mount configuration.
  • Add a schema-driven React plugin package and wire it into the shell router/navigation.
  • Extend task ownership enum (TaskOwner) to include GASCAN, and add tests covering Gascan deps and routes.

Reviewed changes

Copilot reviewed 30 out of 31 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/app/sep/plugins/gascan/test_routes.py Tests for HTML routes (task creation posts with TaskOwner.GASCAN).
tests/app/sep/plugins/gascan/test_deps.py Unit tests for payload assembly and args parsing parity.
tests/app/sep/plugins/gascan/test_api_routes.py Tests for /api/plugins/gascan/ list/detail/create/delete endpoints.
tests/app/sep/plugins/gascan/conftest.py Re-exports common SEP plugin test fixtures.
tests/app/sep/plugins/gascan/init.py Initializes the gascan test package.
templates/gascan/index.html.j2 Gascan Jinja index page (saved/history/running views + modal wiring).
templates/gascan/details.html.j2 Gascan task detail page (execution, stats, history).
templates/gascan/partials/create-form.html.j2 Jinja modal form for creating Gascan tasks.
templates/gascan/partials/edit-form.html.j2 Jinja modal form for editing Gascan tasks.
templates/gascan/partials/saved-tasks.html.j2 Saved-task listing table for Gascan UI.
static/css/base.css Adds sidebar icon mapping for .gascan.
settings.yaml Registers the Gascan plugin in the server-rendered sidebar plugin list.
frontend/pnpm-workspace.yaml Updates pnpm workspace config for minimum release age exclusions.
frontend/pnpm-lock.yaml Adds lockfile entries for the new gascan plugin package and shell dependency.
frontend/package.json Adds a new frontend root devDependency (nanoid).
frontend/packages/shell/package.json Adds @sep/plugin-gascan dependency to the shell app.
frontend/packages/shell/src/router.tsx Adds lazy route for the Gascan React plugin.
frontend/packages/shell/src/contexts/navigation.tsx Adds “Gascan” nav item with icon.
frontend/packages/plugins/gascan/package.json New schema-driven React plugin package manifest.
frontend/packages/plugins/gascan/tsconfig.json TS config for the new plugin package.
frontend/packages/plugins/gascan/src/GascanPlugin.tsx SchemaDrivenPlugin wrapper for Gascan.
frontend/packages/plugins/gascan/src/routes.tsx Exports Gascan route metadata/constants.
frontend/packages/plugins/gascan/src/index.ts Plugin package exports.
app/tasks/models.py Adds TaskOwner.GASCAN.
app/sep/plugins/gascan/init.py Exposes the plugin router for mounting via sep_settings.PLUGINS.
app/sep/plugins/gascan/schema.py Defines the Gascan PluginSchema used by the React schema-driven UI.
app/sep/plugins/gascan/models.py Adds Gascan request/response models.
app/sep/plugins/gascan/deps.py Builds TaskWrite payloads, parses args, and provides context helpers.
app/sep/plugins/gascan/routes.py Adds Jinja HTML routes for Gascan management UI.
app/sep/plugins/gascan/api_routes.py Adds /api/plugins/gascan/ JSON API routes.
app/sep/main.py Includes gascan in task-infra plugin set for extra SEP task routes.
Files not reviewed (1)
  • frontend/pnpm-lock.yaml: Language not supported

Comment thread settings.yaml
Comment on lines +86 to +89
- NAME: Gascan
MODULE_NAME: gascan
URI_PATH: /gascan
CSS_CLASS: gascan
Comment thread frontend/package.json
"build-storybook": "pnpm --filter @sep/framework build-storybook"
},
"devDependencies": {
"nanoid": "3.3.12",
@yyyyyyyan yyyyyyyan added do not merge There are reasons to not merge the code under discussion The changes are still being discussed labels May 19, 2026
@yyyyyyyan
yyyyyyyan requested a review from Copilot May 19, 2026 23:38
@yyyyyyyan
yyyyyyyan marked this pull request as ready for review May 19, 2026 23:38
@yyyyyyyan
yyyyyyyan marked this pull request as draft May 19, 2026 23:38

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

Copilot reviewed 30 out of 31 changed files in this pull request and generated 4 comments.

Files not reviewed (1)
  • frontend/pnpm-lock.yaml: Language not supported

Comment on lines +109 to +113
</section>
{% endif %}
{% if executor_hosts|length >= 1 %}
{% include "gascan/partials/create-form.html.j2" %}
{% endif %}
Comment thread frontend/package.json
"build-storybook": "pnpm --filter @sep/framework build-storybook"
},
"devDependencies": {
"nanoid": "3.3.12",
Comment on lines +12 to +17
# Dev-tooling releases frequently; exclude from the 7-day cooldown (see oxc-project).
minimumReleaseAgeExclude:
- '@oxlint/*'
- oxlint
- '@oxfmt/*'
- oxfmt
Comment thread settings.yaml
Comment on lines +86 to +89
- NAME: Gascan
MODULE_NAME: gascan
URI_PATH: /gascan
CSS_CLASS: gascan
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge There are reasons to not merge the code frontend python under discussion The changes are still being discussed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants