Xubin Ren
abfcdd481a
fix(cli): validate Windows subprocess environment
2026-08-12 02:57:48 +09:00
LHMQ878 and Xubin Ren
a0e60116a3
fix(cli): stop leaking API keys to CLI app subprocesses
...
Installed CLI apps were started with os.environ.copy(), so provider keys
from the parent process were visible to untrusted binaries. Use a minimal
allowlist env matching the shell tool.
Fixes #4783
2026-08-12 02:57:48 +09:00
LHMQ878 and Xubin Ren
ec3dfb21ba
fix(cli): stop leaking API keys to CLI app subprocesses
...
Installed CLI apps were started with os.environ.copy(), so provider keys
from the parent process were visible to untrusted binaries. Use a minimal
allowlist env matching the shell tool.
Fixes #4783
2026-08-12 02:57:48 +09:00
Xubin Ren
72d3ce6b23
fix(skills): make PNG weather example Windows-safe
2026-08-12 02:48:03 +09:00
Kail Tian and Xubin Ren
b14ac4c401
fix(skills): make weather workflow Windows-safe
2026-08-12 02:48:03 +09:00
LHMQ878 and Xubin Ren
f5cf4dcd2c
fix(providers): stop writing API keys into process os.environ
...
OpenAICompatProvider already passes api_key into AsyncOpenAI. Mutating
shared os.environ leaked credentials across providers (gateway overwrite
and setdefault first-writer-wins).
Fixes #4784
2026-08-12 02:35:40 +09:00
Wesley Zhang and Xubin Ren
99e07e138e
fix(tools): reject non-finite number parameters
2026-08-12 02:25:20 +09:00
yu-xin-c and Xubin Ren
057e8f7af6
fix(matrix): isolate thread sessions
2026-08-12 02:15:17 +09:00
chengyongru and GitHub
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
chengyongru and chengyongru
1edfd268db
fix(webui): regenerate PWA icons from SVG
2026-08-11 20:59:06 +08:00
moran and chengyongru
c0e8b8afff
feat(webui): polish iOS PWA presentation
...
- Disable pinch/double-tap zoom via the viewport meta (system-level
accessibility zoom is unaffected).
- Add viewport-fit=cover so standalone mode renders edge-to-edge; the
layout already uses env(safe-area-inset-*) from #4693 .
- Add apple-mobile-web-app-* metas for standalone launch, status bar, and
home screen label on iOS.
- Prevent double-tap zoom and orientation text inflation via inline CSS.
2026-08-11 20:59:06 +08:00
moran and chengyongru
95287f7435
fix(webui): harden PWA service worker caching and registration
...
- Exclude /webui/* endpoints from the service worker cache; the
/webui/bootstrap endpoint issues fresh gateway credentials on every load
and must never be cached or replayed offline.
- Restrict cache-first handling to hashed /assets/ files (served immutable).
Un-hashed brand icons and the favicon stay network-first so future icon
swaps reach installed clients.
- Prune stale hashed assets whenever the app shell refreshes, so old build
assets cannot accumulate even when sw.js itself is unchanged.
- Serve the cached app shell for offline deep-link navigations.
- Ignore service worker registration failures; add unit tests for the
service worker and the main-entry registration.
2026-08-11 20:59:06 +08:00
zpljd258 and chengyongru
43ca12960b
feat(webui): add PWA support for mobile home screen installation
...
- Add manifest.json with icons for install prompt
- Add service worker with cache-first for static assets
- Register SW in main.tsx
- Link manifest in index.html
2026-08-11 20:59:06 +08:00
Xubin Ren
7703cd22eb
test(websocket): wait for server readiness
2026-08-11 20:16:24 +09:00
Xubin Ren
247c474e64
perf(plugins): cache verified skill roots
2026-08-11 20:16:24 +09:00
Xubin Ren
86c7508607
docs(plugins): clarify unified extension model
2026-08-11 20:16:24 +09:00
Xubin Ren
a2979c3a4b
fix(plugins): harden activation boundaries
2026-08-11 20:16:24 +09:00
Xubin Ren
d5e0df6963
feat(plugins): integrate portable Agent Plugins
2026-08-11 20:16:24 +09:00
chengyongru and GitHub
57d81bc1cd
fix(providers): preserve nanobot tools with OpenRouter server tools ( #5335 )
...
* fix(providers): preserve functions with extra body tools
* docs(providers): clarify extra body tool merging
2026-08-11 18:23:27 +08:00
chengyongru and chengyongru
3778e7e628
fix(webui): soften form control focus rings
2026-08-11 14:39:07 +08:00
chengyongru and chengyongru
cac39477ba
test(webui): await lazy settings import deterministically
2026-08-11 13:59:22 +08:00
chengyongru and chengyongru
eab017766b
refactor(webui): split settings frontend by domain
2026-08-11 13:27:19 +08:00
chengyongru and GitHub
52e0a6a1e3
refactor(webui): split settings backend by domain ( #5323 )
2026-08-11 11:23:27 +08:00
chengyongru and GitHub
8e77f3f8a4
feat(mcp): add browser OAuth for remote servers ( #5316 )
2026-08-10 23:44:37 +08:00
chengyongru and chengyongru
b3b0517611
fix(files): reject no-op edits
2026-08-10 21:39:00 +08:00
chengyongru and GitHub
c281e090d0
refactor(webui): make gateway own settings services ( #5321 )
2026-08-10 18:10:55 +08:00
chengyongru and GitHub
85a452e5c7
refactor(agent): replace reflective runtime state access ( #5319 )
2026-08-10 16:44:26 +08:00
chengyongru and chengyongru
05d73803e7
refactor(webui): extract event projection helpers
2026-08-10 16:24:07 +08:00
chengyongru and chengyongru
5d733b1c7c
fix(webui): move mutations to authenticated websocket requests
2026-08-10 16:23:47 +08:00
chengyongru and GitHub
71a99b0780
fix(webui): improve UX recovery and empty states ( #5315 )
2026-08-10 15:22:25 +08:00
chengyongru and chengyongru
43511decc9
fix(weixin): install QR code dependency
2026-08-10 13:48:49 +08:00
chengyongru and chengyongru
8dd2059be3
fix(weixin): require fresh credentials for forced login
2026-08-10 13:48:49 +08:00
KDB and chengyongru
7b1646f58c
fix(weixin): honor forced QR login
2026-08-10 13:48:49 +08:00
chengyongru and chengyongru
e620944150
fix(mcp): clean up failed HTTP connections
2026-08-10 13:15:04 +08:00
chengyongru and GitHub
66316f21da
docs: refresh WebUI user guidance ( #5312 )
2026-08-10 11:47:58 +08:00
chengyongru and GitHub
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
chengyongru and GitHub
411d6061ae
fix(webui): explain HTTPS requirement for voice input ( #5304 )
2026-08-09 21:17:57 +08:00
Xubin Ren
af52fbcbc4
fix(webui): emphasize temporary chat expiry
2026-08-08 23:20:59 +08:00
Xubin Ren
92eb91338a
fix(webui): label temporary chat guidance
2026-08-08 23:20:59 +08:00
Xubin Ren
c410ea444c
fix(agent): stop session-owned exec processes
2026-08-08 23:20:59 +08:00
chengyongru and Xubin Ren
8e04f12720
fix(webui): name temporary chats from first message
2026-08-08 23:20:59 +08:00
chengyongru and Xubin Ren
516ae11c33
fix(webui): simplify temporary chat closing
2026-08-08 23:20:59 +08:00
chengyongru and Xubin Ren
656e0d606b
fix(webui): tighten temporary chat close action
2026-08-08 23:20:59 +08:00
chengyongru and Xubin Ren
75e333a3c5
fix(webui): derive temporary chats from session policy
2026-08-08 23:20:59 +08:00
chengyongru and Xubin Ren
a5bc3bfbb9
fix(webui): complete temporary chat mode
2026-08-08 23:20:59 +08:00
Xubin Ren
c9a6145878
feat(webui): add temporary chat mode
2026-08-08 23:20:59 +08:00
chengyongru and chengyongru
113e8d67ad
refactor: remove verified dead code
2026-08-08 21:10:34 +08:00
chengyongru and GitHub
4e063f5695
fix(webui): prevent image hover clipping ( #5294 )
2026-08-08 18:05:00 +08:00
chengyongru and chengyongru
bd8d3ad5b6
fix(channels): preserve global progress defaults
2026-08-07 17:19:14 +08:00
chengyongru and GitHub
332c159b93
fix(weixin): harden protocol delivery, streaming, and login ( #5263 )
2026-08-07 16:53:31 +08:00