Skip to content

Commit e74852e

Browse files
authored
Merge pull request #29 from DEEIX-AI/dev
chore: updated to version v0.1.1
2 parents fa9a7c8 + 6129f10 commit e74852e

193 files changed

Lines changed: 10966 additions & 1313 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Commit Message
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- dev
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
validate:
14+
name: Validate commit messages
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
23+
- name: Check commit message subjects
24+
shell: bash
25+
run: |
26+
set -euo pipefail
27+
28+
pattern='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test): [A-Za-z0-9 _-]+$'
29+
30+
range="${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
31+
32+
invalid=0
33+
while IFS= read -r line; do
34+
sha="${line%% *}"
35+
subject="${line#* }"
36+
37+
if [[ "$subject" == Merge\ * ]]; then
38+
continue
39+
fi
40+
41+
if [[ ! "$subject" =~ $pattern ]]; then
42+
echo "::error title=Invalid commit message::${sha} ${subject}"
43+
invalid=1
44+
fi
45+
done < <(git log --format='%H %s' "$range")
46+
47+
if [[ "$invalid" -ne 0 ]]; then
48+
echo "Commit message subjects must use: type: subject"
49+
echo "Allowed types: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test"
50+
echo "Allowed subject characters: English letters, numbers, spaces, hyphens, and underscores"
51+
exit 1
52+
fi

.github/workflows/docker-image.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ on:
44
push:
55
branches:
66
- main
7+
- dev
78
tags:
89
- "v*.*.*"
910
pull_request:
1011
branches:
1112
- main
13+
- dev
1214
workflow_dispatch:
1315

1416
permissions:

CONTRIBUTING.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,33 @@ Use the example configuration files for local development. Do not commit local s
3636
- Keep generated artifacts out of commits unless the project explicitly requires them.
3737
- Do not commit caches, build output, `.pyc` files, `.env` files, or local storage data.
3838

39+
## Commit Messages
40+
41+
Use the `type: subject` format for every commit message subject.
42+
Use only English letters, numbers, spaces, hyphens, and underscores in the subject.
43+
44+
Allowed types:
45+
46+
- `build`
47+
- `chore`
48+
- `ci`
49+
- `docs`
50+
- `feat`
51+
- `fix`
52+
- `perf`
53+
- `refactor`
54+
- `revert`
55+
- `style`
56+
- `test`
57+
58+
Examples:
59+
60+
- `feat: add model routing priority`
61+
- `fix: handle expired refresh tokens`
62+
- `refactor: simplify channel lookup`
63+
64+
Commit message subjects that do not match this format will fail CI.
65+
3966
## Architecture Boundaries
4067

4168
- `frontend/` owns the user interface, client-side state, message rendering, and admin/user workflows.

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ The architecture is designed for simple deployment, efficient static delivery, a
3434
| Area | Capabilities |
3535
| --- | --- |
3636
| Conversations | Multi-branch chat, streaming, retries, edits, feedback, sharing, cloned shared conversations, rich markdown rendering, file cards, model metadata, usage details, and execution traces. |
37-
| Media generation | Dedicated image generation and image edit flow with task-aware routing, OpenAI Images-compatible protocols, generated file storage, preview, download, and run history separated from text chat. |
37+
| Media generation | Dedicated image generation and image edit flow with task-aware routing, provider-native OpenAI, Google, and xAI image protocols, generated file storage, preview, download, and run history separated from text chat. |
3838
| Model control plane | Platform model catalog, upstream channels, real upstream models, route bindings, priority and weight routing, model capability JSON, display ordering, vendor mapping, automatic icons, and circuit breaker state. |
39-
| Provider protocols | OpenAI Responses and Chat Completions, OpenAI Images, Anthropic Messages, Google/Gemini Generate Content, xAI Responses, OpenRouter defaults, and custom OpenAI-compatible routes. |
39+
| Provider protocols | OpenAI Responses, Chat Completions, Images Generations, and Images Edits; Anthropic Messages; Google/Gemini Generate Content and Image Generation; xAI Responses, Images Generations, and Images Edits; OpenRouter defaults; and custom OpenAI-compatible routes. |
4040
| Request governance | Protocol-aware request assembly, user option allowlists and denylists, system-protected fields, previous-response continuation where supported, and context snapshots for review. |
4141
| Files and RAG | File upload, preview, download, deletion, quota control, MIME detection, text extraction, OCR, full-context injection, image context, chunking, embeddings, and semantic retrieval. |
4242
| Memory and context | Message-window truncation, token-budget truncation, context compression, conversation memory, long-term user memory, RAG evidence records, and prompt trace inspection. |
@@ -246,7 +246,9 @@ Common backend environment variables:
246246

