Commit Graph

1411 Commits

Author SHA1 Message Date
nesquena-hermes 7c3dcce1d0 Stage 388: PR #2598 2026-05-20 00:17:47 +00:00
Eleanor Berger 2e91c0f81e fix: honour skin value in theme command 2026-05-20 00:09:06 +00:00
Eleanor Berger 4598adfd04 feat: add Geist Contrast skin 2026-05-20 00:09:06 +00:00
AJV20 612fcd30fe fix: avoid duplicate live tool events 2026-05-19 18:41:08 -04:00
nesquena-hermes 6d43116794 Stage 387: PR #2573 2026-05-19 22:10:20 +00:00
nesquena-hermes cc8ef201be Stage 387: PR #2600 2026-05-19 22:10:20 +00:00
nesquena-hermes 93727897b6 Stage 387: PR #2605
# Conflicts:
#	api/routes.py
2026-05-19 22:10:20 +00:00
nesquena-hermes 1ddb18264e Stage 387: PR #2604
# Conflicts:
#	CHANGELOG.md
2026-05-19 22:08:56 +00:00
nesquena-hermes 4bb60d9b10 Stage 387: PR #2601 2026-05-19 22:08:56 +00:00
nesquena-hermes 3a404874aa Stage 387: PR #2603 2026-05-19 22:08:56 +00:00
nesquena-hermes c3fd395bd6 Stage 387: PR #2597 2026-05-19 22:08:56 +00:00
nesquena-hermes e63de7c15f Stage 387: PR #2593
# Conflicts:
#	CHANGELOG.md
2026-05-19 22:08:56 +00:00
nesquena-hermes 536a8b7636 Stage 387: PR #2566 2026-05-19 22:08:55 +00:00
Lumen Yang dc5c8168d1 fix(webui): refresh active session on external sidecar updates 2026-05-19 21:34:08 +00:00
Michael Lam 1ebfbf3527 fix: reconcile session metadata counts 2026-05-19 14:28:20 -07:00
starship-s 692ea22f9e fix(streaming): finish auto-compression card after rotation 2026-05-19 14:35:11 -06:00
keyos 729ed415ff fix(approval): peek _gateway_queues for session-level approval when _pending is empty
During active streaming, dangerous-command approvals go through the
gateway path and are stored in _gateway_queues as _ApprovalEntry
objects, not in _pending. The _resolve_approval_legacy helper only
looked at _pending, so 'Allow for this session' never called
approve_session() — the user clicked Allow, the card vanished, but
the next dangerous command asked again.

Now when _pending has no matching entry, the helper peeks into
_gateway_queues to extract pattern_keys, calls approve_session(),
and marks found_target=True so resolve_gateway_approval also fires.

This commit is re-scoped to peek-only (no agent_session_key round-trip,
no state_db metadata changes).

Includes:
- Import + fallback for _gateway_queues
- Null-safe key filtering in all_keys
- Source-contract test (static) + functional test with
  @requires_agent_modules skip marker for CI
- All comments and docstrings in English
2026-05-19 20:24:05 +00:00
starship-s 37df7d76a4 fix(webui): prevent composer draft rollback on refresh 2026-05-19 13:31:12 -06:00
Michael Lam 5770323188 feat(runtime): add runner adapter facade 2026-05-19 12:06:57 -07:00
AJV20 ebb4dffc7d fix: stream live tool callback events 2026-05-19 14:55:19 -04:00
Lumen Yang 8d2b9d4a16 feat(webui): render indexed context metadata 2026-05-19 18:52:50 +00:00
Dennis Soong acd1df1112 fix: time out hung browser api requests 2026-05-20 02:41:00 +08:00
nesquena-hermes 6c0f864b10 Stage 386: PR #2587
# Conflicts:
#	CHANGELOG.md
2026-05-19 18:20:47 +00:00
nesquena-hermes 86f52f67b8 Stage 386: PR #2581
# Conflicts:
#	api/streaming.py
2026-05-19 18:20:47 +00:00
nesquena-hermes 0585881511 Stage 386: PR #2583 2026-05-19 18:20:07 +00:00
nesquena-hermes 7675f2f139 Stage 386: PR #2588
# Conflicts:
#	CHANGELOG.md
2026-05-19 18:20:07 +00:00
nesquena-hermes 9a512194d5 Stage 386: PR #2582
# Conflicts:
#	CHANGELOG.md
2026-05-19 18:20:07 +00:00
nesquena-hermes 42c2eda0fc Stage 386: PR #2579 2026-05-19 18:20:06 +00:00
nesquena-hermes 4b72539b3c Stage 386: PR #2576 2026-05-19 18:20:06 +00:00
nesquena-hermes 05de68f5b3 Stage 386: PR #2580 2026-05-19 18:20:06 +00:00
Michael Lam 0736e45485 fix: dedupe tool-only partial recovery markers 2026-05-19 11:16:21 -07:00
Michael Lam bc7648271f fix: preserve provider for configured model picker selections 2026-05-19 08:05:52 -07:00
Lumen Yang a8d429775c fix(webui): preserve casual chat compaction guard 2026-05-19 14:34:58 +00:00
AJV20 f93e288214 Fix stale stream recovery writeback race 2026-05-19 10:26:45 -04:00
dobby-d-elf 2a95c1e482 Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
Michael Lam 71d8a8fb1b fix: reap terminal shells on shutdown 2026-05-19 04:57:51 -07:00
Michael Lam 79652935d3 fix: centralize workspace tree toggle width 2026-05-19 01:49:52 -07:00
starship-s 2e9ca283dc fix: display canonical cache hit percentage 2026-05-19 02:27:12 -06:00
Lumen Yang 6ca63e5815 perf(webui): keep external refresh metadata cheap 2026-05-19 08:02:43 +00:00
Lumen Yang a63ab310b5 fix(webui): preserve reconciled session invariants 2026-05-19 08:02:43 +00:00
Lumen Yang f12fef280d fix(webui): clear stale prompts on external refresh
Force same-session external refreshes to dismiss stale approval and clarification prompts immediately so completed state.db updates do not leave the composer blocked.
2026-05-19 08:02:43 +00:00
Lumen Yang 467ef33a24 feat(webui): reconcile external session updates
When API server runs append messages directly to state.db, reconcile WebUI sidecar sessions with those canonical rows across API responses, model-facing streaming context, and active browser refresh.

Add append-only state.db merge helpers, metadata-only counts for refresh polling, and regression coverage for API visibility, context incorporation, and frontend refresh behavior.
2026-05-19 08:02:43 +00:00
dobby-d-elf 11e1e9a342 Fix settled rendering for file markdown links 2026-05-18 22:32:20 -06:00
Michael Lam 960c95cfe3 docs(runtime): define runner sidecar gate 2026-05-18 21:06:05 -07:00
nesquena-hermes a978612b76 Update brittle-source-string assertions for widened compressed-event guard 2026-05-19 03:21:26 +00:00
nesquena-hermes 54875f2110 Stage 385: PR #2550 2026-05-19 03:13:47 +00:00
nesquena-hermes d92e44ef5a Stage 385: PR #2568
# Conflicts:
#	CHANGELOG.md
2026-05-19 03:13:47 +00:00
nesquena-hermes e9079548ab Stage 385: PR #2567
# Conflicts:
#	CHANGELOG.md
2026-05-19 03:13:47 +00:00
nesquena-hermes 975928ffb7 Stage 385: PR #2561 2026-05-19 03:13:46 +00:00
nesquena-hermes ed4e7e67ce Stage 385: PR #2563
# Conflicts:
#	CHANGELOG.md
2026-05-19 03:13:46 +00:00