Commit Graph

13673 Commits

Author SHA1 Message Date
Val Alexander
3bbbe33a1b UI: gateway dashboard with glassmorphism theme system
Add a full-featured gateway dashboard UI built on Lit web components.

Shell & plumbing:
- App shell with router, controllers, and dependency wiring
- Login gate, i18n keys, and base layout scaffolding

Styles & theming:
- Base styles, chat styles, and responsive layout CSS
- 6-theme glassmorphism system (Obsidian, Aurora, Solar, etc.)
- Glass card, glass panel, and glass input components
- Favicon logo in expanded sidebar header

Views & features:
- Overview with attention cards, event log, quick actions, and log tail
- Chat view with markdown rendering, tool-call collapse, and delete support
- Command palette with fuzzy search
- Agent overview with config display, slash commands, and sidebar filtering
- Session list navigation and agent selector

Privacy & polish:
- Redact toggle with stream-mode default
- Blur host/IP in Connected Instances with reveal toggle
- Sensitive config value masking with count badge
- Card accent borders, hover lift effects, and responsive grid
2026-02-22 05:24:54 -06:00
Peter Steinberger
401106b963 fix: harden flaky tests and cover native google thought signatures (#23457) (thanks @echoVic) 2026-02-22 12:24:53 +01:00
echoVic
9176571ec1 fix(gemini): sanitize thoughtSignatures for native Google provider
Native Google Gemini provider was accumulating 2K-8K tokens of Base64
thoughtSignature blobs per turn, causing premature context overflow.

The sanitizer was only enabled for OpenRouter Gemini, not native Google.

Fixes #23392
2026-02-22 12:24:53 +01:00
Peter Steinberger
bf52273a58 test: harden flaky timeout-sensitive tests 2026-02-22 12:21:19 +01:00
Peter Steinberger
42f62821db fix: include shared runtime group-policy helper and coverage (#23367) (thanks @bmendonca3) 2026-02-22 12:21:04 +01:00
Peter Steinberger
777817392d fix: fail closed missing provider group policy across message channels (#23367) (thanks @bmendonca3) 2026-02-22 12:21:04 +01:00
Peter Steinberger
78c3c2a542 fix: stabilize flaky tests and sanitize directive-only chat tags 2026-02-22 12:19:33 +01:00
Brian Mendonca
3700151ec0 Channels: fail closed when Slack/Discord config is missing 2026-02-22 12:18:43 +01:00
Peter Steinberger
11546b1177 test(auth-choice): expand api provider dedupe coverage 2026-02-22 11:16:59 +00:00
Peter Steinberger
fc60f4923a refactor(auth-choice): unify api-key resolution flows 2026-02-22 11:16:30 +00:00
Ayaan Zaidi
8e00965618 test: use real SubsystemLogger in directive-tags test 2026-02-22 16:39:11 +05:30
Peter Steinberger
296b3f49ef refactor(bluebubbles): centralize private-api status handling 2026-02-22 12:08:41 +01:00
Yuzuru Suzuki
6f7e5f92c3 fix: add operator.read and operator.write to default CLI scopes (#22582)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 8569fc88c970e75934617c200ebfe117e9d5ae88
Co-authored-by: YuzuruS <1485195+YuzuruS@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 16:36:18 +05:30
Peter Steinberger
b77e53da67 refactor(session): centralize transcript path option resolution 2026-02-22 12:02:38 +01:00
Peter Steinberger
37f12eb7ee fix: align BlueBubbles private-api null fallback + warning (#23459) (thanks @echoVic) 2026-02-22 11:47:57 +01:00
echoVic
888b6bc948 fix(bluebubbles): treat null privateApiStatus as disabled, not enabled
Bug: privateApiStatus cache expires after 10 minutes, returning null.
The check '!== false' treats null as truthy, causing 500 errors when
trying to use Private API features that aren't actually available.

Root cause: In JavaScript, null !== false evaluates to true.

Fix: Changed all checks from '!== false' to '=== true', so null (cache
expired/unknown) is treated as disabled (safe default).

Files changed:
- extensions/bluebubbles/src/send.ts (line 376)
- extensions/bluebubbles/src/monitor-processing.ts (line 423)
- extensions/bluebubbles/src/attachments.ts (lines 210, 220)

Fixes #23393
2026-02-22 11:47:57 +01:00
Peter Steinberger
812bf7c8e1 fix: add bindings comment regression test (#23458) (thanks @echoVic) 2026-02-22 11:47:11 +01:00
echoVic
56f01bc493 fix(config): add missing comment field to BindingsSchema
Strict validation (added in d1e9490f9) rejects the legitimate 'comment'
field on bindings. This field is used for annotations in config files.

Changes:
- BindingsSchema: added comment: z.string().optional()
- AgentBinding type: added comment?: string

Fixes #23385
2026-02-22 11:47:11 +01:00
Glucksberg
2739328508 fix(telegram): classify undici fetch errors as recoverable for retry (#16699)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 67b5bce44f7014c8cbefc00eed0731e61d6300b9
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 16:16:11 +05:30
Peter Steinberger
38f02c7a32 fix(session): resolve agent session path with configured sessions dir
Co-authored-by: David Rudduck <david@rudduck.org.au>
2026-02-22 11:35:55 +01:00
Peter Steinberger
c283f87ab0 refactor: clarify strict loopback proxy audit rules 2026-02-22 11:35:08 +01:00
Peter Steinberger
97eb4af01e test: harden models-config env isolation list 2026-02-22 10:34:23 +00:00
Peter Steinberger
744df0fbe7 test: reclassify models-config suites from e2e to unit lane 2026-02-22 10:34:23 +00:00
Peter Steinberger
740fd7ae35 test: reclassify skills suites from e2e to unit lane 2026-02-22 10:34:23 +00:00
Peter Steinberger
5c57a45a59 fix: add non-streaming directive-tag regression tests (#23298) (thanks @SidQin-cyber) 2026-02-22 11:31:23 +01:00
SidQin-cyber
e6490732cd fix(gateway): strip directive tags from non-streaming webchat broadcasts
Closes #23053

The streaming path already strips [[reply_to_current]] and other
directive tags via stripInlineDirectiveTagsForDisplay, but the
non-streaming broadcastChatFinal path and the chat.inject path
sent raw message content to webchat clients, causing tags to
appear in rendered messages after streaming completes.
2026-02-22 11:31:23 +01:00
Peter Steinberger
c56ab39da5 perf(test): reduce bash e2e wait windows 2026-02-22 10:28:43 +00:00
Peter Steinberger
abff3f0f61 test: reclassify sessions_spawn lifecycle suite as unit test 2026-02-22 10:28:43 +00:00
Peter Steinberger
0b7c7ee1aa perf(test): speed up sessions_spawn lifecycle suite setup 2026-02-22 10:28:43 +00:00
Peter Steinberger
c962bcba37 test: reclassify sandbox merge and exec path suites as unit tests 2026-02-22 10:28:43 +00:00
Peter Steinberger
9ab7b85a66 perf(test): tighten background abort timing windows 2026-02-22 10:28:43 +00:00
Peter Steinberger
c995f9be07 test: reclassify mocked announce and sandbox suites as unit tests 2026-02-22 10:28:43 +00:00
Peter Steinberger
27f0d7ebcc test: reclassify auth-profile-rotation suite as unit test 2026-02-22 10:28:43 +00:00
Peter Steinberger
c0b1c10a08 test: reclassify mocked runner/safe-bins suites as unit tests 2026-02-22 10:28:43 +00:00
Peter Steinberger
a9b26d83de perf(test): narrow pi-embedded runner e2e import path 2026-02-22 10:28:42 +00:00
Peter Steinberger
2b0ca9447c perf(test): trim bash e2e sleep and poll windows 2026-02-22 10:28:42 +00:00
Peter Steinberger
c348a13640 perf(test): lower subagent fast-mode wait floors 2026-02-22 10:28:42 +00:00
Peter Steinberger
54e0786ba6 perf(test): reduce subagent announce fast-mode polling waits 2026-02-22 10:28:42 +00:00
Peter Steinberger
a96139e18c perf(test): mock compact module in auth rotation e2e 2026-02-22 10:28:42 +00:00
Peter Steinberger
eda941f395 perf(test): remove flaky transport timeout and dedupe safeBins checks 2026-02-22 10:28:42 +00:00
Peter Steinberger
d72b4ead18 perf(test): lower fast-mode nested output wait floor to 70ms 2026-02-22 10:28:42 +00:00
Peter Steinberger
7ccf62fb4c test(agents): remove dead shell-timeout override in safeBins suite 2026-02-22 10:28:42 +00:00
Peter Steinberger
60773c124e perf(test): lower fast-mode nested output wait floor to 80ms 2026-02-22 10:28:42 +00:00
Peter Steinberger
36375f121f perf(test): trim nested subagent output wait floor in fast mode 2026-02-22 10:28:42 +00:00
Peter Steinberger
2900eb5456 perf(test): trim background abort settle waits and dedupe cmd fixture 2026-02-22 10:28:42 +00:00
Peter Steinberger
7d13227d41 test(agents): dedupe auth profile rotation fixture setup 2026-02-22 10:28:42 +00:00
Peter Steinberger
6b5c20055b perf(test): speed subagent announce retry polling in fast mode 2026-02-22 10:28:42 +00:00
Peter Steinberger
8ad85de800 test(reply): align native trigger suite with fast-test fixture patterns 2026-02-22 10:28:42 +00:00
Peter Steinberger
9882bfe186 perf(test): compact remaining heartbeat fixture writes 2026-02-22 10:28:42 +00:00
Peter Steinberger
c8d473c8e8 test(heartbeat): use shared sandbox in sender target suite 2026-02-22 10:28:42 +00:00