chengyongru and GitHub
aa70aa48f9
fix(cli): point onboarding to the WebUI launcher ( #4938 )
2026-07-15 10:34:46 +08:00
chengyongru and chengyongru
0fd4d0ab29
fix(prompts): handle undecodable overrides
2026-07-15 01:19:48 +08:00
chengyongru and chengyongru
c1fd76add3
refactor(prompts): share workspace override handling
2026-07-15 01:19:48 +08:00
chengyongru and chengyongru
63a6d5d07d
fix(heartbeat): retain history after empty runs
2026-07-15 01:19:48 +08:00
Arthur K. and chengyongru
dcb37259fa
feat(heartbeat): custom evaluator prompt
2026-07-15 01:19:48 +08:00
chengyongru and GitHub
88c38e9b38
fix(restart): deliver completion after channel reconnects ( #4931 )
2026-07-15 01:08:39 +08:00
chengyongru and GitHub
37165b0db0
feat(webui): highlight slash commands and app mentions ( #4933 )
2026-07-15 00:34:22 +08:00
chengyongru and chengyongru
2116e32013
test: speed up CI and harden the suite
2026-07-15 00:18:37 +08:00
Olu B and chengyongru
06f47fa540
fix: standardize --config help text across CLI commands
2026-07-14 23:51:39 +08:00
chengyongru and chengyongru
905da8e34a
ci(webui): verify npm and bun lockfiles
2026-07-14 23:16:21 +08:00
5365bab088
fix(webui): sync package-lock.json for qrcode dependency
...
fe0717b3 ("feat(webui): add guided setup flows") added qrcode and
@types/qrcode to webui/package.json without regenerating the lockfile,
so `npm ci` fails in the Docker build with EUSAGE (Missing: qrcode,
@types/qrcode, dijkstrajs, pngjs, yargs, ...).
Regenerate the lockfile so it matches package.json again.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-14 23:16:21 +08:00
chengyongru and chengyongru
f718c69b2d
feat(webui): add copy action to user messages
2026-07-14 22:41:17 +08:00
chengyongru and GitHub
07f54c25e3
chore(codex): identify failing request stage ( #4929 )
2026-07-14 22:40:10 +08:00
chengyongru and chengyongru
1a1e666625
fix: install timezone data on Windows
2026-07-14 17:30:16 +08:00
chengyongru and chengyongru
297a9e5939
test: cover MCP cleanup cancellation paths
2026-07-14 16:17:35 +08:00
Brian Noah and chengyongru
86f6558707
fix: catch asyncio.CancelledError in close_mcp shutdown
...
When an MCP server (e.g. stdio browser-agent subprocess) does not
terminate within the AsyncExitStack.aclose() timeout, asyncio raises
CancelledError. The existing exception handler only caught RuntimeError
and BaseExceptionGroup, so CancelledError escaped the except block and
crashed nanobot with exit code 1 on every shutdown.
Add asyncio.CancelledError to the caught exception tuple so the error
is logged at debug level and shutdown completes cleanly.
Stack trace from the crash:
Traceback (most recent call last):
File ".../nanobot/agent/loop.py", line 1194, in close_mcp
await stack.aclose()
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".../asyncio/__main__.py", line ?, in <module>
File ".../nanobot/agent/loop.py", line ?, in close_mcp
...
RuntimeError: ... (or BaseExceptionGroup) not caught
SystemExit: 1
2026-07-14 16:17:35 +08:00
chengyongru and chengyongru
4916fc07ab
fix(agent): close reasoning on stream timeout
2026-07-14 15:51:22 +08:00
WK Wong and chengyongru
11eb9d8cc8
fix(agent): add wall-clock timeout for streaming LLM requests
2026-07-14 15:51:22 +08:00
chengyongru and GitHub
6c9e3a2cc3
refactor(webui): centralize native runtime access ( #4769 )
2026-07-14 15:00:30 +08:00
chengyongru and GitHub
b7048cf76a
feat(webui): support document attachments with ingress safeguards ( #4771 )
...
* feat: support document attachments in webui
* fix(webui): normalize document attachment MIME
* refactor(webui): move attachment policy out of channel
* fix(webui): reject oversized attachments before send
* fix(webui): align Portuguese attachment errors
* refactor(webui): separate ingress and transport limits
* fix(webui): reject malformed attachment payloads
2026-07-14 14:47:42 +08:00
chengyongru and GitHub
b2759e8a6b
docs: reorganize documentation around user workflows ( #4916 )
2026-07-14 13:59:47 +08:00
chengyongru and chengyongru
1643aa7ef5
fix(shell): narrow PowerShell UTF-8 configuration
...
Avoid changing native pipeline input encoding and consolidate real PowerShell checks to reduce Windows runner startup flakiness.
2026-07-14 13:50:02 +08:00
chengyongru and chengyongru
9f8c2cb1bf
test(shell): wait for Windows PowerShell sessions
2026-07-14 13:50:02 +08:00
chengyongru and chengyongru
61afbffc89
fix(shell): configure PowerShell UTF-8 output
2026-07-14 13:50:02 +08:00
adabarbulescu and chengyongru
9cdf17f5d5
Fix Windows exec UTF-16 output decoding
2026-07-14 13:50:02 +08:00
chengyongru and Xubin Ren
3b14d59dcd
fix(telegram): fall back on overflow HTML rejection
2026-07-14 12:25:28 +08:00
chengyongru and Xubin Ren
a335ce07db
fix(telegram): bound streamed HTML overflow chunks
2026-07-14 12:25:28 +08:00
sanasif786ka and Xubin Ren
87478b6e92
fix(telegram): keep raw markdown in overflow stream buffer tail
...
Send the overflow tail message with HTML parse_mode, but persist the
unrendered markdown chunk in buf.text so later deltas and stream_end
re-render correctly via _split_telegram_markdown_html().
2026-07-14 12:25:28 +08:00
sanasif786ka and Xubin Ren
67648774e2
fix(telegram): preserve HTML formatting in stream overflow chunks
...
Apply parse_mode=HTML to overflow intermediate chunks so markdown
formatting is not lost when long streamed messages are split.
Fixes #4637
2026-07-14 12:25:28 +08:00
chengyongru and chengyongru
6e462e62a6
fix(dream): limit newline normalization to CRLF
2026-07-14 00:30:50 +08:00
bingqilinweimaotai and chengyongru
ed47cf1562
fix(dream): ignore line-ending-only memory diffs
2026-07-14 00:30:50 +08:00
chengyongru and chengyongru
6b5820ea89
fix(webui): sync localized preboot copy
2026-07-13 23:28:19 +08:00
bill-kopp-ai-dev and chengyongru
1e7518a207
feat(webui): add Brazilian Portuguese (pt-BR) locale
...
Translate the WebUI common.json to pt-BR, register the locale in
config.ts (with normalizeLocale rules for "pt", "pt-BR", "pt-PT", ...)
and index.ts resources, and add a Brazilian Portuguese overview
assertion in i18n.test.tsx.
Notes:
- Generic "pt" and any "pt-*" variant resolve to pt-BR. A future
pt-PT locale can be added without affecting existing users.
- Universally borrowed technical terms (nanobot, BYOK, MCP, JSON,
URL, Web, Apps when used as a product name, Skills) are kept in
English, matching the pattern used by es/fr/ja/ko/vi/id.
- Empty-thread greetings, quick-action prompts, and slash command
descriptions are translated; quick-action prompts are intentionally
phrased so the agent still receives a clear task spec.
Verified with bun run test (536 passing), bun run lint (clean), and
bun run build (7.18s).
2026-07-13 23:28:19 +08:00
chengyongru and GitHub
4a3818e03c
docs: update recent changes through July 12 ( #4913 )
2026-07-13 22:50:22 +08:00
chengyongru and chengyongru
276cbd947f
docs: remove broken Star History embed
2026-07-13 18:28:22 +08:00
chengyongru and GitHub
234e895e5a
fix(codex): align OAuth defaults and setup docs ( #4910 )
...
* fix(codex): align OAuth defaults and setup docs
* docs(codex): clarify provider settings key
* docs(codex): simplify OAuth setup guidance
2026-07-13 17:04:33 +08:00
chengyongru and GitHub
8c9110fee3
fix(dream): filter non-Dream history commits ( #4905 )
...
* fix(dream): filter non-Dream history commits
* fix(dream): resolve filtered commit diffs
2026-07-13 17:04:12 +08:00
chengyongru and GitHub
e864fba522
fix: align optional dependency contracts ( #4907 )
...
* fix: align optional dependency contracts
* ci: avoid duplicate test suite
* test: drop removed langsmith assertions
* test: rely on generic extra coverage
* test: restore existing plugin coverage
2026-07-13 16:58:19 +08:00
Xubin Ren
a65a6f334c
test(gateway): cover slow health clients
2026-07-13 15:16:51 +08:00
Xubin Ren
3824206ab2
fix(gateway): harden health endpoint exposure
2026-07-13 15:16:51 +08:00
Xubin Ren and GitHub
2c78976728
fix(cli): restore enter before webui prompts
2026-07-13 13:32:29 +08:00
Xubin Ren and GitHub
fe0717b385
feat(webui): add guided setup flows
...
* feat(channels): add guided setup flows
* test(channels): preserve setup config values
* fix(channels): reflect saved setup state
* refactor(channels): simplify setup state metadata
* fix(channels): harden setup lifecycle
* refactor(channels): centralize setup contracts
* fix(channels): route setup actions through webui shim
* fix(channels): adapt settings for compact screens
* fix(models): preserve default preset display
* feat(models): add curated Codex catalog
* fix(webui): stop attached gateway on interrupt
* fix(webui): simplify apps catalog
* docs(webui): clarify apps and runtime features
* feat(settings): add guided capability setup
* fix(webui): harden setup and managed services
* test: keep managed runtime checks portable
* test: scope POSIX runtime coverage
* fix(webui): simplify file settings
* feat(files): bundle document reading
* fix(webui): harden setup request boundaries
* fix(webui): prevent channel setup status squeeze
* fix(settings): group provider compatibility aliases
* refactor(settings): remove redundant setup surfaces
* fix(webui): harden guided setup lifecycle
* fix(webui): preserve channel setup compatibility
2026-07-13 13:11:46 +08:00
chengyongru and Xubin Ren
791c7fd505
fix(memory): prune encoded Dream sessions
2026-07-13 12:07:29 +08:00
chengyongru and Xubin Ren
6d406d93c9
fix(discord): route unauthorized DMs to pairing
2026-07-13 12:05:04 +08:00
Arthur K. and Xubin Ren
053722a2a2
fix(heartbeat): rewrite prompt to execute tasks instead of reporting
2026-07-13 12:02:37 +08:00
Xubin Ren
45d1caba1d
fix(webui): prevent stale workspace scope restore
2026-07-12 22:08:27 +08:00
Xubin Ren
89acea6fe1
fix(webui): allow remote workspace access reduction
2026-07-12 22:08:27 +08:00
Xubin Ren
01e4f3762a
fix(agent): keep runtime context within its lifecycle
2026-07-12 00:35:17 +08:00
chengyongru and Xubin Ren
c339ce8bba
refactor(agent): remove obsolete MCP prompt annotations
2026-07-12 00:35:17 +08:00
chengyongru and Xubin Ren
12b88d3872
docs(agent): summarize full my tool capability
2026-07-12 00:35:17 +08:00