Tool to send cross-session opencode messages, including as request-response pattern
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

update CacheSensor to use mergeGenerators for parallel discovery

rektide 7042cbb6 6e17174f

+11 -10
+11 -10
src/sensor/cache.ts
··· 1 1 import { Instance, Sensor } from "./trait.js"; 2 + import { mergeGenerators } from "../util/generator.js"; 2 3 3 4 export interface CacheOptions { 4 5 sensors: Iterable<Sensor>; ··· 22 23 yield instance; 23 24 } 24 25 25 - for (const sensor of this.sensors) { 26 - for await (const instance of sensor.discover(timeout)) { 27 - if (instance.pid !== undefined && seen.has(instance.pid)) { 28 - continue; 29 - } 26 + const sensorGenerators = this.sensors.map((sensor) => sensor.discover(timeout)); 30 27 31 - if (instance.pid !== undefined) { 32 - seen.add(instance.pid); 33 - } 28 + for await (const instance of mergeGenerators(sensorGenerators)) { 29 + if (instance.pid !== undefined && seen.has(instance.pid)) { 30 + continue; 31 + } 34 32 35 - this.instances.push(instance); 36 - yield instance; 33 + if (instance.pid !== undefined) { 34 + seen.add(instance.pid); 37 35 } 36 + 37 + this.instances.push(instance); 38 + yield instance; 38 39 } 39 40 } 40 41