feat(tasks): add scheduled job profile selector#1674
Closed
Michaelyklam wants to merge 1 commit into
Closed
Conversation
Collaborator
|
Closed by the v0.51.1 release in PR #1681 (merged at e23ba59). Massive thanks @Michaelyklam — this is now 19 merged PRs across the v0.50.292–v0.51.1 release window, an extraordinary contribution rate. Each PR was per-claim-vs-diff verified against your description and every security-relevant code path checked under independent review (Opus advisor, 6/6 questions clean). Your Live on production: https://github.com/nesquena/hermes-webui/releases/tag/v0.51.1 🚀 |
nesquena-hermes
pushed a commit
to Michaelyklam/hermes-webui
that referenced
this pull request
May 5, 2026
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.
Thinking Path
profilefield, validate it against/api/profiles, show it in the Tasks UI, and route WebUI “Run now” through the selected profile home.profile: nullat the API boundary so the UI can label them as “server default” without changing stored legacy behavior.What Changed
/api/cronsreturnsprofile, create/update validate profile names, and legacy blank values normalize to server-default behavior.cron.schedulerglobals that read profile-specific config/env paths duringrun_job()./api/profiles, profile badges in the scheduled-job list/detail view, and locale strings for all shipped locales.docs/pr-media/617/.Why It Matters
Users with multiple Hermes profiles can now create/edit scheduled jobs with explicit profile intent and audit that intent from the job list. Existing jobs remain safe: jobs without a persisted profile are still treated as the WebUI server default and are labeled that way instead of silently pretending they are tied to a concrete profile.
Verification
Result:
GitHub Actions full-suite signal:
Local full-suite attempts were also made with
env -u HERMES_CONFIG_PATH /home/michael/.hermes/hermes-agent/venv/bin/python -m pytest tests/ -q; the final local broad run was inconclusive because the isolated test server exited mid-suite and caused a connection-refused cascade. CI completed the broad matrix successfully.Manual browser verification on an isolated local WebUI server:
server defaultbadge for legacy jobs anddefaultfor explicit-profile jobs.server default,default (default), and an additionalresearchprofile option from/api/profiles./healthstayed OK during the isolated UI check.UI media:
Risks / Follow-ups
cron.scheduler.tick()outside the WebUI repository. That scheduler will need native per-jobprofilehandling before timed executions can be guaranteed to use the selected profile without the WebUI manual-run wrapper.server defaultanddefault, the wording can be adjusted; the distinction is intentional here because a legacy job and an explicitly selected default-profile job are different persisted states.Model Used
AI assisted.
gpt-5.5