feat(browse): Wave-0 Batch E — UntilStable settle loop + BrowserSessionService fallback
Task 9: DiscoverTreeAsync UntilStable settle loop (FOCAS) — re-capture on a 1s interval until
the node set is non-empty and stable across two passes, bounded by open-timeout; on
timeout with a prior non-empty capture, return it (best-effort) instead of failing.
Task 11: BrowserSessionService resolves bespoke-first, falls back to IUniversalDriverBrowser
when no bespoke browser matches and CanBrowse is true; new CanBrowse on the service.
16 unit tests green (4 settle + 12 service).
This commit is contained in:
@@ -54,6 +54,14 @@ public interface IBrowserSessionService
|
||||
/// <param name="token">Registry handle for the browse session to close.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
Task CloseAsync(Guid token);
|
||||
|
||||
/// <summary>True when a browse affordance exists for this driver type: a bespoke browser
|
||||
/// is registered, or the universal browser can serve it. Cheap (no connect); never throws.
|
||||
/// Drives the picker's Browse-button visibility.</summary>
|
||||
/// <param name="driverType">The driver type name.</param>
|
||||
/// <param name="configJson">The authoring DriverConfig JSON (may be mid-edit).</param>
|
||||
/// <returns>True when the picker should offer a Browse affordance for this driver.</returns>
|
||||
bool CanBrowse(string driverType, string configJson);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user