HERMES-GIELIE/api
nesquena-hermes bce1f9430b fix(#3102): don't let persisted watermark permanently drop future state.db recovery rows
Codex regression-gate finding: since Session.save() no longer auto-clears the
truncation_watermark, the unconditional 'timestamp > watermark' skip in
merge_session_messages_append_only became a permanent ceiling — a genuine future
state.db-only row (recovery/compaction, missed by the sidecar) would be silently
dropped from /api/session and model-context reconstruction forever. Only apply the
above-watermark skip while the sidecar has NOT advanced past the watermark. Preserves
the #2914 deleted-tail filtering (revert-verified). Adds 2 regression tests.
2026-06-01 18:14:48 +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(profiles): avoid config import cycle 2026-06-01 05:05:16 +00:00
dashboard_probe.py fix: preserve IPv6 dashboard link brackets 2026-05-19 21:35:10 -04:00
extensions.py
gateway_chat.py fix: carry WebUI reply polish into gateway chat 2026-06-01 04:42:23 +00: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 fix(#3102): don't let persisted watermark permanently drop future state.db recovery rows 2026-06-01 18:14:48 +00:00
oauth.py
onboarding.py
passkeys.py feat: support passkey-only auth 2026-05-25 00:14:38 +00:00
paths.py fix(profiles): avoid config import cycle 2026-06-01 05:05:16 +00:00
profiles.py fix(profiles): avoid config import cycle 2026-06-01 05:05:16 +00: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 #2914: stop agent replaying edited/undone messages; sync context_messages truncation (#3102) 2026-06-01 18:05:02 +00:00
run_journal.py fix(chat): classify interrupted response causes 2026-05-25 02:06:42 +02:00
runner_client.py harden: runner client rejects non-http(s) base_url + no redirect-follow (#3073) 2026-05-31 17:49:26 +00: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 sync session list from server events 2026-05-20 08:18:56 -06:00
session_lifecycle.py
session_ops.py fix(session): preserve sidecar truncation boundary 2026-05-25 21:21:15 +08:00
session_recovery.py fix(session): rebuild missing startup index 2026-05-20 23:43:30 +08:00
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 fix: use Optional[T] for default None parameters in state_sync.py 2026-06-01 17:20:17 +00:00
streaming.py fix: keep WebUI reply guidance language-neutral 2026-06-01 04:42:23 +00: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(updates): fall through when release tag is not ff-reachable 2026-05-31 16:18:06 +00:00
upload.py fix: report stored upload filenames 2026-05-28 08:33:50 -04:00
usage.py fix: display canonical cache hit percentage 2026-05-19 02:27:12 -06:00
workspace.py fix: preserve tilde workspace suggestions 2026-05-30 11:35:05 +02:00
workspace_git.py fix(workspace): tighten git subprocess trust boundary 2026-05-20 11:02:45 +00:00
worktrees.py