247247
Production mode rejects unsafe default secrets, weak encryption keys, wildcard CORS, and non-HTTPS public URLs.
248248

249-
The initial superadmin bootstrap credentials are built in as `deeix-chat` / `deeix-chat-2026` / `System Admin`. They are used only when the database has no superadmin account. The first login forces changing the username and password; later changes are managed from the account flow, not from `config.yaml`.
249+
The initial superadmin username is `admin`. When the database has no superadmin account, the backend generates a random password and prints it once in the startup logs while creating the account. The first login forces changing the username and password; later changes are managed from the account flow, not from `config.yaml`.
250+
251+
To retrieve the initial admin password, inspect the backend logs from the first startup and search for `bootstrap superadmin created`; the `username` and `password` fields are the initial login credentials. If a superadmin already exists in the database, the service does not regenerate or print this password again.
250252

251253
## Security Notes
252254

README.zh-CN.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ DEEIX Chat 为团队提供统一的 AI 工作台,用一个清晰的使用入
3434
| 模块 | 能力 |
3535
| --- | --- |
3636
| 对话体验 | 多分支会话、流式响应、重试、编辑、反馈、公开分享、克隆分享会话、富文本 Markdown、文件卡片、模型元信息、用量明细和执行链路。 |
37-
| 媒体生成 | 独立的图片生成和图片编辑链路,按任务类型路由到 OpenAI Images 兼容协议,生成结果统一入库为文件,支持预览、下载和独立运行记录。 |
37+
| 媒体生成 | 独立的图片生成和图片编辑链路,按任务类型路由到 OpenAI、Google 和 xAI 的原生图片协议,生成结果统一入库为文件,支持预览、下载和独立运行记录。 |
3838
| 模型控制面 | 平台模型目录、上游渠道、真实上游模型、路由绑定、优先级/权重路由、能力 JSON、展示顺序、厂商映射、自动图标和熔断状态。 |
39-
| 协议适配 | OpenAI ResponsesChat Completions、OpenAI ImagesAnthropic MessagesGoogle/Gemini Generate ContentxAI Responses、OpenRouter 默认协议和自定义 OpenAI 兼容路由。 |
39+
| 协议适配 | OpenAI ResponsesChat Completions、Images Generations 和 Images Edits,Anthropic MessagesGoogle/Gemini Generate Content 和 Image Generation,xAI Responses、Images Generations 和 Images Edits,OpenRouter 默认协议和自定义 OpenAI 兼容路由。 |
4040
| 请求治理 | 按协议组装上游请求,支持用户参数白名单/黑名单、系统保护字段、协议支持时的 previous response 续接,以及可回看的上下文快照。 |
4141
| 文件与 RAG | 文件上传、预览、下载、删除、配额控制、MIME 探测、文本提取、OCR、全文上下文注入、图片上下文、分片、向量嵌入和语义检索。 |
4242
| 记忆与上下文 | 消息数截断、Token 预算截断、上下文压缩、会话记忆、用户长期记忆、RAG 证据记录和提示词链路查看。 |
@@ -246,7 +246,9 @@ pnpm build
246246

247247
生产模式会拒绝不安全的默认密钥、过短的加密密钥、通配 CORS 和非 HTTPS 公开地址。
248248

249-
初始化超级管理员凭据内置为 `deeix-chat` / `deeix-chat-2026` / `System Admin`。它只在数据库中不存在超级管理员时用于首次创建账号。首次登录会强制修改用户名和密码;后续账号变更通过账户流程完成,不再通过 `config.yaml` 修改。
249+
初始化超级管理员用户名固定为 `admin`,密码会在数据库中不存在超级管理员时随机生成,并只在首次创建账号的后端启动日志中输出一次。首次登录会强制修改用户名和密码;后续账号变更通过账户流程完成,不再通过 `config.yaml` 修改。
250+
251+
获取初始化管理员密码时,请查看首次启动后端服务的日志,搜索 `bootstrap superadmin created`;其中的 `username``password` 分别是初始登录用户名和密码。如果数据库中已经存在超级管理员,服务不会重新生成或再次输出该密码。
250252

251253
## 安全说明
252254

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.0
1+
0.1.1

backend/cmd/server/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
)
1010

1111
// @title DEEIX Chat API
12-
// @version 0.1.0
12+
// @version 0.1.1
1313
// @description DEEIX Chat 后端 API 文档
1414
// @BasePath /api/v1
1515
// @securityDefinitions.apikey BearerAuth

0 commit comments

Comments
 (0)