@@ -358,10 +358,12 @@ consent, bounded fetched candidate, operation generation, phase/progress,
358358rate-limit metadata, and an honest complete/partial/cancelled result.
359359
360360** Dependencies:** a pinned approved HTTP client behind ` GithubApi ` (HTTPS to
361- the exact GitHub REST API host), ` Connection.listDir ` /` putFile ` , the Files
361+ the exact GitHub REST API host), ` Connection.listDir ` /` putFile ` plus the optional
362+ neutral ` ConnectionDirectoryListingSource ` completeness capability, the Files
362363controller's current directory + refresh callback, connection-session stamps,
363- and ` lib/localization/ ` . The connected subset has no ` lib/data/ ` dependency and
364- never imports ` lib/ble/ ` .
364+ and ` lib/localization/ ` . Production and shipped fakes implement that capability;
365+ an unknown Connection double fails closed for import preflight. The connected
366+ subset has no ` lib/data/ ` dependency and never imports ` lib/ble/ ` .
365367
366368** Satisfies in this increment:** the frozen connected subset of
367369FR-IMPORT-1/-2/-3/-5, IF-4, NFR-OFF-2, CON-3/8/9, SEC-10. ** Deferred, not
@@ -795,13 +797,18 @@ duplicate target, non-canonical escape, and any complete board path over
795797PBLE/1's 128-byte UTF-8 ceiling. The review view renders exact remote → board
796798path pairs before a network content fetch or PUT.
797799
798- ` review() ` first requires the captured session stamp to be current, then calls
799- ` Connection.listDir(capturedCwd) ` . Exact-name regular-file collisions are the
800- overwrite set. A directory or other non-regular entry at a target is blocking;
801- the importer never replaces or descends into it. A non-empty overwrite set
802- opens a separate confirmation that lists the exact board paths. Consent is
803- bound to ` {sessionStamp, cwd, targetPaths, conflictPaths} ` ; changing selection,
804- ref, folder, target data, or session invalidates it.
800+ ` review() ` first requires the captured session stamp to be current, then obtains
801+ ` Connection.listDir(capturedCwd) ` together with the neutral completeness bit
802+ exposed by ` ConnectionDirectoryListingSource ` . ` PbleConnection ` derives that bit
803+ from ` FILE_LIST more ` ; its stable facade and ` FakeConnection ` preserve it. A
804+ truncated result—or an unknown Connection double that cannot prove
805+ completeness—fails closed before conflict classification. Exact-name
806+ regular-file collisions are the overwrite set. A directory or other non-regular
807+ entry at a target is blocking; the importer never replaces or descends into it.
808+ A non-empty overwrite set opens a separate confirmation that lists the exact
809+ board paths. Consent is bound to
810+ ` {sessionStamp, cwd, targetPaths, conflictPaths} ` ; changing selection, ref,
811+ folder, target data, or session invalidates it.
805812
806813Immediately after all content validates and before the first PUT, the
807814controller requires the same session, lists ` capturedCwd ` again, and compares
0 commit comments