Commit graph

229 commits

Author SHA1 Message Date
AJV20
86b5a8fcff Merge remote-tracking branch 'origin/master' into feat/webui-notes-sources
# Conflicts:
#	CHANGELOG.md
2026-05-22 17:35:18 -04:00
lucasrc
35adc3a473 feat: add per-skill enable/disable toggle in Skills panel
Original PR: #2676 by @lucasrc

Adds POST /api/skills/toggle endpoint that flips skills.disabled in
config.yaml, and a UI toggle in the Skills panel that shows all skills
(including disabled ones) with a per-skill on/off control.

- Backend: new endpoint validates skill exists in filesystem before
  toggling. Read-modify-write wrapped in _cfg_lock for thread safety.
  Writes through to platform_disabled.webui when present.
- Frontend: each skill-item now has a toggle switch; disabled skills
  appear muted but still listed (previously they were filtered out).
- i18n: new toggle keys translated across all 9 non-English locales.
- Tests: round-trip test for disabled list normalization + toggle
  endpoint behavior.

Squash-merged from contributor's branch (19 commits + 1 merge commit)
onto current master via the cherry-pick-stale-contributor-prs procedure.
2026-05-22 19:43:00 +00:00
AJV20
7305d470b9 feat(memory): gate third-party notes drawer 2026-05-22 14:54:41 -04:00
AJV20
e794b54e18 Merge remote-tracking branch 'origin/master' into feat/webui-notes-sources
# Conflicts:
#	CHANGELOG.md
2026-05-22 14:14:15 -04:00
ai-ag2026
77b0ca6e02 fix(chat): preserve session actions after panel resync 2026-05-22 09:25:15 +02:00
ai-ag2026
f81d24ec4c fix(chat): resync sidebar after panel switch 2026-05-22 09:25:15 +02:00
Hermes Agent
b14aae4ee5 Stage 400: PR #2717 — fix: surface update check fetch errors instead of failing silently
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-05-21 22:59:54 +00:00
Hermes Agent
905b3eba5e Stage 398: PR #2700 — feat: make pinned session limit configurable (builds on shipped #2614 3-cap)
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-05-21 17:43:56 +00:00
Hermes Agent
7d3013245a Stage 398: PR #2687 — feat: hide suggestions preference (closes #2679)
Closes #2679

Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com>
2026-05-21 17:43:48 +00:00
Hermes Agent
12a92dd50a Stage 397: PR #2671 — fix: SSE reconnect jitter + cron run row inline expansion
Closes #2629
Closes #2661

Co-authored-by: AJV20 <AJV20@users.noreply.github.com>
2026-05-21 17:13:59 +00:00
nesquena-hermes
c6587091a2 Stage 396: PR #2663 2026-05-21 00:26:54 +00:00
nesquena-hermes
38933b288d Stage-394 follow-up: profile-switch reconciliation + a11y switch role + server-side chat/settings filter
Per deep-review verdict SHIP-WITH-FIXES on PR #2636:

1. Profile-switch reconciliation: _refreshProfileSwitchBackground now re-fetches
   /api/settings and re-applies hidden_tabs for the new profile. Without this,
   Profile A's hidden-tabs choice stayed in effect under Profile B until the
   user opened Settings → Appearance.

2. A11y: switched chips from role=button + aria-pressed to role=switch +
   aria-checked. The pressed/not-pressed wording confused screen-reader users
   because chip-off looks like the off state. Added role=group +
   aria-labelledby on the container, and a :focus-visible style on the chips.

3. Server-side belt-and-suspenders: api/config.py now strips 'chat' and
   'settings' from hidden_tabs at validation time, matching the client's apply-
   time filter. A tampered POST can no longer persist the forbidden values.

3 new regression tests added (chat/settings rejection, profile-switch wiring,
chip a11y attributes).

Co-authored-by: FrancescoFarinola <francesco.farinola@example.com>
2026-05-20 23:05:19 +00:00
Francesco Farinola
5491a54285 fix: address PR review feedback on sidebar tab visibility
Three tweaks from reviewer:

