Gascan plugin - #752
Draft
maxbube wants to merge 4 commits into
Draft
Conversation
maxbube
requested review from
marcuscruz-percona,
nachodd,
peter-o-addo and
yyyyyyyan
as code owners
May 18, 2026 16:29
maxbube
marked this pull request as draft
May 18, 2026 16:29
There was a problem hiding this comment.
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 includeGASCAN, 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 on lines
+86
to
+89
| - NAME: Gascan | ||
| MODULE_NAME: gascan | ||
| URI_PATH: /gascan | ||
| CSS_CLASS: gascan |
| "build-storybook": "pnpm --filter @sep/framework build-storybook" | ||
| }, | ||
| "devDependencies": { | ||
| "nanoid": "3.3.12", |
yyyyyyyan
marked this pull request as ready for review
May 19, 2026 23:38
yyyyyyyan
marked this pull request as draft
May 19, 2026 23:38
Comment on lines
+109
to
+113
| </section> | ||
| {% endif %} | ||
| {% if executor_hosts|length >= 1 %} | ||
| {% include "gascan/partials/create-form.html.j2" %} | ||
| {% endif %} |
| "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 on lines
+86
to
+89
| - NAME: Gascan | ||
| MODULE_NAME: gascan | ||
| URI_PATH: /gascan | ||
| CSS_CLASS: gascan |
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
gascan execution plugin built 100% with cursor based on checksums one
Tested
Nothing yet
Checklist
make test)make run-pre-commit)make makemigrations)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)