Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache

This commit is contained in:
_Kerman
2026-08-25 21:23:28 +08:00
73 changed files with 2680 additions and 323 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ const CLIENT_OUT = 'packages/extensions/cordis-client-runner/src/client/api-cata
const CLIENT_SERVICES: Readonly<Record<string, readonly string[]>> = {
layout: ['toggleSidebar', 'openDetails', 'closeDetails'],
locale: ['getLocale', 'getSnapshot', 'subscribe', 'setLocale', 'register', 'bind'],
locale: ['getLocale', 'getSnapshot', 'subscribe', 'setLocale', 'addLanguage', 'register', 'bind'],
sessions: ['open', 'openSubagent', 'setSubagentCatalogOpen', 'refreshSubagents', 'search', 'fork', 'scope', 'binding'],
slots: ['register', 'inject'],
theme: ['getTheme', 'setTheme', 'register', 'overrideTokens'],
+9
View File
@@ -438,6 +438,15 @@ describe('Node 24 lane ownership', () => {
expect(subject.find(item => item.id === 'web-snapshot')).toMatchObject({
displayCommand: 'DSH_SNAPSHOT=replay pnpm run test:web:built',
env: { DSH_SNAPSHOT: 'replay' },
after: [
'publint',
'lint-and-duplication',
'snapshot',
'expected-output',
'doc-typecheck',
'node-next-types',
'built-bin-smoke',
],
})
})
})
+17 -4
View File
@@ -415,6 +415,18 @@ function ciArtifactGates(): Gate[] {
function ciConsumerGates(): Gate[] {
const builtTree = ['build']
const validatedBuild = ['built-package-invariants']
// The HMR web test starts `dev:web`, which rewrites the shared `lib/` and
// `apps/web/dist/` trees. Let every build-artifact reader settle before that
// writer starts; `after` preserves the web diagnostic even if a reader fails.
const buildArtifactReaders = [
'publint',
'lint-and-duplication',
'snapshot',
'expected-output',
'doc-typecheck',
'node-next-types',
'built-bin-smoke',
]
return [
ciBuildGate(),
pnpmScript('node-compat', 'check:node-compat', {
@@ -429,7 +441,7 @@ function ciConsumerGates(): Gate[] {
}),
snapshotGate(validatedBuild),
expectedOutputGate(validatedBuild),
webSnapshotGate(validatedBuild),
webSnapshotGate(validatedBuild, buildArtifactReaders),
pnpmScript('doc-typecheck', 'doc-typecheck:contracts-ready', {
needs: validatedBuild,
env: { DSH_DOC_TYPECHECK_USE_BUILD_OUTPUT: '1' },
@@ -442,7 +454,8 @@ function ciConsumerGates(): Gate[] {
]
}
function webSnapshotGate(needs: string[]): Gate {
function webSnapshotGate(needs: string[], after?: string[]): Gate {
const order = after === undefined ? { needs } : { needs, after }
const workerRaw = process.env.DSH_WEB_SNAPSHOT_WORKERS
if (workerRaw !== undefined && workerRaw !== '') {
const workers = Number.parseInt(workerRaw, 10)
@@ -453,7 +466,7 @@ function webSnapshotGate(needs: string[]): Gate {
label: 'web browser snapshot',
displayCommand: `DSH_SNAPSHOT=replay DSH_WEB_SNAPSHOT_WORKERS=${workers} pnpm run test:web:ci`,
env: { DSH_SNAPSHOT: 'replay' },
needs,
...order,
streamOutput: true,
})
}
@@ -461,7 +474,7 @@ function webSnapshotGate(needs: string[]): Gate {
label: 'web browser snapshot',
displayCommand: 'DSH_SNAPSHOT=replay pnpm run test:web:built',
env: { DSH_SNAPSHOT: 'replay' },
needs,
...order,
})
}