Stranded fixes: zoom batch-only (issue 410), worker path guidance, SQLite source exclusion, port-race test

Closed
AF
4d ago
+4045-2602

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Lands four stranded fixes: batch-only zoom with HTTP/checkout routing for file/URL/GitHub locations (issue 410), checkout-guided worker path validation, exclusion of AFT storage and live SQLite from source reads, and a port-race test fix. Runtime aliases are normalized against the translator's resolver before provider schema admission, so v1 validation accepts legacy spellings without changing request identity.

Zoom batch-only (issue 410)

  • aft_zoom takes a single non-empty batch array of {target, symbols}; file paths, HTTP/HTTPS URLs, and GitHub locations share one batch.
  • Legacy targets/path/filePath/symbol(s) spellings remain runtime aliases; conflicting locations are refused with a message naming both inputs; empty batches are refused.
  • Provider admission validates the normalized form, matching read/write/edit's advertised filePath spelling only in the validation copy while requests keep their original identity and batch-only zoom catalogs.
  • The ten new filePath/toFile occurrences used by normalization are allowlisted in the vocabulary inventory.
  • The first zoom permission ask withholds the whole batch until consent reruns the request.
  • Tool schemas, provider catalogs, and bridged aliases were regenerated; OpenCode V1 keeps filePath headers while V2 shows path.

Path guidance, SQLite exclusion, test porting

  • Worker search tools route through the shared path gate; a filesystem-root search is refused with "use your checkout instead", and a missing absolute path that exists in the checkout gets a "did you mean" hint without an access request.
  • Project source readers skip AFT storage roots and live SQLite databases, preventing them from closing SQLite sidecar descriptors and releasing process-wide locks.
  • The recovering-backend runtime test keeps its loopback port reserved between listens so offline requests fail immediately.
  • The land-stranded-ports search descriptor marks the ranking-fenced changes as engine-unwired.

RetriggerView in GreptileConfidence Score: 5/5

The changes since the last review appear safe to merge.

Summary

This PR combines batch-only aft_zoom, checkout path guidance, SQLite source exclusions, and a reserved-port test fixture.

  • aft_zoom looks up files, web pages, and GitHub locations in one batch.
  • Worker searches point to the checkout instead of searching the filesystem root.
  • Project readers skip AFT storage and SQLite files.
  • The recovering-backend test keeps its loopback port reserved while offline.
  • The stranded-ports descriptor marks ranking-fenced changes as engine-unwired.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    A[Original tool arguments] --> B[Normalize a copy]
    B --> C[Check catalog schema]
    C --> D[Dispatch original arguments]
    D --> E[Apply the same normalizer]
    E --> F[Run native command]

Reviews (5) · Last reviewed commit: "mason: allowlist intentional provider co..." · Reviewed by Greptile