Merge remote-tracking branch 'origin/master' into opt/win-ssache
Project CI / Repository checks (pull_request) Failing after 3m51s
Project CI / Frontend tests (pull_request) Failing after 3m47s
Project CI / Native shell tests (pull_request) Failing after 5m48s
Project CI / Backend tests (pull_request) Successful in 6m29s

This commit is contained in:
2026-09-14 06:21:45 +00:00
47 changed files with 1117 additions and 90 deletions
+10
View File
@@ -440,6 +440,7 @@ function buildDevStackSnapshot(runner, updatedAt = new Date().toISOString()) {
return {
schemaVersion: 2,
instanceId: runner.instanceId,
command: runner.command ?? 'all',
repoRoot,
database: runner.options.database,
@@ -465,6 +466,12 @@ function buildDevStackServiceSnapshot(runner, serviceName, updatedAt) {
: null;
return {
repoRoot,
instanceId: runner.instanceId,
dataDir:
serviceName === 'spacetime'
? resolve(runner.options.spacetimeDataDir)
: null,
status,
pid:
childPid ??
@@ -1229,6 +1236,9 @@ class DevRunner {
constructor(options, baseEnv = process.env, explicitOptions = new Set()) {
this.options = options;
this.baseEnv = { ...baseEnv };
this.instanceId = `dev-${process.pid}-${randomBytes(12).toString('hex')}`;
this.baseEnv.GENARRATIVE_DEV_STACK_INSTANCE_ID = this.instanceId;
this.baseEnv.GENARRATIVE_DEV_STACK_REPO_ROOT = repoRoot;
this.spacetimeApiToken = String(
this.baseEnv.GENARRATIVE_SPACETIME_TOKEN ?? '',
).trim();
+5
View File
@@ -768,6 +768,7 @@ describe('dev scheduler stack state file', () => {
test('状态快照记录服务 pid、端口、URL 和当前命令', () => {
const updatedAt = '2026-05-29T00:00:00.000Z';
const runner = {
instanceId: 'test-instance',
command: 'web',
options: {
apiHost: '127.0.0.1',
@@ -815,12 +816,16 @@ describe('dev scheduler stack state file', () => {
const snapshot = buildDevStackSnapshot(runner, updatedAt);
expect(snapshot.schemaVersion).toBe(2);
expect(snapshot.instanceId).toBe('test-instance');
expect(snapshot.command).toBe('web');
expect(snapshot.database).toBe('genarrative-test');
expect(snapshot.spacetimeDataDir).toBe(
resolve('server-rs/.spacetimedb/local/data'),
);
expect(snapshot.services.web).toMatchObject({
repoRoot: resolve('.'),
instanceId: 'test-instance',
dataDir: null,
status: 'running',
pid: 4321,
host: '0.0.0.0',