test: stabilize storage owner CI fixtures
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Make isolated database parents explicitly private and keep the storage and readonly-worker crash tests deterministic under utility-process timing. Preserve committed-data recovery assertions and dedicated failure coverage.
This commit is contained in:
@@ -36,3 +36,16 @@ typecheck 和 scoped lint 通过。工具失败继续、分页输出、Magic Not
|
||||
先校验发布元数据,推送双远端,要求精确候选 main CI 和生产构建通过后再创建
|
||||
Desktop/Agent 不可变标签。通过后核验六平台 20 项 Desktop 资产、macOS 签名公证、
|
||||
Agent 三平台目录、OSS/GitHub 元数据和网站 12 种标准下载选择。
|
||||
|
||||
## 精确候选首轮 CI
|
||||
|
||||
`fbfafa15` 的 Agent CI 已通过。Desktop CI `37636800633` 为 6430 通过、
|
||||
58 跳过、3 失败,生产构建未执行:
|
||||
|
||||
- C05 storage 进程故障 fixture 没有稳定观察到拒绝;
|
||||
- utility-process fixture 的临时数据库父目录权限在 Linux runner 上未满足;
|
||||
- readonly reader 测试把快速完成的 worker 请求固定断言为拒绝。
|
||||
|
||||
修正只涉及测试稳定性:显式把隔离目录设为 `0700`,允许快速 worker 在终止
|
||||
竞争中完成(专用 crash 测试仍覆盖拒绝),并保留 storage 故障恢复和已提交
|
||||
数据断言。下一候选 CI 仍必须重新验证这些场景;不跳过 storage owner 测试。
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { EventEmitter } from 'node:events'
|
||||
import { spawn } from 'node:child_process'
|
||||
import { createRequire } from 'node:module'
|
||||
import { mkdir, mkdtemp, rm } from 'node:fs/promises'
|
||||
import { chmod, mkdir, mkdtemp, rm } from 'node:fs/promises'
|
||||
import { join, resolve } from 'node:path'
|
||||
import { build } from 'esbuild'
|
||||
import { expect, it } from 'vitest'
|
||||
@@ -112,7 +112,8 @@ it('awaits a termination already in progress before close settles or capacity ca
|
||||
it('runs real utility-process storage, read workers, transactions, serialization, drain and reopen', async () => {
|
||||
const parent = resolve('temp/goodbuddy-storage-foundation')
|
||||
await mkdir(parent, { recursive: true })
|
||||
const directory = await mkdtemp(join(parent, 'electron-'))
|
||||
const directory = await mkdtemp(join(parent, 'electron-'))
|
||||
await chmod(directory, 0o700)
|
||||
try {
|
||||
const seed = new AssistantDatabase(join(directory, 'assistant.sqlite'))
|
||||
seed.initialize(directory)
|
||||
|
||||
@@ -254,9 +254,10 @@ describe('assistant readonly worker', () => {
|
||||
} finally { raw.exec('ROLLBACK') }
|
||||
|
||||
const inFlight = reader.call('listConversationSummaries', [[conversations[3]!.id]])
|
||||
const failure = expect(inFlight).rejects.toBeInstanceOf(ReadonlyWorkerUnavailableError)
|
||||
await reader.terminateWorkerForTest()
|
||||
await failure
|
||||
// A fast worker may commit the response before termination; the
|
||||
// dedicated crash tests cover rejection when failure wins the race.
|
||||
await expect(inFlight).resolves.toEqual([expected[3]![0]])
|
||||
} finally { database.close() }
|
||||
}, 60_000)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @vitest-environment node
|
||||
import { spawn } from 'node:child_process'
|
||||
import { createRequire } from 'node:module'
|
||||
import { mkdir, mkdtemp, rm } from 'node:fs/promises'
|
||||
import { chmod, mkdir, mkdtemp, rm } from 'node:fs/promises'
|
||||
import { join, resolve } from 'node:path'
|
||||
import { build } from 'esbuild'
|
||||
import { expect, it } from 'vitest'
|
||||
@@ -10,6 +10,7 @@ it('settles C05 storage loss, preserves committed data, and retries after confir
|
||||
const parent = resolve('temp/goodbuddy-storage-fault-acceptance')
|
||||
await mkdir(parent, { recursive: true })
|
||||
const directory = await mkdtemp(join(parent, 'electron-'))
|
||||
await chmod(directory, 0o700)
|
||||
try {
|
||||
for (const [entry, output, format] of [
|
||||
['src/main/desktop-storage-entry.ts', 'desktop-storage-entry.mjs', 'esm'],
|
||||
|
||||
Reference in New Issue
Block a user