refactor(remote): drop unrelated churn from the metadata change

This commit is contained in:
imccyu committed 2026-10-13 00:52:58 +08:00
1 parent 570520862d
commit d5bf4b348a
8 files changed
+15 -16

No files matched your search

@@ -21,8 +21,8 @@
en: 39494aa3af994e6f
zh: 07c2880503668176
/2026-10-05-working-directory-attribution/verification:
en: 9b79379292881d10
zh: 54d670c09ce1bfc7
en: 5963942c0d87e518
zh: 5dbb6ac0fca1f279
/2026-10-05-working-directory-attribution/dev-note:
en: b75c8458928b72b9
zh: 003ba4e17b4b5269
@@ -52,7 +52,7 @@ Existing records remain valid. The additive working-directory source kind is att
<a id="verification"></a>
## Verification
pnpm exec vitest run packages/session/working-directory/tests packages/shell/tool-bash/tests/tools.spec.ts packages/shell/tool-pwsh/tests/tools.spec.ts packages/subagent/subagent/tests/schedule-tools.spec.ts: 5 files and 207 tests passed.
pnpm exec vitest run packages/session/working-directory/tests packages/shell/tool-bash/tests/tools.spec.ts packages/shell/tool-pwsh/tests/tools.spec.ts packages/subagent/subagent-in-process-driver/tests/schedule-tools.spec.ts: 4 files and 203 tests passed.
<a id="dev-note"></a>
## Dev Note
@@ -52,7 +52,7 @@ changes:
<a id="verification"></a>
## 验证
pnpm exec vitest run packages/session/working-directory/tests packages/shell/tool-bash/tests/tools.spec.ts packages/shell/tool-pwsh/tests/tools.spec.ts packages/subagent/subagent/tests/schedule-tools.spec.ts:5 个文件、207 个测试通过。
pnpm exec vitest run packages/session/working-directory/tests packages/shell/tool-bash/tests/tools.spec.ts packages/shell/tool-pwsh/tests/tools.spec.ts packages/subagent/subagent-in-process-driver/tests/schedule-tools.spec.ts:4 个文件、203 个测试通过。
<a id="dev-note"></a>
## 开发备注
@@ -119,6 +119,9 @@ export function createSessionControlStream(
const stream = remote.$stream<SessionControlFrame>({
name: 'session control stream',
open: signal => remote.session.control(signal),
ended: accepted => accepted
? new RemoteStreamCarrierError('session control stream ended without a terminal result')
: new Error('session control stream ended before its opening snapshot'),
...(options.carrierFailed === undefined ? {} : { carrierFailed: options.carrierFailed }),
})
return new RemoteSnapshotStream(stream, {
@@ -695,7 +695,7 @@ describe('Session Client stream adapters', () => {
before.start()
await vi.waitFor(() => { expect(beforeFailed).toHaveBeenCalledOnce() })
expect(beforeFailed.mock.calls[0]?.[0]).toMatchObject({
message: 'session control stream ended before its opening item',
message: 'session control stream ended before its opening snapshot',
})
await before.dispose()
@@ -82,6 +82,9 @@ export function createWorkspaceStateStream(
const stream = remote.$stream<WorkspaceFollowFrame>({
name: 'Workspace state stream',
open: signal => remote.workspace.follow(signal),
ended: accepted => accepted
? new RemoteStreamCarrierError('Workspace state stream ended without a terminal result')
: new Error('Workspace state stream ended before its opening snapshot'),
...(options.carrierFailed === undefined ? {} : { carrierFailed: options.carrierFailed }),
})
return new RemoteSnapshotStream<WorkspaceBaselineFrame, WorkspaceFollowIncrement>(stream, {
@@ -268,7 +268,7 @@ describe('Workspace state stream', () => {
{
name: 'a normal end before the baseline',
items: [] as WorkspaceFollowFrame[],
message: 'ended before its opening item',
message: 'ended before its opening snapshot',
},
])('reports $name as a terminal failure', async ({ items, message }, { mock, start }) => {
const { remote } = await gatewayClient(mock, start)
+3 -10
View File
@@ -673,13 +673,6 @@ interface FaceAnalyzerOptions {
readonly crossFaceLinks: Map<string, CrossFaceLink>
}
/** Direct `@Remote` choices read from one decorator. */
interface DirectRemoteMarker {
readonly kind: 'direct'
readonly exportName?: string
readonly mode?: 'stream'
}
class FaceAnalyzer {
private readonly root: string
private readonly face: TypertFace
@@ -1135,7 +1128,7 @@ class FaceAnalyzer {
binding: GatewayBinding,
method: ts.MethodDeclaration,
invocation:
| DirectRemoteMarker
| { readonly kind: 'direct'; readonly exportName?: string; readonly mode?: 'stream' }
| { readonly kind: 'context'; readonly context: string; readonly exportName?: string },
): InvocationModel {
if (visibilityOf(method) !== 'public' || hasModifier(method, ts.SyntaxKind.StaticKeyword)) {
@@ -1392,11 +1385,11 @@ class FaceAnalyzer {
private remoteMarker(
member: ts.ClassElement,
):
| DirectRemoteMarker
| { readonly kind: 'direct'; readonly exportName?: string; readonly mode?: 'stream' }
| { readonly kind: 'context'; readonly context: string; readonly exportName?: string }
| undefined {
let found:
| DirectRemoteMarker
| { readonly kind: 'direct'; readonly exportName?: string; readonly mode?: 'stream' }
| { readonly kind: 'context'; readonly context: string; readonly exportName?: string }
| undefined
for (const decorator of ts.canHaveDecorators(member) ? ts.getDecorators(member) ?? [] : []) {