[AZ-838] SatelliteProviderRouteClient + seed_route.py CLI (E-AZ-835 C2)
ci/woodpecker/push/02-build-push Pipeline failed

Operator-side HTTP client + CLI that takes a RouteSpec from AZ-836
and onboards it via satellite-provider's POST /api/satellite/route:
pre-emptive AZ-809 validation, request submission, polling until
mapsReady, and POST /api/satellite/tiles/inventory verify.

Lives in c11_tile_manager (shared parent-suite HTTP/JWT plumbing,
shared BUILD_C11_TILE_MANAGER gate); error hierarchy split off
SatelliteProviderRouteError to keep the tile path and route path
independent. 30 unit tests + 1 RUN_E2E-gated integration test.

Pre-emptive validator tracks the actual AZ-809 server bounds
(points [2,500], zoom [0,22]) instead of the AZ-838 spec's narrower
client-only bounds; flagged as F1 in batch_107_cycle3_report.md
for user decision (accept-and-update-spec / revert-to-spec).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-05-23 13:29:45 +03:00
parent c7cd9b414d
commit c3a1ebc754
12 changed files with 2389 additions and 80 deletions
@@ -1,9 +1,9 @@
# D-CROSS-CVE-1 opencv-python pin deferred — gtsam/numpy ABI block
**Recorded**: 2026-05-11T02:55+03:00 (Europe/Kyiv)
**Last replay attempt**: 2026-05-22T17:29+03:00 (Europe/Kyiv) — replay re-checked
at start of next `/autodev` invocation (resume after user pause). PyPI re-queried
via `python3 -m pip index versions gtsam`: only `gtsam 4.2` is published.
**Last replay attempt**: 2026-05-23T13:14+03:00 (Europe/Kyiv) — replay re-checked
at start of next `/autodev` invocation. PyPI re-queried via
`python3 -m pip index versions gtsam`: only `gtsam 4.2` is published.
Replay condition (numpy>=2 stable wheels) still NOT met. Leftover remains open.
**Status**: deferred-non-user (replay when upstream gtsam wheels target numpy>=2)
@@ -1,71 +0,0 @@
# AZ-836 In Testing transition deferred — CallMcpTool unavailable
**Recorded**: 2026-05-22T17:50+03:00 (Europe/Kyiv)
**Status**: deferred-non-user (replay when CallMcpTool returns)
**Last replay attempt**: 2026-05-22T17:50+03:00 — `CallMcpTool` returned
`Tool not found: CallMcpTool. Available tools: Shell, Glob, Grep, ...`
twice in a row. The In Progress transition earlier in the same
`/autodev` turn succeeded; the In Testing transition now cannot fire.
## What is blocked
Transition AZ-836 from **In Progress****In Testing** in Jira
(`denyspopov.atlassian.net`, project AZ).
Required by the implement skill's Step 12 (Update Tracker Status →
In Testing) after a batch commits. Implementation commit landed
locally as `5e52779` ([AZ-836] TlogRouteExtractor: tlog -> RouteSpec
for Epic AZ-835 C1) — the code is done; only the Jira status move
remains.
## Payload (to be replayed when unblocked)
Tool call:
```
CallMcpTool(
server="user-atlassian-mcp",
toolName="transitionJiraIssue",
arguments={
"cloudId": "denyspopov.atlassian.net",
"issueIdOrKey": "AZ-836",
"transition": {"id": "32"} # workflow-confirmed via
# getTransitionsForJiraIssue at
# 2026-05-22T17:35: id=32 = "In Testing"
}
)
```
Post-replay read-back: `getJiraIssue` on AZ-836 → expect
`fields.status.name == "In Testing"`.
## Why
The harness's MCP tool calling shim (`CallMcpTool`) became
unavailable mid-session. Two earlier MCP calls in the same
`/autodev` turn succeeded:
- `getTransitionsForJiraIssue` on AZ-836 — returned the workflow
transition table (id 21 = In Progress, id 32 = In Testing).
- `transitionJiraIssue` on AZ-836 with `id=21` — moved To Do →
In Progress; Jira read-back confirmed `status.name == "In Progress"`.
The third call (`transitionJiraIssue` with `id=32`) returns
`Tool not found: CallMcpTool` from the harness, not from Jira. Jira
itself is reachable.
## Replay procedure
1. Verify `CallMcpTool` is available again.
2. Replay the payload above.
3. Read back AZ-836 and confirm `status.name == "In Testing"`.
4. Delete this leftover.
If the harness shim is still missing on next `/autodev` invocation,
re-record the failure here (update the `Last replay attempt`
timestamp) and surface to the user.
## Owner
Autodev orchestrator — replay on next `/autodev` Bootstrap step B1
(Process leftovers).