Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
3ad2039
feat: migrate chat files to s3 (#5802)
xqvvu Oct 23, 2025
0ad5152
update pacakge
c121914yu Oct 23, 2025
8ec9daf
feat: add more file type for uploading (#5807)
xqvvu Oct 23, 2025
bfc83c2
bugfix: chat page (#5809)
xqvvu Oct 24, 2025
ff0cf1b
doc
c121914yu Oct 24, 2025
f63d357
Markdown match base64 performance
c121914yu Oct 25, 2025
364a748
feat: improve global variables(time, file, dataset) (#5804)
fishwww-ww Oct 26, 2025
4340495
perf: insert training queue
c121914yu Oct 26, 2025
291653f
perf: s3 upload error i18n
c121914yu Oct 26, 2025
5542b99
fix: share page s3
c121914yu Oct 26, 2025
41529d2
fix: timeselector ui error
c121914yu Oct 26, 2025
391fe93
var update node
c121914yu Oct 26, 2025
00957fe
Timepicker ui
c121914yu Oct 26, 2025
a62d0f6
feat: plugin support password
c121914yu Oct 27, 2025
f7765ec
fix: password disabled UX
c121914yu Oct 27, 2025
abf0b91
fix: button size
c121914yu Oct 28, 2025
6f9be5a
fix: no model cache for chat page (#5820)
xqvvu Oct 28, 2025
f4b8b79
rename function
c121914yu Oct 30, 2025
9942aed
fix: workflow bug
c121914yu Oct 30, 2025
9845b27
fix: interactive loop
c121914yu Oct 30, 2025
574effe
fix test
c121914yu Oct 30, 2025
cfcf327
perf: common textare no richtext
c121914yu Oct 30, 2025
bc250be
move system plugin config (#5803) (#5813)
c121914yu Oct 30, 2025
e9127b1
marketplace url
c121914yu Oct 30, 2025
4d13ea7
update action
c121914yu Oct 30, 2025
b76afcc
market place code
c121914yu Oct 30, 2025
5d8bc76
market place code
c121914yu Oct 30, 2025
5be0a22
title
c121914yu Oct 30, 2025
98acbb1
fix: nextconfig
c121914yu Oct 31, 2025
f2f6eaa
fix: copilot review
c121914yu Oct 31, 2025
aa8d617
Remove bypassable regex-based XSS sanitization from marketplace searc…
Copilot Oct 31, 2025
650d178
feat: tool tag openapi
c121914yu Oct 31, 2025
ea055ca
api check
c121914yu Oct 31, 2025
7089abb
fix: tsc
c121914yu Oct 31, 2025
7ed3cc7
fix: ts
c121914yu Oct 31, 2025
ae13012
fix: lock
c121914yu Oct 31, 2025
298f18d
sdk version
c121914yu Oct 31, 2025
abd3fd1
ts
c121914yu Oct 31, 2025
5fb0ed3
sdk version
c121914yu Oct 31, 2025
37ed4e6
remove invalid tip
c121914yu Oct 31, 2025
d66260c
perf: export data add timezone
c121914yu Nov 1, 2025
7776a7e
perf: admin plugin api move
c121914yu Nov 1, 2025
25ef757
perf: tool code
c121914yu Nov 1, 2025
0e45619
move tag code
c121914yu Nov 1, 2025
2f81dd2
perf: marketplace and team plugin code
c121914yu Nov 2, 2025
376d8d7
remove workflow invalid request
c121914yu Nov 2, 2025
0a74775
rename global tool code
c121914yu Nov 2, 2025
57db459
rename global tool code
c121914yu Nov 2, 2025
e8f1784
rename api
c121914yu Nov 2, 2025
06706ec
fix some bugs (#5841)
newfish-cmyk Nov 2, 2025
3baf3ac
perf: Concat function
c121914yu Nov 3, 2025
dfa3fca
fix: workflow snapshot push
c121914yu Nov 3, 2025
3335f13
fix: ts type
c121914yu Nov 3, 2025
3555c59
fix: login to config/*
c121914yu Nov 3, 2025
d3d2885
fix: ts
c121914yu Nov 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion CLAUDE.md → .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,9 @@ FastGPT 是一个 AI Agent 构建平台,通过 Flow 提供开箱即用的数据

## 代码规范

- 尽可能使用 type 进行类型声明,而不是 interface。
- 尽可能使用 type 进行类型声明,而不是 interface。

## Agent 设计规范

1. 对于功能的实习和复杂问题修复,优先进行文档设计,并于让用户确认后,再进行执行修复。
2. 采用"设计文档-测试示例-代码编写-测试运行-修正代码/文档"的工作模式,以测试为核心来确保设计的正确性。
4 changes: 2 additions & 2 deletions .claude/design/projects_app_performance_stability_analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ addActiveNode(nodeId: string) {

---

### 🔴 H2. MongoDB 连接池配置缺失
### 🔴 H2. MongoDB 连接池配置缺失(已解决)

**位置**:
- `packages/service/common/mongo/index.ts:12-24`
Expand Down Expand Up @@ -147,7 +147,7 @@ connectionMongo.connection.on('connectionPoolClosed', () => {

---

### 🔴 H3. SSE 流式响应未处理客户端断开
### 🔴 H3. SSE 流式响应未处理客户端断开(已解决)

**位置**: `packages/service/core/workflow/dispatch/index.ts:105-129`

Expand Down
4 changes: 3 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ vitest.config.mts
bin/
scripts/
deploy/
document/
document/

projects/marketplace
139 changes: 139 additions & 0 deletions .github/workflows/marketplace-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Build Marketplace images

on:
workflow_dispatch:

jobs:
build-marketplace-images:
permissions:
packages: write
contents: read
attestations: write
id-token: write
strategy:
matrix:
archs:
- arch: amd64
- arch: arm64
runs-on: ubuntu-24.04-arm
runs-on: ${{ matrix.archs.runs-on || 'ubuntu-24.04' }}
steps:
# install env
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: network=host

- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-${{ matrix.archs.arch }}-marketplace-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.archs.arch }}-marketplace-buildx-

# login docker
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Ali Hub
uses: docker/login-action@v3
with:
registry: registry.cn-hangzhou.aliyuncs.com
username: ${{ secrets.ALI_HUB_USERNAME }}
password: ${{ secrets.ALI_HUB_PASSWORD }}

- name: Build for ${{ matrix.archs.arch }}
id: build
uses: docker/build-push-action@v6
with:
context: .
file: projects/marketplace/Dockerfile
platforms: linux/${{ matrix.archs.arch }}
labels: |
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.description=marketplace image
outputs: type=image,"name=ghcr.io/${{ github.repository_owner }}/marketplace,${{ secrets.ALI_IMAGE_NAME }}/marketplace",push-by-digest=true,push=true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

- name: Export digest
run: |
mkdir -p ${{ runner.temp }}/digests/marketplace
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/marketplace/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-marketplace-${{ github.sha }}-${{ matrix.archs.arch }}
path: ${{ runner.temp }}/digests/marketplace/*
if-no-files-found: error
retention-days: 1

release-marketplace-images:
permissions:
packages: write
contents: read
attestations: write
id-token: write
needs: build-marketplace-images
runs-on: ubuntu-24.04
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Ali Hub
uses: docker/login-action@v3
with:
registry: registry.cn-hangzhou.aliyuncs.com
username: ${{ secrets.ALI_HUB_USERNAME }}
password: ${{ secrets.ALI_HUB_PASSWORD }}

- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-marketplace-${{ github.sha }}-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Generate random tag
id: tag
run: |
# Generate random hash tag (8 characters)
TAG=$(echo $RANDOM | md5sum | head -c 8)
echo "RANDOM_TAG=$TAG" >> $GITHUB_ENV
echo "Generated tag: $TAG"

- name: Set image name and tag
run: |
echo "Git_IMAGE=ghcr.io/${{ github.repository_owner }}/marketplace:${{ env.RANDOM_TAG }}" >> $GITHUB_ENV
echo "Ali_IMAGE=${{ secrets.ALI_IMAGE_NAME }}/marketplace:${{ env.RANDOM_TAG }}" >> $GITHUB_ENV

- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
echo "Pushing image with tag: ${{ env.RANDOM_TAG }}"
TAGS="$(echo -e "${Git_Tag}\n${Ali_Tag}")"
for TAG in $TAGS; do
docker buildx imagetools create -t $TAG \
$(printf 'ghcr.io/${{ github.repository_owner }}/marketplace@sha256:%s ' *)
sleep 5
done
echo "✅ Successfully pushed images:"
echo " - ${{ env.Git_IMAGE }}"
echo " - ${{ env.Ali_IMAGE }}"
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ description: FastGPT 系统插件设计方案

1. 使用 ts-rest 作为 RPC 框架进行交互,提供 sdk 供 FastGPT 主项目调用
2. 使用 zod 进行类型验证
3. 用 bun 进行编译,每个工具编译为单一的 `.js` 文件,支持热插拔。
3. 用 bun 进行编译,每个工具编译为单一的 `.pkg` 文件,支持热插拔。

## 项目结构

Expand All @@ -48,7 +48,8 @@ description: FastGPT 系统插件设计方案
- **model** 模型预设
- **scripts** 脚本(编译、创建新工具)
- **sdk**: SDK 定义,供外部调用,发布到了 npm
- **src**: 运行时,express 服务
- **runtime**: 运行时,express 服务
- **lib**: 库文件,提供工具函数和类库
- **test**: 测试相关

系统工具的结构可以参考 [如何开发系统工具](/docs/introduction/guide/plugins/dev_system_tool)
Expand Down Expand Up @@ -78,7 +79,7 @@ zod 可以实现在运行时的类型校验,也可以提供更高级的功能

### 使用 bun 进行打包

将插件 bundle 为一个单一的 `.js` 文件是一个重要的设计。这样可以将插件发布出来直接通过网络挂载等的形式使用。
将插件 bundle 为一个单一的 `.pkg` 文件是一个重要的设计。这样可以将插件发布出来直接通过网络挂载等的形式使用。

## 未来规划

Expand Down
Loading
Loading