1. Harden _applyTabVisibility to skip always-visible panels even if
   they appear in hidden_tabs (localStorage tampering, stale server
   data). Forces shouldHide=false so stale nav-tab-hidden classes
   on chat/settings get removed, not just skipped.

2. Add synchronous inline <script> flash-prevention after sidebar-nav
   in index.html. On slow networks, defer scripts run after the
   browser incrementally renders the DOM, causing hidden tabs to
   flash visible before JS executes. The inline script reads
   hermes-webui-hidden-tabs from localStorage and applies
   nav-tab-hidden classes before first paint, mirroring the existing
   theme/skin/font-size pattern. The boot.js IIFE becomes a secondary
   fallback (comment updated).

3. Remove _settingsHiddenTabsOnOpen dead state. It was tracked but
   never read for revert — _revertSettingsPreview is intentionally
   a no-op for appearance autosave. Removing the tracking makes
   the code honest about what it actually does. Also removes the
   test_settings_session_tracking test that validated this dead code.
2026-05-20 22:57:36 +00:00
Francesco Farinola
7f1feca3fe feat: sidebar tab visibility toggle in Settings > Appearance
Add chip row in Settings > Appearance that lets users toggle individual
sidebar/rail tabs on or off. Chat and Settings are always visible.

- Backend: hidden_tabs list setting with validation (no bool coerce)
- Frontend: pill chips that scan rail buttons, autosave via appearance
- Boot: _restoreTabVisibility IIFE applies hidden tabs before first paint
- i18n: 11 locales (label + description)
- Tests: 5 regression tests covering backend, frontend contracts,
  boot restore, i18n coverage, and settings session tracking
2026-05-20 22:57:36 +00:00
nesquena-hermes
4d8b8d0ffe Stage 393: PR #2633
# Conflicts:
#	CHANGELOG.md
2026-05-20 22:23:53 +00:00
dobby-d-elf
dc57d358eb fix test 2026-05-20 10:02:46 -06:00
dobby-d-elf
439a574cf4 address PR comments & bugs from real testing 2026-05-20 09:59:36 -06:00
dobby-d-elf
fd7212b014 Optimize profile switching and session list loading 2026-05-20 08:47:49 -06:00
Michael Lam
8ef8fae831 fix: show config-managed custom providers 2026-05-20 06:27:00 -07:00
Mark Baker
a2ce4e81b5
fix(plugins): distinguish exclusive/provider activation in Settings panel
The Settings → Plugins panel keyed off `loaded.enabled` and the four
agentic visibility hooks, both of which are False/empty for exclusive
plugins (memory.provider, model-provider, etc.). Those plugins were
mislabeled as "Disabled" with "No registered lifecycle hooks" even when
fully functional as the active provider for their category.

Surface `manifest.kind` and a derived `activation` field
("enabled" | "disabled" | "exclusive" | "provider") in /api/plugins.
The card render picks a third badge state ("Active (provider)") and a
dedicated empty-hooks line for those rows. `enabled` is preserved in
the payload so older clients still work; new clients should prefer
`activation`.

