Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1a03853
docs: update README banners
Soulter Jul 20, 2026
596330f
docs: recommend QQ official bot for QQ integration
Soulter Jul 21, 2026
a325819
chore(deps): bump the github-actions group with 2 updates (#9333)
dependabot[bot] Jul 21, 2026
5425470
fix: Faiss read/write failure on Windows with non-ASCII user paths (r…
irmia2026 Jul 22, 2026
2035dbd
fix: move now = datetime.now() inside the lock to avoid stale timesta…
yunyancuo Jul 22, 2026
10e5ca6
Feat: Allow adjust plugin log levels (#9342)
RC-CHN Jul 24, 2026
1240156
chore: pin Ruff to 0.15.22 (#9369)
RC-CHN Jul 24, 2026
fcce010
fix(stats): report process CPU usage without blocking the event loop …
KBVsent Jul 24, 2026
04fb05c
fix: preserve checkpoints after failed LLM requests (#9358) (#9359)
wcqqq1214 Jul 24, 2026
94a74e2
fix: restore lazy faiss import to prevent process hang (#8695 regress…
irmia2026 Jul 24, 2026
b39d504
fix: show progress when saving plugin config (#9327)
backrooms-yrc Jul 24, 2026
d5620d9
fix: check quoted text for content safety (#9232)
2409324124 Jul 24, 2026
ff3b74d
fix: 防止人格编辑弹窗误触关闭 (#9238)
Last-emo-boy Jul 24, 2026
11a5672
fix: preserve embedding batch result order (#9241)
lxfight Jul 24, 2026
fb02c72
fix: 处理 Tavily 日期筛选参数冲突 (#9234)
Last-emo-boy Jul 24, 2026
e8819ac
test: prevent updater path tests from creating stray dirs (#9376)
wcqqq1214 Jul 25, 2026
f9c6129
feat: honor Telegram partial reply quotes (#9236)
Last-emo-boy Jul 25, 2026
b445995
fix(dingtalk): handle command errors and rich-text mentions (#9389)
bowling233 Jul 26, 2026
d1ae378
fix(kb): reject a zero/negative embedding dimension when creating a f…
AmirF194 Jul 26, 2026
7c2a2e9
fix: respect zero values for forward parser depth/fetch limits (#9236…
Foolllll-J Jul 26, 2026
5e68ee7
fix: drop trailing separator from message outline (#9390)
shentry Jul 26, 2026
7f1b699
fix: add model config for FishAudio TTS provider (#9381)
qiyueling2716 Jul 26, 2026
e732e95
docs: add Windows Docker Desktop deployment guide (#9339)
PersonalViolet Jul 26, 2026
44b0db4
fix: return correct WebChat image MIME types (#9319)
VectorPeak Jul 26, 2026
e36e161
fix: handle nested OpenAI completion choices (#9386)
wcqqq1214 Jul 26, 2026
9e3497e
fix: resolve double scrollbar in conversation detail and console page…
Rain-0x01-39 Jul 26, 2026
1fcfffc
fix(webui): prevent local plugin upload from hanging (#9406)
Soulter Jul 26, 2026
2b21a6f
fix: guard C extension reload in _prefer_module_from_site_packages to…
irmia2026 Jul 27, 2026
8def35f
chore(deps): bump docker/login-action in the github-actions group (#9…
dependabot[bot] Jul 28, 2026
9848c07
Update default.py (#9414)
lingyun14beta Jul 28, 2026
9ff715f
fix: use current provider selection when regenerating chat message (#…
wcqqq1214 Jul 28, 2026
80f3fd6
fix(cron): decouple the cron scheduler running state from the databas…
gomico Jul 28, 2026
3f9aa74
fix(provider): align Bailian rerank protocol with endpoint (#9413)
StevenQinDev Jul 28, 2026
3ca4c09
fix: correct double-escaped regex in Discord slash command name valid…
wcqqq1214 Jul 28, 2026
9c9d609
docs: update plugin publish (#9415)
XTsat Jul 28, 2026
868c3f1
fix: improve conversation list performance and prevent stale updates …
Sisyphbaous-DT-Project Jul 28, 2026
2b90b94
fix: update MiMo TTS default model (#9428)
wcqqq1214 Jul 28, 2026
5b29f6f
feat: add categorization to platform logs and a UI toggle to hide use…
M1LKT Jul 28, 2026
ad22c67
feat: add DashScope embedding provider with multimodal model support …
leafliber Jul 28, 2026
d9790e3
fix(proxy): ensure AstrBot ignores system proxy variables when no pro…
NayukiChiba Jul 28, 2026
b0cb91f
fix: preserve per-knowledge-base sparse retrieval ranks and use them …
chinatsu1124 Jul 28, 2026
73ecc39
feat: add ChatUI workspace file browser (#9432)
Soulter Jul 28, 2026
60c9e68
chore: bump version to 4.26.8 (#9421)
Soulter Jul 28, 2026
0d1154b
feat: add respect_env_proxy config and trust_env for MCP HTTP clients
bowling233 Jul 29, 2026
05846bd
feat: add respect_env_proxy config option
bowling233 Jul 29, 2026
b8b27f6
fix: set trust_env=True for aiohttp ClientSession in MCP connection test
bowling233 Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
with:
version: 10.28.2
- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@v7
with:
node-version: "24.13.0"
cache: "pnpm"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/code-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'

Expand All @@ -27,8 +27,8 @@ jobs:

- name: Check code formatting with ruff
run: |
uv run ruff format --check .
uvx --from ruff==0.15.22 ruff format --check .

- name: Check code style with ruff
run: |
uv run ruff check .
uvx --from ruff==0.15.22 ruff check .
2 changes: 1 addition & 1 deletion .github/workflows/coverage_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7

- name: Install dependencies
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dashboard_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
version: 10.28.2

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@v7
with:
node-version: '24.13.0'
cache: "pnpm"
Expand Down
178 changes: 178 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
name: Publish Docker image to GHCR

on:
push:
branches:
- '**'
workflow_dispatch:

permissions:
contents: read
packages: write

jobs:
publish:
name: Build and push image (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- arch: amd64
runner: ubuntu-latest
platform: linux/amd64
- arch: arm64
runner: ubuntu-24.04-arm
platform: linux/arm64

steps:
- name: Check out source
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 1

- name: Prepare build metadata
id: build
shell: bash
run: |
BASE_VERSION=$(python3 <<'PY'
import tomllib

with open("pyproject.toml", "rb") as file:
print(tomllib.load(file)["project"]["version"])
PY
)
if [ -z "$BASE_VERSION" ]; then
echo "::error::pyproject.toml must contain project.version"
exit 1
fi

SHORT_SHA=$(git rev-parse --short HEAD)
BUILD_VERSION="${BASE_VERSION}-${SHORT_SHA}"

echo "short_sha=$SHORT_SHA" >> "$GITHUB_OUTPUT"
echo "version=$BUILD_VERSION" >> "$GITHUB_OUTPUT"
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"

- name: Set up pnpm
uses: pnpm/action-setup@v6.0.9
with:
version: 10.28.2

- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '24.13.0'
cache: pnpm
cache-dependency-path: dashboard/pnpm-lock.yaml

- name: Build dashboard
working-directory: dashboard
run: |
pnpm install --frozen-lockfile
pnpm build
mkdir -p dist/assets
echo "v${{ steps.build.outputs.version }}" > dist/assets/version

- name: Copy dashboard into image context
run: |
rm -rf astrbot/dashboard/dist
mkdir -p astrbot/dashboard
cp -r dashboard/dist astrbot/dashboard/dist

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2a # v4.2.0

- name: Log in to GHCR
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push image
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
with:
context: .
platforms: ${{ matrix.platform }}
push: true
tags: ghcr.io/team-s2/astrbot:${{ steps.build.outputs.short_sha }}-${{ matrix.arch }}
labels: |
org.opencontainers.image.source=https://github.com/team-s2/AstrBot
org.opencontainers.image.revision=${{ steps.build.outputs.revision }}
org.opencontainers.image.version=${{ steps.build.outputs.version }}
cache-from: type=gha,scope=astrbot-${{ matrix.arch }}
cache-to: type=gha,mode=max,scope=astrbot-${{ matrix.arch }}
provenance: mode=max
sbom: true

- name: Publish summary
env:
SHORT_SHA: ${{ steps.build.outputs.short_sha }}
VERSION: ${{ steps.build.outputs.version }}
ARCH: ${{ matrix.arch }}
PLATFORM: ${{ matrix.platform }}
run: echo "Published \`$SHORT_SHA-$ARCH\` with VERSION \`$VERSION\` for \`$PLATFORM\`." >> "$GITHUB_STEP_SUMMARY"

manifest:
name: Publish multi-platform manifest
needs: publish
runs-on: ubuntu-latest

steps:
- name: Check out source
uses: actions/checkout@9c091bb21b7c1d1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 1

- name: Prepare build metadata
id: build
shell: bash
run: |
BASE_VERSION=$(python3 <<'PY'
import tomllib

with open("pyproject.toml", "rb") as file:
print(tomllib.load(file)["project"]["version"])
PY
)
SHORT_SHA=$(git rev-parse --short HEAD)
BUILD_VERSION="${BASE_VERSION}-${SHORT_SHA}"

echo "short_sha=$SHORT_SHA" >> "$GITHUB_OUTPUT"
echo "version=$BUILD_VERSION" >> "$GITHUB_OUTPUT"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2a # v4.2.0

- name: Log in to GHCR
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create commit manifest
env:
SHORT_SHA: ${{ steps.build.outputs.short_sha }}
run: |
docker buildx imagetools create \
--tag "ghcr.io/team-s2/astrbot:${SHORT_SHA}" \
"ghcr.io/team-s2/astrbot:${SHORT_SHA}-amd64" \
"ghcr.io/team-s2/astrbot:${SHORT_SHA}-arm64"

- name: Create latest manifest
if: github.ref == 'refs/heads/master'
env:
SHORT_SHA: ${{ steps.build.outputs.short_sha }}
run: |
docker buildx imagetools create \
--tag ghcr.io/team-s2/astrbot:latest \
"ghcr.io/team-s2/astrbot:${SHORT_SHA}-amd64" \
"ghcr.io/team-s2/astrbot:${SHORT_SHA}-arm64"

- name: Publish summary
env:
SHORT_SHA: ${{ steps.build.outputs.short_sha }}
VERSION: ${{ steps.build.outputs.version }}
run: echo "Published multi-platform manifest \`$SHORT_SHA\` with VERSION \`$VERSION\`." >> "$GITHUB_STEP_SUMMARY"
8 changes: 4 additions & 4 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,14 @@ jobs:
uses: docker/setup-buildx-action@v4.2.0

- name: Log in to DockerHub
uses: docker/login-action@v4.4.0
uses: docker/login-action@v4.5.1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

- name: Login to GitHub Container Registry
if: env.HAS_GHCR_TOKEN == 'true'
uses: docker/login-action@v4.4.0
uses: docker/login-action@v4.5.1
with:
registry: ghcr.io
username: ${{ env.GHCR_OWNER }}
Expand Down Expand Up @@ -177,14 +177,14 @@ jobs:
uses: docker/setup-buildx-action@v4.2.0

- name: Log in to DockerHub
uses: docker/login-action@v4.4.0
uses: docker/login-action@v4.5.1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

- name: Login to GitHub Container Registry
if: env.HAS_GHCR_TOKEN == 'true'
uses: docker/login-action@v4.4.0
uses: docker/login-action@v4.5.1
with:
registry: ghcr.io
username: ${{ env.GHCR_OWNER }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
version: 10.28.2

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@v7
with:
node-version: '24.13.0'
cache: "pnpm"
Expand Down Expand Up @@ -244,7 +244,7 @@ jobs:
cp -r dashboard-artifact/unpacked/dist/. astrbot/dashboard/dist/

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: "3.10"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/smoke_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-wiki.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.11'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: '3.12'

Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ ci:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.14.1
rev: v0.15.22
hooks:
# Run the linter.
- id: ruff-check
Expand Down
21 changes: 19 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
本仓库是上游 `AstrBotDevs/AstrBot` 的 fork。

分支说明:

- `master`:以最新的上游 release tag 为基线进行 rebase,保留 team-s2 仍然需要的增量修改,并由 GitHub Actions 构建 `ghcr.io/team-s2/astrbot`。

本仓库的例行维护流程:

- 检查上游是否有更新的 release tag
- 将本 fork rebase 到最新的上游 tag
- 保留本 fork 的增量变更
- 当上游实现了本 fork 的增量变更时,直接使用上游的实现
- 运行相关的后端、前端测试或构建
- 提交并 force push

需要将本仓库的变更提交到上游时,应当为相关变更创建独立的分支,避免将不必要的变更提交到上游。

## Setup commands

### Core
Expand Down Expand Up @@ -37,7 +54,7 @@ ruff format .
ruff check .
```

> **Note:** If you use VSCode, install the `Ruff` extension for real-time formatting and linting in the editor.
> **Note**: If you use VSCode, install the `Ruff` extension for real-time formatting and linting in the editor.

## Dev environment tips

Expand Down Expand Up @@ -133,4 +150,4 @@ For one-off release candidate branches, delete the release branch after the tag
```bash
git branch -d release/4.25.0
git push origin --delete release/4.25.0
```
```
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)


<div align="center">
Expand Down
4 changes: 2 additions & 2 deletions README_es.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)


<div align="center">
Expand Down Expand Up @@ -286,4 +286,4 @@ _La compañía y la capacidad nunca deberían estar en conflicto. Lo que aspiram
_私は、高性能ですから!_

<img src="https://files.astrbot.app/watashiwa-koseino-desukara.gif" width="100"/>
</div>
</div>
2 changes: 1 addition & 1 deletion README_fr.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)

<div align="center">

Expand Down
2 changes: 1 addition & 1 deletion README_ja.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)

<div align="center">

Expand Down
2 changes: 1 addition & 1 deletion README_ru.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)

<div align="center">

Expand Down
2 changes: 1 addition & 1 deletion README_zh-TW.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/ffd99b6b-3272-4682-beaa-6fe74250f7d9)
![AstrBot-Logo-Simplified](https://github.com/user-attachments/assets/36fb04e4-cc75-4454-bd8b-049d11aa86f9)

<div align="center">

Expand Down
Loading
Loading