fix(fs): observe absence before guarded recreation

This commit is contained in:
Tianyi Cui
2026-08-09 15:22:50 +08:00
parent 9aa2d07353
commit ceba53edd7
68 changed files with 694 additions and 249 deletions

View File

@@ -136,7 +136,7 @@ export function apply(ctx: Context, config: Config = {}): void {
ctx.effect(function* () {
yield async () => { await provider.dispose() }
}, 'skill-local watcher')
ctx.on('fs/observed', (target, _version, actor) => {
ctx.on('fs/observed', (target, _observation, actor) => {
if (mutationToolName(actor) === undefined) return
provider.observeHostMutation(target.displayPath)
})

View File

@@ -496,7 +496,7 @@ describe('LocalSkillProvider', () => {
ctx.emit(
'fs/observed',
{ targetKey: path as never, displayPath: path },
FsVersion('failed-read'),
{ kind: 'present', version: FsVersion('failed-read') },
{ name: 'edit' },
)
expect(await ctx.skills.snapshot()).toEqual({ skills: [], complete: false })
@@ -526,7 +526,7 @@ describe('LocalSkillProvider', () => {
ctx.emit(
'fs/observed',
{ targetKey: path as never, displayPath: path },
FsVersion('entry-failure'),
{ kind: 'present', version: FsVersion('entry-failure') },
{ name: 'write' },
)
}
@@ -674,7 +674,7 @@ describe('LocalSkillProvider', () => {
ctx.emit(
'fs/observed',
{ targetKey: displayPath as never, displayPath },
FsVersion('observed'),
{ kind: 'present', version: FsVersion('observed') },
actor,
)
}
@@ -689,7 +689,7 @@ describe('LocalSkillProvider', () => {
ctx.emit(
'fs/observed',
{ targetKey: path as never, displayPath: path },
FsVersion('observed'),
{ kind: 'present', version: FsVersion('observed') },
{ name: 'edit' },
)