Fixes #2659
2026-05-20 00:01:02 -04:00
AJV20
6805b3d5dd Merge remote-tracking branch 'origin/master' into audit-2527
# Conflicts:
#	CHANGELOG.md
2026-05-19 18:54:35 -04:00
Dennis Soong
acd1df1112 fix: time out hung browser api requests 2026-05-20 02:41:00 +08:00
nesquena-hermes
63d75df818 Stage 383: PR #2530
# Conflicts:
#	CHANGELOG.md
2026-05-18 16:44:36 +00:00
AJV20
8c08acec5a feat(memory): show AI-used Joplin notes 2026-05-18 10:24:05 -04:00
Frank Song
0cd62ab474 fix: keep kanban drag drop from opening detail 2026-05-18 22:13:04 +08:00
AJV20
54ca6bf2e3 feat(memory): browse Joplin notes from notes drawer 2026-05-18 10:10:48 -04:00
AJV20
2f7883580f fix(memory): infer configured notes source tools 2026-05-18 10:04:03 -04:00
AJV20
1f3b7aa2c3 feat(memory): show third-party notes sources 2026-05-18 09:28:11 -04:00
junjunjunbong
3a53592107 Add previous messaging session controls 2026-05-17 21:27:32 -07:00
nesquena-hermes
cec1e87d04 Stage 382: PR #2500 (with whitespace polish on panels.js + ARCHITECTURE.md) 2026-05-18 03:45:02 +00:00
nesquena-hermes
13265b7085 Stage 374: PR #2425 — i18n: add internationalization for Settings Plugins panel by @mccxj
Co-authored-by: BonyFish <mc02cxj@gmail.com>
2026-05-17 02:49:34 +00:00
nesquena-hermes
3480e75e13 Stage 372: PR #2413 — feat(quota-chip): add Settings toggle, flip default to off 2026-05-16 23:05:09 +00:00
nesquena-hermes
a4ab7d4d27 Stage 371: PR #2409 — Stuck-PR sweep: salvage RTL chat from #1721 + override quota chip from #2082 by @malulian and @ai-ag2026
Co-authored-by: malulian <malulian@users.noreply.github.com>
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
2026-05-16 22:04:56 +00:00
Michael Lam
b373f090bd feat: clarify profiles and workspaces 2026-05-16 02:58:33 +00:00
Michael Lam
8186577c7b feat: show cron output usage metadata 2026-05-15 14:54:20 -07:00
Frank Song
079d6b4e86 Add cron detail expansion controls 2026-05-15 18:04:53 +08:00
Hermes Agent
ec689e32be Merge pull request #2099 into stage-358
feat: add opt-in streaming text fade (dobby-d-elf, off-by-default)
2026-05-14 21:27:52 +00:00
Hermes Agent
612480ce56 Merge pull request #2165 into stage-358
feat(providers): show pooled Codex quota status (starship-s, post-review follow-up)
2026-05-14 21:27:51 +00:00
Hermes Agent
673a927975 Merge pull request #2238 into stage-355
Improve phone sidebar panel navigation (franksong2702, fixes #2231)
2026-05-14 15:15:06 +00:00
Hermes Agent
6f5f5edb56 Merge pull request #2253 into stage-355
[codex] Show skill detail API errors (franksong2702)

# Conflicts:
#	CHANGELOG.md
2026-05-14 15:13:44 +00:00
Frank Song
0461b97d15 Escape model picker display text 2026-05-14 23:03:48 +08:00
Frank Song
a56ec43d29 Show skill detail API errors 2026-05-14 22:57:15 +08:00
Frank Song
6beb59d61f Improve mobile sidebar panel navigation 2026-05-14 15:16:33 +08:00
Frank Song
8b30ade923 Add profile creation model picker 2026-05-14 12:13:49 +08:00
Hermes Agent
89bf659b01 Merge pull request #2206 into stage-351
feat: show 🤖 badge and provider/model for agent-mode cron jobs (vcavichini)
2026-05-13 23:51:29 +00:00
Hermes Agent
70f09aaeb6 Merge pull request #2207 into stage-351
feat: add per-target update summaries with separate WebUI/Agent What's-new links (Jordan-SkyLF, fixes #1579)
2026-05-13 23:51:28 +00:00
ubuntu
97564c2b01 feat: show 🤖 badge for cron jobs in agent mode
Identify cron jobs with mode=agent (no_agent=false) in the cron list
by displaying a robot emoji badge next to the job name.
2026-05-13 20:48:09 -03:00
Jordan SkyLF
bec21eafa0 Add What's New summary toggle 2026-05-13 15:53:01 -07:00
Jordan SkyLF
cfc0f68d23 fix: show update whats-new links for webui and agent 2026-05-13 15:53:01 -07:00
Jordan SkyLF
4b455822cb Fix MCP tools list overflow 2026-05-13 15:33:54 -07:00