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