Backport the 2026-10-25 Orbit changes to 19.4

What does this MR do and why?

Daily backport of the GitLab Orbit changes that merged to master and are not on 19-4-stable-ee yet. Each MR is one git cherry-pick -m 1 -x with the same added and removed lines as the original MR. !264743 (merged) conflicted in the generated GraphQL docs: doc/api/graphql/reference/objects.md does not exist on 19.4, so the two doc lines of the MR (OrbitIndexing.lastCompletedAt, the itemCounts batch limit) were added by hand to doc/api/graphql/reference/_index.md. !264891 (merged) conflicted because the Duo readiness row lives at ee/app/assets/javascripts/pages/projects/shared/permissions/ on 19.4: the same change was applied to components/duo_orbit_row.vue, its spec, and the query at graphql/orbit_last_indexed.query.graphql. The branch is squashed into one commit.

# MR Change Author Merged Type
1 Batch Orbit item counts in GraphQL and add inde... (!264743 - merged) Batch Orbit item counts in GraphQL and add indexing lastCompletedAt michaelangeloio 2026-10-24 18:58 UTC typefeature
2 Read Orbit graph counts from GraphQL in the das... (!264891 - merged) Read Orbit graph counts from GraphQL in the dashboard and Duo readiness row jgdoyon1 2026-10-25 00:05 UTC typefeature
3 Make the Orbit UI work with a keyboard and a sc... (!264757 - merged) Make the Orbit UI work with a keyboard and a screen reader jgdoyon1 2026-10-23 22:06 UTC typebug
4 Mark truncated lists in Orbit context llm format (!264857 - merged) Mark truncated lists in Orbit context llm format dgruzd 2026-10-24 17:22 UTC typefeature
How the MRs were selected
  • Sweep of all into 'master' merges since 2026-10-23 18:00 UTC: label group::context-systems, Orbit authors, and files or diff lines that match orbit|knowledge_graph.
  • Kept: Orbit code, and shared code that Orbit cannot work without.
  • Already on 19-4-stable-ee: the GA backport !264072 (merged) and the daily backports of 2026-10-23 (!264802 (merged)).
  • Single backport MRs (on request): none.
  • Not needed:
Verification
  • git patch-id --stable of each pick is the same as the one of the original merge commit, except for the adaptations above.
  • Local, on the 19-4-stable-ee dependencies: ESLint and Jest ran on the changed files (results in a comment). 2 Jest failures also fail on the untouched stable base (environment only). RSpec and RuboCop run in the MR pipeline.
  • Before merge: the Orbit e2e-gitlab-stable: [19-4] lane in gitlab-org/orbit/knowledge-graph against the images of the head.
  • MR pipeline at pipeline::tier-3.

Points for reviewers:

  • The types are mixed. The MR has type::maintenance for the stable_branch.rb Danger rule, as the GA backports had. It needs a release manager exception (ask in #releases).
  • !264743 (merged) bumps gitlab-orbit-proto from 0.147 to 0.156 (Gemfile, Gemfile.lock, Gemfile.next.lock) and changes the Orbit GraphQL item counts (batched, up to 100 groups or projects per request). No migrations, no new feature flags.
  • Batched item counts need GKG v0.156.0 or later. An older GKG returns no counts for users with 2 or more enabled groups (single-group users are unaffected).
  • !264891 (merged) needs !264743 (merged) (the dashboard and the Duo readiness row read the counts from GraphQL), so it is picked second.
  • !264857 (merged) changes the output of /orbit/context (llm format marks truncated lists). It is in the daily MR on request instead of its own endpoint MR.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

  • This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch. (Release manager exception requested.)
  • The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes).
  • The MR title is descriptive (e.g. "Backport of 'title of default branch MR'"). This is important, since the title will be copied to the patch blog post.
  • Required labels have been applied to this merge request
  • This MR has been approved by a maintainer (only one approval is required).
  • Ensure the e2e:test-on-omnibus-ee job has succeeded, or if it has failed, investigate the failures. If you determine the failures are unrelated, you may proceed. If you need assistance investigating, request help in the #s_developer_experience Slack channel to confirm the failures are unrelated to the merge request.

Note to the merge request author and maintainer

If you have questions about the patch release process, please:

Edited by Dmitry Gruzd

Merge request reports

Loading
Loading