Skip to content

java: impact next: calls a [remote] caller a [by name]/[text] lead and says the change is local #1468

Closed

Description

@swapnilpaliwal-sd

Symptom

impact on a gRPC handler lists its client as a [remote] row marked [exact], then its next: line calls that row a [by name]/[text] lead and says the change is local:

reads or uses it (2 callable(s): 1 remote, 1 alongside):
    [remote] OrderClient.placeBlocking   src/main/java/app/OrderClient.java:4   -- calls it across a process boundary (grpc) at app.OrderServiceGrpc/placeOrder [exact]
next: nothing resolved depends on it, so the change is local -- read src/main/java/app/OrderHandler.java:4, src/main/java/app/OrderServiceGrpc.java:4 and edit there; the 1 [by name]/[text] row(s) are leads -- open one only if the change is to the name or the signature

The answer has no [by name] or [text] row. Measured on 0.1.3 at 0df257c; CLI impact and the MCP axiomcode_impact tool print the same text.

Reproduction

A bare pom.xml and one class per file in src/main/java/app/, each opening with package app; on line 1:

package app;
public final class OrderServiceGrpc {
    public static abstract class OrderServiceImplBase {
        public void placeOrder(String req) { }
    }
    public static class OrderServiceBlockingStub {
        public String placeOrder(String req) { return null; }
    }
}
// OrderHandler.java
public class OrderHandler extends OrderServiceGrpc.OrderServiceImplBase {
    private final OrderStore store = new OrderStore();
    @Override
    public void placeOrder(String req) { store.save(req); }
}
// OrderStore.java:  public class OrderStore { public void save(String req) { } }
// OrderClient.java: stub field of OrderServiceBlockingStub; line 4: public String placeBlocking(String req) { return stub.placeOrder(req); }

Then axiomcode index and axiomcode impact OrderHandler.placeOrder. Control: axiomcode impact OrderStore.save, whose one caller is [resolved], names OrderHandler.java:5 as the place to read.

Root cause

plugins/axiomcode/skills/axiomcode/scripts/axiomcode-impact:2133 leaves remote out of STRONG_DIRECT, so the client is not in users (line 2135) or places (line 2138) and next: takes the "change is local" branch (line 2142), and line 2136 counts every other non-alongside certainty as weak_n, which line 2140 words as [by name]/[text] leads.

Expected: next: names a [remote] caller as a cross-process dependent to read, not as a by-name lead.

Activity

  1. swapnilpaliwal-sd commented on Sep 28, 2026

    @swapnilpaliwal-sd
    ContributorAuthor

    Fixed by #1615, merged into 0.1.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingjavaJavaskillAgent-facing query skill (skills/axiomcode)

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions