Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates plugin signature handling (introducing an explicit CUSTOM_PLUGIN_SIGNATURE constant and new signature options), improves form UX by clearing dependent values/errors when selections change, and introduces automated semantic versioning + tag-based devnet image builds.
Changes:
- Add
CUSTOM_PLUGIN_SIGNATUREconstant and replace “last element in array” checks across UI/schema/job-formatting. - Improve react-hook-form behavior by clearing dependent fields/errors when toggling signature, deployment type, registry visibility, and tunneling-related options.
- Add semantic versioning workflow on
developand switch devnet image builds to run onv*tags.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/shared/jobs/native/NativeAppIdentitySection.tsx | Clears custom signature field/errors when switching away from CUSTOM. |
| src/shared/jobs/deployment-type/DeploymentTypeSectionCard.tsx | Clears deployment-type errors when toggling Worker/Container. |
| src/shared/jobs/deployment-type/ContainerSection.tsx | Clears registry credential fields/errors when visibility becomes Public. |
| src/shared/NetworkAndStatus.tsx | Switches app version source to package.json. |
| src/schemas/steps/deployment.ts | Uses CUSTOM_PLUGIN_SIGNATURE in custom-signature refinement. |
| src/lib/recover-job-from-pipeline.ts | Uses CUSTOM_PLUGIN_SIGNATURE as fallback when signature is unknown. |
| src/lib/deeploy-utils.ts | Uses CUSTOM_PLUGIN_SIGNATURE when formatting native plugin signature. |
| src/data/pluginSignatureTypes.ts | Introduces CUSTOM_PLUGIN_SIGNATURE and updates signature list. |
| src/components/edit-job/JobEditFormWrapper.tsx | Uses CUSTOM_PLUGIN_SIGNATURE for unknown plugin signatures. |
| src/components/create-job/steps/deployment/ServiceDeployment.tsx | Clears tunneling token/label errors when tunneling is disabled by service visibility. |
| src/components/create-job/sections/AppParametersSection.tsx | Adds “disable tunneling” UI state and clears tunneling token when disabled. |
| src/components/create-job/plugins/PluginsSection.tsx | Sets different tunneling defaults for native plugins. |
| src/components/create-job/plugins/NativeInputsSection.tsx | Disables tunneling when a non-custom signature is selected. |
| src/components/create-job/JobFormWrapper.tsx | Updates native plugin default tunneling fields. |
| package.json | Bumps version and reformats. |
| .github/workflows/sem_ver.yaml | Adds semantic versioning + tag + package.json version bump automation. |
| .github/workflows/build_devnet.yml | Triggers devnet image build on v* tags and ensures checkout uses the triggering SHA. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import pkg from '../../package.json'; | ||
|
|
||
| function NetworkAndStatus() { | ||
| const { data, error, isLoading } = useQuery({ | ||
| queryKey: ['ping'], | ||
| queryFn: ping, | ||
| retry: false, | ||
| }); | ||
| const appVersion = process.env.NEXT_PUBLIC_APP_VERSION ?? ''; | ||
| const appVersion = pkg.version; //process.env.NEXT_PUBLIC_APP_VERSION ?? ''; |
There was a problem hiding this comment.
Importing the full package.json into this component will likely pull the entire JSON (including dependency lists) into the client bundle just to read version, increasing bundle size and exposing internal metadata. Prefer injecting the version via NEXT_PUBLIC_APP_VERSION at build time (or exporting a tiny version.ts generated during build) and remove the commented-out env fallback once a single approach is chosen.
| setValue(`${name}.enableTunneling`, BOOLEAN_TYPES[1]); | ||
| setValue(`${name}.tunnelingToken`, undefined); |
There was a problem hiding this comment.
When switching from a custom to a non-custom plugin signature, this effect disables tunneling but only clears errors for tunnelingToken. If the user previously enabled tunneling and triggered a validation error on port (or other tunneling-related fields), that error can remain even though the field is no longer required, because setValue here does not request validation. Consider also clearing/triggering validation for ${name}.port (and any other affected fields) or passing { shouldValidate: true } to the setValue calls so stale errors don’t block submission.
| setValue(`${name}.enableTunneling`, BOOLEAN_TYPES[1]); | |
| setValue(`${name}.tunnelingToken`, undefined); | |
| setValue(`${name}.enableTunneling`, BOOLEAN_TYPES[1], { shouldValidate: true }); | |
| setValue(`${name}.tunnelingToken`, undefined, { shouldValidate: true }); |
No description provided.