HERMES-GIELIE/api
nesquena-hermes d3b69ab98b fix(security #3234): deny per-profile webui_state state subdirs (Codex review #11)
Per-profile WebUI state lives at <root>/webui_state (api/workspace.py), so
<base>/profiles/<name>/webui_state/sessions/*.json was reachable — it is not a
direct child of the profile root, so the prior deny-subdir loop missed it. Add
<root>/webui_state/<state-subdir> to the deny dirs for every Hermes root. Adds a
regression assertion (profile webui_state/sessions/*.json → 403).
2026-05-31 04:11:35 +00:00
..
__init__.py
agent_health.py fix(agent_health): detect profile-scoped gateway.pid for correct status 2026-05-25 10:35:37 +00:00
agent_sessions.py fix: keep webui mirrored sessions out of cli filter 2026-05-28 00:51:12 +02:00
auth.py fix: harden WebUI bugfix sweep 2026-05-28 13:38:50 -04:00
background.py
clarify.py feat: add distinct attention request sound 2026-05-30 19:40:40 +00:00
commands.py
compression_anchor.py fix(sidebar): keep newer continuation visible over older snapshot 2026-05-28 13:38:06 -06:00
config.py fix(reasoning): expose effort levels for bare/dot-separated model names on custom providers 2026-05-31 02:51:26 +08:00
dashboard_probe.py
extensions.py
gateway_chat.py Merge remote-tracking branch 'origin/master' into fix/webui-gateway-tool-activity 2026-05-28 16:11:34 -04:00
gateway_watcher.py
goals.py
helpers.py fix(helpers): use ssl.SSLError instead of broad OSError in disconnect tuple 2026-05-31 01:56:39 +00:00
kanban_bridge.py perf(http): enable HTTP/1.1 keep-alive 2026-05-24 18:26:56 +00:00
metering.py
models.py Merge #3191: guard session cache ownership across compression 2026-05-30 21:57:48 +00:00
oauth.py
onboarding.py
passkeys.py feat: support passkey-only auth 2026-05-25 00:14:38 +00:00
profiles.py fix(profiles): write API key to .env instead of config.yaml on profile creation 2026-05-28 15:45:17 +08:00
providers.py fix: honor shared OpenCode key at runtime 2026-05-30 02:18:06 +00:00
request_diagnostics.py
rollback.py
routes.py fix(security #3234): deny per-profile webui_state state subdirs (Codex review #11) 2026-05-31 04:11:35 +00:00
run_journal.py fix(chat): classify interrupted response causes 2026-05-25 02:06:42 +02:00
runtime_adapter.py Stage 398: PR #2696 — feat(runtime): add runner-local adapter selection (RuntimeAdapter slice 4c, feature-flagged) 2026-05-21 17:43:54 +00:00
session_discoverability.py Merge PR #3048 2026-05-28 17:47:33 +00:00
session_events.py
session_lifecycle.py
session_ops.py fix(session): preserve sidecar truncation boundary 2026-05-25 21:21:15 +08:00
session_recovery.py
skill_usage.py fix: remove webui-side writer to avoid conflict with agent 2026-05-27 20:57:32 +08:00
startup.py
state_sync.py Stage 406: PR #2827 — fix(state-sync): pass profile explicitly so background-thread DB writes hit the right state.db (#2762) by @Koraji95-coder 2026-05-24 18:57:40 +00:00
streaming.py Close evicted cached agents on identity mismatch 2026-05-30 19:25:51 -04:00
system_health.py
terminal.py fix(terminal): harden supervisor lifecycle and eliminate timeout race conditions 2026-05-25 20:45:17 +05:00
turn_journal.py fix: handle Windows media and turn journal edge cases 2026-05-30 11:15:35 +02:00
updates.py fix: hash dirty WebUI dev builds 2026-05-30 11:25:33 +02:00
upload.py fix: report stored upload filenames 2026-05-28 08:33:50 -04:00
usage.py
workspace.py fix: preserve tilde workspace suggestions 2026-05-30 11:35:05 +02:00
workspace_git.py
worktrees.py