fleetd #710: Remove CallerResolver members accessor #713

Closed
agent wants to merge 0 commits from worker/task-13-823ce2-10 into main
Member

Removes the public CallerResolver.members() accessor and its only assertion. The accessor returns architectTerminals, so its name conflicts with fleet_list members, which lists spawned members. There is no production caller, and live architects already appear in fleet_list with role architect. Tests: mvn clean install passed: Tests run: 2005, Failures: 0, Errors: 0, Skipped: 0.

Removes the public CallerResolver.members() accessor and its only assertion. The accessor returns architectTerminals, so its name conflicts with fleet_list members, which lists spawned members. There is no production caller, and live architects already appear in fleet_list with role architect. Tests: mvn clean install passed: Tests run: 2005, Failures: 0, Errors: 0, Skipped: 0.
agent added 1 commit 2026-10-04 06:54:01 +02:00
Remove CallerResolver members accessor
CI / shell-tests (pull_request) Failing after 8s
CI / contract (pull_request) Successful in 51s
CI / build (pull_request) Failing after 1m47s
b205bcc2aa
Owner

Merged locally in 25d53e6. Closing by hand, because a local merge never closes a PR here.

Verified

Merged with PR #712 onto origin/main in one throwaway worktree and ran mvn clean install
myself, output to a file and not piped: exit 0, BUILD SUCCESS,
Tests run: 2008, Failures: 0, Errors: 0, CallerResolverTest: 49.

49 both before and after confirms what you reported: an assertion was removed, not a test method.
The pushed tree is byte-identical to the tree I built (6939bf0).

Criterion 1 I re-ran myself: grep -rn '\.members()' fleetd/src --include='*.java' returns no
hit with a CallerResolver receiver.

Criterion 3 — I have to correct the answer

You reported "the sweep list is empty". On my own measurement it is not, and the method it misses
is the interesting one.

$ grep -rn "permits(" fleetd/src/main --include='*.java' | grep -v 'static boolean permits'
fleetd/src/main/.../auth/Authz.java:80:        return permits(caller, action, targetSession, NO_KNOWN_LEAD_OR_COLLABORATOR);
fleetd/src/main/.../mcp/FleetMcp.java:701:   if (Authz.permits(caller, action, target, callers.knownLeadOrCollaborator())) {
fleetd/src/main/.../rest/FleetApp.java:281:  return Authz.permits(caller, action, target, knownLeadOrCollaborator);

Both production gates call the four-argument form. The three-argument
Authz.permits(caller, action, targetSession) is called only by itself at Authz.java:80 and
from tests. It has no production caller.

Why I think the slip happened, and it is partly my wording: I wrote the criterion as "no caller
outside its own test file". Your grep found the three-argument form called from
CallerResolverTest.java, which is outside AuthzTest.java, so you applied my words correctly.
The property I actually wanted was "no caller in src/main". That is on me.

It matters more than a tidy-up, because that overload supplies
NO_KNOWN_LEAD_OR_COLLABORATOR — a deny-all classifier — as a silent default. A future call
site that reaches for the shorter signature compiles, passes, and refuses every collaborator send,
with nothing to indicate why. I am keeping it for now (that was a deliberate call during #669) but
it needs a comment saying it is a test convenience, and that is a separate unit.

The honest reading of criterion 3 is: one entry, found by measurement, not zero. The rest of
your sweep stands — I checked the other nine declarations and each has a production caller.

The change itself is correct and the evidence for criteria 1 and 2 was good, including flagging
your own zsh: read-only variable: status wrapper slip and re-running clean rather than reporting
the first result.

Merged locally in `25d53e6`. Closing by hand, because a local merge never closes a PR here. ## Verified Merged with PR #712 onto `origin/main` in one throwaway worktree and ran `mvn clean install` myself, output to a file and not piped: exit 0, `BUILD SUCCESS`, `Tests run: 2008, Failures: 0, Errors: 0`, `CallerResolverTest: 49`. 49 both before and after confirms what you reported: an assertion was removed, not a test method. The pushed tree is byte-identical to the tree I built (`6939bf0`). Criterion 1 I re-ran myself: `grep -rn '\.members()' fleetd/src --include='*.java'` returns no hit with a `CallerResolver` receiver. ## Criterion 3 — I have to correct the answer You reported "the sweep list is empty". On my own measurement it is not, and the method it misses is the interesting one. ``` $ grep -rn "permits(" fleetd/src/main --include='*.java' | grep -v 'static boolean permits' fleetd/src/main/.../auth/Authz.java:80: return permits(caller, action, targetSession, NO_KNOWN_LEAD_OR_COLLABORATOR); fleetd/src/main/.../mcp/FleetMcp.java:701: if (Authz.permits(caller, action, target, callers.knownLeadOrCollaborator())) { fleetd/src/main/.../rest/FleetApp.java:281: return Authz.permits(caller, action, target, knownLeadOrCollaborator); ``` Both production gates call the **four**-argument form. The three-argument `Authz.permits(caller, action, targetSession)` is called only by itself at `Authz.java:80` and from tests. It has no production caller. Why I think the slip happened, and it is partly my wording: I wrote the criterion as "no caller outside its *own test file*". Your grep found the three-argument form called from `CallerResolverTest.java`, which is outside `AuthzTest.java`, so you applied my words correctly. The property I actually wanted was "no caller in `src/main`". That is on me. It matters more than a tidy-up, because that overload supplies `NO_KNOWN_LEAD_OR_COLLABORATOR` — a **deny-all** classifier — as a silent default. A future call site that reaches for the shorter signature compiles, passes, and refuses every collaborator send, with nothing to indicate why. I am keeping it for now (that was a deliberate call during #669) but it needs a comment saying it is a test convenience, and that is a separate unit. The honest reading of criterion 3 is: **one entry, found by measurement, not zero.** The rest of your sweep stands — I checked the other nine declarations and each has a production caller. The change itself is correct and the evidence for criteria 1 and 2 was good, including flagging your own `zsh: read-only variable: status` wrapper slip and re-running clean rather than reporting the first result.
ltms closed this pull request 2026-10-04 07:01:45 +02:00
Some checks are pending
CI / shell-tests (pull_request) Failing after 8s
CI / contract (pull_request) Successful in 51s
CI / build (pull_request) Failing after 1m47s

Pull request closed

Sign in to join this conversation.