Skip to content

Add mapbox feedback list/get - #49

Open
mattpodwysocki wants to merge 1 commit into
feat/matrix-apifrom
feat/feedback-api
Open

mattpodwysocki wants to merge 1 commit into
feat/matrix-apifrom
feat/feedback-api

Conversation

@mattpodwysocki

Copy link
Copy Markdown
Contributor

⚠️ Temporarily based on #48, not main

Same stacking situation as the rest of this stack. Once #43/#44/#45/#48
merge in order, this should be retargeted to main (gh pr edit --base main). Everything below is scoped to what this PR actually adds on top of
#48.

What

mapbox feedback list/get — completes the naming doc's V1 scope
(directions, isochrone, map matching, matrix, feedback). Hand-authored into
custom-openapi/ since openapi-specs has no spec for this API either.

Feedback submitted against Mapbox API responses — filterable by id,
status, category, a free-text search phrase, trace id, or a time window;
sortable; paginated.

feedback create is declared in the spec but never reaches the command
surface.
Confirmed directly against production: a POST /oauth/register
requesting user-feedback:write silently drops it from the granted scope —
the same unregistrable shape UNSUPPORTED_OPERATIONS already documents for
accounts create-token/update-token/delete-token and styles download-style-zip. No mapbox auth login token can ever carry it.

No profile path parameter here, so no new ARG_NAME_OVERRIDES row — this
service was never at risk of the collision the other four hit.

Two things worth a reviewer's eye

  1. Naming the disabled operation. I named it createFeedbackItem
    rather than the shorter create: the withheld-operation guard in
    generate_skills.rs checks the bare command word against every
    generated file's text, and a bare create collides with the exposed,
    unrelated styles create. Caught by that guard failing, not by
    inspection — worth checking I reasoned about it right.
  2. docs/commands.md's stale operation/group counts. I updated "33 API
    operations across 10 command groups" to the actual 37/13 while I was
    already touching that sentence — turned out the 33/10 was stale by 2
    even before this branch (verified against main), from drift this PR
    didn't cause. Flagging in case that pre-existing gap is worth its own
    look independent of this PR.

Verification

Smoke-tested against production: list with comma-separated
--status/--category filters and the pagination cursor, and get by id,
both verified to return the documented shape. Confirmed create is absent
from --help and errors as an unrecognized subcommand rather than reaching
the API.

488 tests, cargo fmt --check and cargo clippy --all-targets -- -D warnings both clean.

🤖 Generated with Claude Code

Fifth API this session with no prior CLI coverage — completes the naming
doc's V1 scope (directions, isochrone, map matching, matrix, feedback).
Hand-authored into custom-openapi/ since openapi-specs has no spec for this
API either.

feedback create, the write side, is declared in the spec but never reaches
the command surface: confirmed directly against production that a
POST /oauth/register requesting user-feedback:write silently drops it from
the granted scope, the same unregistrable shape UNSUPPORTED_OPERATIONS
already documents for accounts create-token/update-token/delete-token and
styles download-style-zip. No profile path parameter here, so no new
ARG_NAME_OVERRIDES row — this service was never at risk of that collision.

Named the disabled operation createFeedbackItem rather than the shorter
create: the withheld-operation guard in generate_skills.rs checks the bare
command word against every generated file's text, and a bare "create"
collides with the exposed, unrelated `styles create`. Since the operation
is never reachable either way, the internal name doesn't affect anything
user-facing.

Also fixes a --help truncation on all six *_before/*_after time-window
parameters ("ISO 8601." as a leading sentence, same class of bug fixed in
directions.yaml and matrix.yaml earlier) by moving the format note to the
end of each description.

Updated docs/commands.md's own stale operation/group counts while here —
37 operations across 13 groups, not the 33/10 it still said (already
stale by 2 before this branch, from drift this change didn't cause but
was already touching the same sentence).

Smoke-tested against production: list with comma-separated --status/
--category filters, pagination cursor, and get by id, all verified to
return the documented shape. Confirmed create is absent from --help and
errors as an unrecognized subcommand rather than reaching the API.

488 tests, fmt and clippy clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant