Batch: views import, call-graph speedups, inspect freshness, runon reattach and 9 more ready fixes

Merged
AF
1d ago
+9028-783

Lands thirteen reviewed PRs as one merge, so they take one merge-queue round instead of thirteen. Each component PR stays open until this merges, then closes pointing here.

PRChange
#1194Views: import existing text and symbol indexes when views are turned on
#1200Call graph: index inline-module candidates (cold build 636 s → 154 s on AFT, identical rows)
#1208Call graph: prune workspace-member walks
#1201Background commands keep their startup image across daemon exits
#1203aft_inspect reports current diagnostics or partial, never stale (#829)
#1209Lease heartbeats every 25 s instead of 5 s on idle projects
#1174aft_callgraph resolves Python cross-file imports (#1126)
#1190runon reattaches to an accepted job by id after a dropped connection
#1183Killed and reclaimed commands skip output token counting
#1198Flake batch 27 (test-only)
#1206Bash startup deadline doesn't name a call as its own blocker
#1186gh shim waits for Plexus's full reply window
#1191gh shim reports Plexus pre-send refusals as not sent

Merge resolution:

  • #1194 with #1154: view loads keep #1154's busy retry, and constructors use the import-aware builders. In aft_search, "import building" answers from the bounded scan, while a real load failure keeps the shared view_load_error_response.
  • #1194 with #1154's completion_busy field: the import's unbound and import-building errors stay plain busy errors.
  • #1190 with #1155: one outage fixture covers both started-or-queued jobs and the replay mode.

Gate on the build server (Linux):

  • Formatting, the test-timing-hooks feature check and the Windows target check: clean.
  • Integration binaries: 2,616 passed, 2 failed.
    • real_rust_analyzer_checks_do_not_block_cargo_build also fails on main there, because the build server sets CARGO_TARGET_DIR.
    • subc_bridge_health_check_returns_root_status_report passed 3/3 alone on this branch and 2/2 on main, so it was load.
  • Lib: the secret-shell tests need the built aft binary, which that job didn't build. They're being rerun with it built.
  • composition_no_marker_boundary_record: being run alone on this branch; it passes 3/3 on main.

The search descriptor is engine_unwired: the only fenced file is semantic_search/mod.rs, on the views-on import path.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Lands thirteen reviewed PRs as one merge so they take one merge-queue round instead of thirteen. Each component PR stays open until this merges, then closes pointing here.

Behavior changes

  • Views: enabling views imports existing legacy text and symbol indexes; while an import builds, aft_search and grep answer from the bounded scan instead of failing (#1194).
  • Call graph: cold builds index inline-module candidates per snapshot and prune workspace-member walks, cutting cold build 636 s → 154 s on AFT with identical rows (#1200, #1208).
  • aft_callgraph resolves Python cross-file imports including aliased and relative forms, and discloses matching unresolved callers in nonempty answers (#1174, #1130).
  • Background commands keep a hard-linked copy of the daemon's startup image, so a daemon exit can't break a sandbox still launching (#1201).
  • aft_inspect reports current diagnostics or the file as partial, never stale results after a change (#1203).
  • Idle project leases heartbeat every 25 s instead of 5 s (#1209).
  • runon reattaches to an accepted job by id after a dropped connection (#1190).
  • Killed and reclaimed commands skip output token counting (#1183).
  • Bash startup deadline no longer names a call as its own blocker (#1206).
  • The gh shim waits for Plexus's full reply window; pre-send refusals report as not sent, and only transport_unknown and lease_expired get one same-nonce retry (#1186, #1191).

Merge resolution and tests

  • #1194 keeps #1154's busy retry and completion_busy handling; #1190 shares one outage fixture with #1155.
  • Flake batch 27 lands test-only fixes: dirty-page VFS method copies, inspect dedup deadline, and storage-scoped v3 free-space test overrides (#1198).