santhreal
a13e29bf07
fix(telegram): preserve code block content when language tag contains special characters
2026-08-04 21:40:03 +08:00
chengyongru
757ad9c764
refactor: enforce BasedPyright strict type checking ( #5158 )
2026-07-29 21:37:11 +08:00
Xubin Ren
b55b76d755
fix(streaming): preserve recovered segments across channels
2026-07-27 01:39:46 +08:00
chengyongru
27a00c7a4f
fix(webui): merge length recovery stream segments
2026-07-27 01:39:46 +08:00
santhreal
7e9426d9bd
fix(telegram): hard-cut when fence body cut lands on the prefix
...
A leading space in the fenced body made the soft cut land at min_code_pos
and re-emit the same fence forever. Require progress past the fence line.
2026-07-23 23:56:18 +08:00
santhreal
98d661775e
fix(telegram): hard-cut fence splits when the closer cannot fit
...
Adaptive HTML limits can shrink max_len to the fence prefix size. Treat
budget <= min_code_pos as a hard cut so the splitter still advances.
2026-07-23 23:56:18 +08:00
santhreal
017a4946e2
fix(telegram): advance markdown split on long single-line fences
...
When a fenced code body has no interior newlines, the splitter cut at the
opening fence line and re-emitted the same content forever. Prefer breaks
inside the body after the fence so long JSON/minified blocks still split.
2026-07-23 23:56:18 +08:00
chengyongru
01cdfc8100
fix(telegram): expose proxy setup in WebUI ( #5033 )
2026-07-23 14:18:49 +08:00
chengyongru
462a0dfb0f
refactor(channels): make built-in channels self-contained ( #4908 )
...
* refactor(channels): own setup and instance contracts
* refactor(channels): isolate management contracts
* refactor(channels): normalize activation contracts
* fix(channels): enforce management contracts
* refactor(channels): finish setup ownership migration
* fix(channels): harden management contracts
* fix(channels): enforce lazy loading and runtime ownership
* fix(feishu): make multi-instance startup idempotent
* fix(webui): render channel setup contracts cleanly
* fix(feishu): stop websocket clients cleanly
* fix(channels): enforce persistence and activation gates
* fix(channels): preserve global feature action scope
* fix(channels): apply defaults for single plugins
* fix(channels): enforce management contract boundaries
* refactor(feishu): remove identity helper indirection
* fix(channels): preserve management setup contracts
* refactor(channels): generalize instance settings UI
* refactor(channels): package channel plugins with web UI metadata
* refactor(channels): make built-ins self-contained packages
* test(channels): colocate tests with channel packages
* fix(dingtalk): use official brand icon
* feat(channels): colocate webui translations
* docs(channels): clarify plugin ownership
* test(exec): remove output wait race
* refactor(channels): unify plugin descriptors
* fix(channels): enforce descriptor-owned contracts
* refactor(channels): finish package-owned plugin setup
* refactor(channels): use repository-owned packages only
* fix(channels): self-describe dependencies and runtime state
* fix(channels): warn about legacy entry points
2026-07-19 23:30:49 +08:00