Enhance container management and UI with version info and fixes - #464
Open
cmyers-mieweb wants to merge 3 commits into
Open
Enhance container management and UI with version info and fixes#464cmyers-mieweb wants to merge 3 commits into
cmyers-mieweb wants to merge 3 commits into
Conversation
PUT /containers/:id no longer enqueues an implicit restart job when env/entrypoint change - a restart happens only when restart:true is sent. The edit form now shows a confirmation modal before saving with restart enabled, and the response/toast tell the user saved changes apply on the next restart.
The Back button linked to '..' which resolves to /jobs (no route). It now returns to the current site's containers list, falling back to /sites.
GET /api/v1/health now includes the startup-cached git version info. New AppFooter shows the version (linked to its commit) plus a Report a bug link that pre-fills the GitHub bug template with the current URL, username, and version.
cmyers-mieweb
requested review from
runleveldev
and
a lite review from Copilot
August 25, 2026 18:06
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves the operator/user experience around container changes by (a) making container restarts strictly explicit (no more implicit restarts on config changes), and (b) enhancing the UI with version reporting + easier bug reporting, plus a small navigation improvement on job details.
Changes:
- Backend: update-container no longer enqueues restart jobs due to env/entrypoint changes unless
restart: trueis explicitly provided; addspendingRestartto the update response. - Frontend: adds a global footer showing running version + a prefilled “Report a bug” link; adds a restart confirmation modal on edit when “restart after saving” is enabled; improves jobs “Back” navigation.
- Docs: updates OpenAPI container update endpoint docs to reflect the explicit-restart behavior and
pendingRestart.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| create-a-container/routers/api/v1/index.js | Extends /health response to include cached server version info for the SPA footer. |
| create-a-container/routers/api/v1/containers.js | Makes restart enqueue strictly opt-in; returns pendingRestart and updated messaging. |
| create-a-container/openapi.v1.yaml | Updates container PUT docs to reflect explicit restart behavior and documents pendingRestart. |
| create-a-container/client/src/pages/jobs/JobDetailPage.tsx | Adjusts Back navigation to go to the current site’s containers (or sites list fallback). |
| create-a-container/client/src/pages/containers/ContainerFormPage.tsx | Adds restart confirmation modal and surfaces pending-restart messaging on save. |
| create-a-container/client/src/lib/auth.ts | Adds VersionInfo typing and wires /health’s version into the typed ServerInfo. |
| create-a-container/client/src/app/AppLayout.tsx | Adds the new footer to the app layout. |
| create-a-container/client/src/app/AppFooter.tsx | New footer component with version link + “Report a bug” issue-form prefill. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+352
to
+356
| toast.success( | ||
| isEdit | ||
| ? pendingRestart | ||
| ? 'Container updated — changes take effect on the next restart' | ||
| : 'Container updated' |
Comment on lines
875
to
879
| containerId: { type: integer } | ||
| jobId: { type: integer, nullable: true, description: 'Restart job id, when a restart was enqueued' } | ||
| dnsWarnings: { type: array, items: { type: string } } | ||
| pendingRestart: { type: boolean, description: 'true when env/entrypoint changes were saved but no restart was requested — they apply on the next restart' } | ||
| message: { type: string } |
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.
Resolves:
#358
#449
#453
This pull request introduces two main improvements: (1) a new application footer that displays the running version and provides a "Report a bug" link pre-filled with contextual information, and (2) a significant change to container update behavior, ensuring containers are only restarted when the user explicitly requests it, never implicitly. It also improves user feedback and API documentation to reflect this behavior, and enhances navigation in the job detail page.
User Interface Enhancements:
AppFootercomponent to the UI, which displays the running version (linked to its GitHub commit) and a "Report a bug" link that pre-fills the GitHub issue template with the current URL, username, and version. The footer is now included in the main layout. (AppFooter.tsx,AppLayout.tsx,auth.ts,index.js) [1] [2] [3] [4] [5] [6]JobDetailPage.tsx) [1] [2] [3]Container Update and Restart Behavior:
containers.js,openapi.v1.yaml) [1] [2] [3]pendingRestartflag when changes are saved but not yet applied, and the user interface displays clear feedback when changes require a restart to take effect. (containers.js,ContainerFormPage.tsx,openapi.v1.yaml) [1] [2] [3] [4] [5]ContainerFormPage.tsx) [1] [2] [3] [4]API and Documentation Updates:
pendingRestartresponse property. (openapi.v1.yaml) [1] [2] [3]/healthendpoint now includes version information for the frontend footer. (index.js) [1] [2]