#2605·floci

ec2: ten dispatched operations undocumented on main (predates feature/ec2)

Author: sam-fakhreddineCreated Aug 27, 2026Updated Sep 17, 2026
Labelsgood first issueec2has-pr

Ec2QueryHandler dispatches ten operations on main with no corresponding row in docs/services/ec2.md. Found via a programmatic reconciliation of the handler's action switch against the docs table while working on feature/ec2 (PR #2596); confirmed still true against current upstream/main. All ten work correctly — this is a documentation gap only, no behavior defect.

The gap

Operation Area
AttachVolume Volumes
DetachVolume Volumes
DescribeSnapshots Volumes / snapshots
CreateFlowLogs Flow logs
DeleteFlowLogs Flow logs
DescribeFlowLogs Flow logs
RequestSpotInstances Spot
DescribeSpotInstanceRequests Spot
CancelSpotInstanceRequests Spot
DescribeVpnGateways VPN gateways

Reproduce:

bash
git show upstream/main:src/main/java/io/github/hectorvent/floci/services/ec2/Ec2QueryHandler.java

— diff the case "..." -> labels against the | Action | rows in docs/services/ec2.md.

Why this is separate from #2596

feature/ec2 (#2596) documents the 29 operations it introduces itself but deliberately left these ten alone, since they predate that branch and adding them there would put unrelated rows in a bug-fix diff. Filed here per pgermosen's review on #2596, which correctly noted the equivalent tracking file committed to that branch didn't belong in the tree (parallel invisible issue tracker, and it cited a stale/unreachable commit SHA from a pre-rebase history) — dropped from the branch, tracked here instead.

Implementation note for whoever picks this up

docs/services/ec2.md is hand-maintained, not generated — tools/docs/regen_action_docs.py only rewrites marker-delimited tables for services registered in tools/docs/services.yaml, and Ec2QueryHandler.java sits on that file's deferred_handlers allowlist, which is why make docs-check passes today despite this gap. Adding the ten rows by hand is correct; registering EC2 on the generator would convert all ~130 existing rows to the generated format and is a separate, larger decision.