合并 master 并整合 Router 安全修复
Project CI / Repository checks (pull_request) Successful in 3m5s
Project CI / Backend tests (pull_request) Failing after 3m16s
Project CI / Frontend tests (pull_request) Successful in 3m44s
Project CI / Native shell tests (pull_request) Failing after 6m32s

合入 origin/master 最新提交 a465e481e

保留后台错误报告、AGC 受控搜索与 Router 计费安全修复

同步 SpacetimeDB migration、技能文档和配置契约
This commit is contained in:
2026-09-03 10:28:20 +08:00
106 changed files with 4859 additions and 350 deletions
+2 -3
View File
@@ -1624,9 +1624,8 @@ class DevRunner {
if (command === 'backend') {
await this.startSpacetimeForFullStack();
await this.services.get('api-server').start();
await this.waitForApiServer();
this.startWatchers(['spacetime', 'api-server']);
await this.startRustServicePair();
this.startWatchers(['spacetime', 'api-server', 'bgfilter-worker']);
return;
}
+24
View File
@@ -500,6 +500,30 @@ describe('dev scheduler Rust service orchestration', () => {
]);
});
test('backend 模式复用 Rust 双进程并纳入三服务 watcher', async () => {
const { explicitOptions, options } = parseArgs(['backend'], {});
const runner = new DevRunner(options, {}, explicitOptions);
const startSpacetime = vi
.spyOn(runner, 'startSpacetimeForFullStack')
.mockResolvedValue(undefined);
const startPair = vi
.spyOn(runner, 'startRustServicePair')
.mockResolvedValue(undefined);
const startWatchers = vi
.spyOn(runner, 'startWatchers')
.mockImplementation(() => {});
await runner.startCommand('backend');
expect(startSpacetime).toHaveBeenCalledOnce();
expect(startPair).toHaveBeenCalledOnce();
expect(startWatchers).toHaveBeenCalledWith([
'spacetime',
'api-server',
'bgfilter-worker',
]);
});
test('完整栈只为两个 Rust 角色创建一套组合 watcher', () => {
const { explicitOptions, options } = parseArgs(['--watch'], {});
const runner = new DevRunner(options, {}, explicitOptions);