refactor(remote): drop unrelated churn from the metadata change
This commit is contained in:
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)
|
||||
|
||||
@@ -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) ?? [] : []) {
|
||||
|
||||
Reference in new issue
Block a user