docs(plans): amend monolith/S03 plan for what merged

What does this MR do and why?

Reconciles the monolith/S03 GraphQL foundation plan with what actually merged in gitlab-org/gitlab!248067 (merged), which landed all three planned steps in one MR. The plan is otherwise write-once after its plan MR, so the corrections travel in this amendment MR rather than in a step branch.

Names

Planned What merged
RendersArtifactRegistryErrors in ee/app/graphql/resolvers/concerns/renders_artifact_registry_errors.rb ArtifactRegistry::RendersErrors in ee/app/graphql/resolvers/concerns/artifact_registry/renders_errors.rb
ee/app/graphql/resolvers/concerns/artifact_registry/externally_paginated_page.rb ArtifactRegistry::PaginatesLists in ee/app/graphql/resolvers/concerns/artifact_registry/paginates_lists.rb

Resolvers::ArtifactRegistry::BaseResolver, ArtifactRegistry::CachesClient, and Gitlab::Graphql::Errors::ArtifactRegistry::ServiceUnavailable merged at their planned names and paths.

Behavior the plan did not describe

  • The base resolver wraps its own template method in the error renderer, so a slice cannot include the concern and forget the wrapper.
  • An AuthorizationError carrying no HTTP status means the client never reached the service, so the concern reports it through Gitlab::ErrorTracking.log_exception and raises service-unavailable instead of the existence-hiding null an authorization failure otherwise renders.

Two acceptance criteria move

Neither shipped, and each moves to the slice with the concrete surface that exercises it:

  • Criterion 4's flag-off mutation half → monolith/S07. The merged base_resolver_spec.rb covers the flag-off query; no test-only mutation shipped, and the monolith has no ee/app/graphql/mutations/artifact_registry/ directory.
  • Criterion 6 (cross-service join) → monolith/S05. BatchModelLoader, BatchCommitLoader, and QueryRecorder appear in no AR app or spec path. The S03 plan and spec both forward-reference monolith/S04 for the end-to-end N+1 assertion, but the S04 spec had already reassigned the first concrete join to monolith/S05, because the list renders no user, project, or commit reference.

The S03 spec still names S04 in criterion 6 and still asks for the test-only mutation. This MR corrects the plan only; the spec's own reconciliation is not in scope here.

Not in scope

The monolith/S02 plan's gem-packaging passages were already corrected in d1e05593, so this MR touches only the S03 plan.

Merge request reports

Loading
Loading