Skip to content

Enhance container management and UI with version info and fixes - #464

Open
cmyers-mieweb wants to merge 3 commits into
mainfrom
issue-449-453-358-restart-confirm-jobs-back-version-footer
Open

Enhance container management and UI with version info and fixes#464
cmyers-mieweb wants to merge 3 commits into
mainfrom
issue-449-453-358-restart-confirm-jobs-back-version-footer

Conversation

@cmyers-mieweb

@cmyers-mieweb cmyers-mieweb commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

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:

  • Added a new AppFooter component 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]
  • The job detail page "Back" button now returns to the current site's containers list (or sites list as a fallback), improving navigation. (JobDetailPage.tsx) [1] [2] [3]

Container Update and Restart Behavior:

  • Changed the backend and API so that updating container configuration (environment variables or entrypoint) never implicitly restarts the container. A restart is only performed when explicitly requested by the user. (containers.js, openapi.v1.yaml) [1] [2] [3]
  • The API response now includes a pendingRestart flag 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]
  • When editing a container, if the user chooses to "restart after saving", a confirmation modal is now shown to prevent accidental disruptive restarts. (ContainerFormPage.tsx) [1] [2] [3] [4]

API and Documentation Updates:

  • Updated the OpenAPI documentation to clarify that restarts only occur when explicitly requested, and documented the new pendingRestart response property. (openapi.v1.yaml) [1] [2] [3]
  • The server /health endpoint now includes version information for the frontend footer. (index.js) [1] [2]

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 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: true is explicitly provided; adds pendingRestart to 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 }
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.

2 participants