TanukiDroid/TEST_CHECKLIST.md
KaKi87 184cdbe550
Some checks are pending
Build APK / build (push) Waiting to run
Update checklist after the approval test.
2026-11-10 20:36:02 +01:00

28 KiB

Feature test checklist

Agent-owned. Mirrors the ForgeDroid checklist. Built from every menu item, click handler and preference in app/src/main. Mark each line [x] with the date and build commit when it passes on the emulator, or [!] with a note when it fails. Mark [-] with a reason when the feature does not exist on GitLab and the app hides it or shows a clear message.

Rules for every line:

  • Do the action, then check the result on screen and on the server where it writes data. Opening a screen is not enough.
  • For every list, open the first item and one more item.
  • Check logcat after each action for 4xx/5xx responses, Loading data failed and FATAL. A 404 for user/starred/... when the repo is not starred is expected.
  • Look for "null", "0" placeholders and raw number|title text in rows.
  • Use a scratch repo on the test account for anything that writes data, and clean up afterwards.

Test against the local GitLab CE container (http://10.0.2.2:8929, accounts alice, bob, root, group tanuki-org with subgroup sub, seeded by /tmp/tk/seed.py). Run the News Feed and profile sections as a user and as an org from the account selector. Also open public projects on gitlab.com for the preset instances where no login is needed.

1. Accounts and login

  • Add account dialog opens from the drawer account menu (2026-11-10, tested on emulator-5556 against local GitLab 19.5.3)
  • Dropdown lists gitlab.com, gitlab.gnome.org, invent.kde.org, salsa.debian.org, gitlab.freedesktop.org, gitgud.io, framagit.org, jihulab.com, gitlab.alpinelinux.org, Custom (2026-11-10, all nine presets plus Custom)
  • Custom shows the base URL input, other hosts hide it (2026-11-10)
  • Token name input is editable and its value is used for the token (2026-11-10, token 'My Phone' appeared on the server)
  • Webview loads the sign-in page of the selected host (2026-11-10, http://10.0.2.2:8929/users/sign_in)
  • Webview register link works (2026-11-10, GitLab registration form opens in the webview (local instance))
  • Logging in creates a token with the chosen name (check the host's applications page) and saves the account (2026-11-10, token and account verified on the server)
  • Bad base URL shows a readable error (2026-11-10, Chrome error page in the webview)
  • Cancel closes the dialog without saving (2026-11-10)
  • [-] Login mode chooser fragment (if reachable) behaves (2026-11-10, not reachable from the current flow)
  • Account selector in the News Feed lists the user and every org (2026-11-10, drawer lists the other accounts with their own avatars)
  • Switching accounts reloads the current screen (2026-11-10)
  • Drawer header expands to My profile, Logout, Add account (2026-11-10)
  • My profile opens the user profile (2026-11-10)
  • Logout removes the account and returns to the login flow (2026-11-10, account removed, another one active)
  • Cold start after logout and after login restores the right account (2026-11-10, force-stop and relaunch restored the active account)
  • Revoked token shows a readable error, not a crash (2026-11-10, revoked on the server; snackbar asks to log in again)

2. Drawer (home_nav_drawer)

  • News Feed (2026-11-10)
  • Notifications (2026-11-10, drawer, gitlab.com)
  • My repositories (2026-11-10, drawer, gitlab.com)
  • My issues (2026-11-10, drawer, gitlab.com)
  • My pull requests (2026-11-10, opens on gitlab.com)
  • My gists (2026-11-10, drawer, gitlab.com)
  • Search (2026-11-10, drawer, gitlab.com)
  • Bookmarks and Stars (2026-11-10, opens on gitlab.com)
  • Public Timeline (hidden or clear message on GitLab) (2026-11-10, drawer, gitlab.com)
  • Trending Repos (hidden or clear message on GitLab) (2026-11-10, drawer, gitlab.com)
  • GitHub Blog (hidden, since it is GitHub-only) (2026-11-10, drawer, gitlab.com)
  • Settings (2026-11-10, drawer, gitlab.com)
  • Add account, My profile, Logout from the header menu (2026-11-10, all three open or act)
  • Back from each screen returns to the previous one without leaving the app unexpectedly
  • Drawer swipe open and close, selected item is highlighted (2026-11-10, Search is highlighted while open)

3. News Feed

  • Pull to refresh (2026-11-10, feed reloads on pull down)
  • Scroll to load the next page (2026-11-10, feed continues past the first page down to issue 19 after 30 new events)
  • Tap an avatar opens that user (2026-11-10, gitlab.com)
  • Tap a repo name opens the repo (2026-11-10, gitlab.com)
  • Push event row, tap row, tap each listed commit (2026-11-10, gitlab.com KaKi87 feed, rows tapped through)
  • Create repository, branch and tag rows (2026-11-10, repository, branch and tag rows; tag row opens the repo at v2.0)
  • Delete branch and tag rows (2026-11-10, rows show and open the repo on main)
  • Issue opened, closed and reopened rows, tap through (2026-11-10, opened and closed rows on the local server and gitlab.com; reopened row not seen)
  • Issue comment row, tap through (2026-11-10, opens the issue)
  • Pull request opened, closed, reopened and merged rows, tap through (opens the PR screen) (2026-11-10, opened, closed and merged rows shown, merged row opens the PR; GitLab has no separate reopened event)
  • Pull request comment row, tap through (opens the PR screen, not the issue screen) (2026-11-10, opens the PR review screen)
  • [-] Fork, star and release rows, tap through (2026-11-10, GitLab has no fork or star events; a release shows as a created tag row, which opens the repo at the tag)
  • Unsupported event types are skipped without a blank row (2026-11-10, no blank rows in the local and gitlab.com feeds, which include member, push, branch, tag, issue, merge request and comment events)
  • No "null", "pull request 0" or raw number|title text (2026-11-10, local and gitlab.com feeds)
  • Same checks for an org feed (2026-11-10, tanuki-org Public Activity shows rows)

4. Notifications (notification_list_menu, notification_menu)

  • List loads, empty state shows when there are none (2026-11-10, todos list and empty state)
  • Filter menu: Unread, All, Participating (2026-11-10, local server, alice)
  • Mark all as read (2026-11-10, local server, alice)
  • Row tap opens the issue, PR or commit (2026-11-10, issue opened from a notification)
  • Row avatar tap opens the user (2026-11-10, local server, alice)
  • Row action button: Mark as read (2026-11-10, local server, alice)
  • Row action button: Unsubscribe (2026-11-10, local server, alice)
  • Notification polling and the system notification (Settings > Notifications on) (2026-11-10, the worker found the new to-do and posted a notification; periodic runs cannot be forced, toggling the setting triggers a run)

5. My repositories and repository lists (repo_list_menu, repo_filter_*, repo_sort)

  • My repositories list loads and paginates (2026-11-10, list loads; single page only on the test data)
  • Tap a repo (2026-11-10)
  • Search icon filters the list (2026-11-10, submit shows tanuki-org/lib for lib)
  • Filter and Sort menu opens (2026-11-10, gitlab.com)
  • Type filters for the logged-in user: All, Owner, Member, Public, Private, Sources, Forks, Watched (2026-11-10, gitlab.com; Watched is empty because GitLab has no watch list)
  • Type filters for another user: All, Owner, Member, Sources, Forks, Watched, Starred (2026-11-10, menu lists all seven types; Starred applies)
  • Type filters for an org: All, Sources, Forks (2026-11-10, menu lists All, Sources, Forks)
  • Sort: name A-Z, name Z-A, oldest, newest, least recently pushed, most recently pushed (2026-11-10, gitlab.com)
  • Starred list sort order (repo_starred_list_menu): oldest, newest, least and most recently pushed (2026-11-10, Oldest and Newest verified; pushed sorts not compared)
  • Private and fork badges render (2026-11-10, gitlab.com)
  • Repository list from a user profile, an org profile, a starred list, a forks list (2026-11-10, user, org and starred lists open)

6. Issue lists (issue_list_menu, issue_list_filter*, issue_list_sort)

  • My issues tabs: Created, Assigned, Mentioned, Participating (2026-11-10, tabs list the expected issues for alice; Mentioned uses a text search for the user name, which GitLab has no filter for)
  • Show closed toggle and Open Issues title (2026-11-10, checked on My pull requests)
  • Open an item from each tab (2026-11-10, assigned, mentioned and participating items open the issue)
  • Repository issue list opens (2026-11-10)
  • Search in the list (2026-11-10, search for 'renamed' finds the renamed issue)
  • Remove filter (2026-11-10)
  • Filter by milestone (2026-11-10, M1 shows issues 1 and 2)
  • Filter by label (2026-11-10, bug shows 6, 1, 3 and not the closed 5)
  • Filter by assignee (2026-11-10, alice with milestone M1 gives the expected empty list)
  • Filter by participating status (2026-11-10, Participating gives 6 and 3, Not participating gives 4, 2, 1 (client side exclusion))
  • Manage labels (collaborator menu) (2026-11-10)
  • Manage milestones (collaborator menu) (2026-11-10)
  • Sort: newest, oldest, most recently updated, least recently updated, most commented, least commented (2026-11-10, newest, oldest, updated sorts verified; most and least commented fall back to updated order because GitLab cannot sort by comment count)
  • Same checks for the pull request list (2026-11-10, open, closed and merged tabs, newest, oldest and updated sorts on the merged tab)
  • Create issue button (2026-11-10)
  • Empty state (2026-11-10, issue and PR lists show the empty text)

7. Issue detail (issue_menu, issue_fragment_menu, timeline)

  • Header shows state, number, title, repo (2026-11-10, Issue #1 and PR !3 headers)
  • Body renders markdown, images, code blocks, task lists (2026-11-10, headings, emphasis, quote, task list, ordered list, code block render; tables show as plain text; image placeholder for an unreachable URL)
  • Labels, assignees, milestone, reactions shown (2026-11-10, issue 1 and 3)
  • Timeline events: comment, label change, assign, close, reopen, rename, cross reference, commit reference (2026-11-10, label, rename, cross reference and commit reference rows verified; assign, close, reopen checked earlier)
  • Menu: Close (2026-11-10, issue 5 closed and reopened, state verified on the server)
  • Menu: Reopen (2026-11-10, issue 5 closed and reopened, state verified on the server)
  • Menu: Share (2026-11-10, issue; share sheet shows the real instance URL)
  • Menu: Open in browser (2026-11-10, issue; opens Chrome with the instance URL)
  • Menu: Copy number (2026-11-10, clipboard holds 7)
  • Edit button opens the issue editor and saves title, body, labels, assignee, milestone (2026-11-10, title and labels saved, verified on the server)
  • Comment box: type and send (2026-11-10, comment appears on the server)
  • Comment box: advanced editor toggle (2026-11-10, opens editor with Edit and Preview)
  • [-] Comment box: attach button (2026-11-10, no attach button in the comment box on this build)
  • Markdown buttons: bold, italic, strikethrough, h1, h2, h3, quote, code, link, image, bullet list, number list, task list, divider (2026-11-10, all buttons insert their markup)
  • Comment overflow: Share, Add reaction, Edit, Delete, View in file (2026-11-10, edit and delete only for own comments)
  • Text selection menu: Quote (2026-11-10, inserts > comment into the comment box)
  • Reaction picker: +1, -1, laugh, hooray, confused, heart, rocket, eyes, and the Loading state (2026-11-10, add, list and remove reactions on an issue and on a comment; rocket and eyes are cut off in the popup on this screen size)
  • Reaction bar tap adds and removes a reaction (2026-11-10, tap on the count opens Remove reaction)
  • Tap a user avatar and extra text in a comment
  • Link inside markdown opens the right screen (2026-11-10, #2, !1, commit sha and @alice open issue, PR, commit and user)
  • Rotate keeps the draft and scroll position (draft kept 2026-11-10, scroll position not checked)

8. Create and edit issue, labels, milestones

  • Create issue with title and body (2026-11-10, issue template Bug.md from .gitlab/issue_templates fills the body)
  • Create issue with labels, assignee, milestone chosen (2026-11-10, issue 6 on the server has labels bug,docs, assignee alice, milestone M2)
  • Validation error for an empty title (2026-11-10)
  • Label list, create, edit, delete label (2026-11-10, checked on the server after each action)
  • Label color picker (2026-11-10, swatch colour saved on the server)
  • Milestone list: open and closed tabs (2026-11-10, open lists M1 and M2 with counts, closed shows the empty message)
  • Create milestone with due date (2026-11-10)
  • Edit milestone, Close, Reopen, Delete (edit_milestone_menu) (2026-11-10, checked on the server after each action)
  • [-] Milestone detail issue list (2026-11-10, for collaborators a tap opens the milestone editor, no separate detail list)

9. Pull request detail (pullrequest_menu, pull_request_fragment_menu)

  • Conversation tab: header, branch info (head into base), status (2026-11-10, PR !1, !3, !5)
  • Commit status box: header tap and each row tap (2026-11-10, 1 failing, 1 pending, 1 successful)
  • Commits tab, open a commit (2026-11-10)
  • Files tab, open a file diff (2026-11-10)
  • Menu: Merge (all merge styles GitLab offers) (2026-11-10, merged !4 and !5 as maintainer; non-maintainer gets a 403 message)
  • Menu: Review (2026-11-10, comment, request changes and approve from the app; the approval shows as a review row and on the server)
  • Menu: Reopen (2026-11-10, PR !1 closed and reopened, state verified on the server)
  • Menu: Close (2026-11-10, PR !1 closed and reopened, state verified on the server)
  • Menu: Share (2026-11-10, PR; share sheet shows the real merge_requests URL)
  • Menu: Open in browser (2026-11-10, PR; opens Chrome)
  • Menu: Copy number (2026-11-10, PR)
  • Delete branch after merge (2026-11-10, merged as root from the app; Delete branch and Restore branch in the overflow menu change the branch on the server)
  • Comment, edit and delete a PR comment (2026-11-10, comment created and deleted on the server)
  • [-] Create pull request (2026-11-10, the app has no create pull request screen (same as OctoDroid))
  • Merged and closed states render correctly (2026-11-10)

10. Reviews and diffs (review_menu, review_diff_hunk_menu, diff viewer)

  • Review list in the PR conversation, expand details (2026-11-10, review with its diff hunk and comment opens)
  • Review comment tap and avatar tap (2026-11-10, avatar opens the user)
  • Review overflow: Share, Open in browser (2026-11-10, menu shows both)
  • Diff hunk menu: Share, View in file (2026-11-10, tap the line number: Share gives the merge request URL with #note_, View in file opens the diff (fixed a crash))
  • Diff viewer for a commit and for a PR file (2026-11-10, PR file diff renders with the inline comment)
  • Add inline comment, reply, edit, delete (2026-11-10, verified on the server)
  • Share a diff line (file_line_menu) (2026-11-10, shares a GitLab line code anchor (sha1 of the path plus old and new position); opening that link highlights the line)
  • Large and binary diffs do not crash (2026-11-10, big.txt (4000/3000 lines) and new.bin open)
  • [-] Missing patch is filled from the .diff endpoint (2026-11-10, the app never requests a .diff, GitLab returns patches in the file list)

11. Commits (commit_menu, commit_comment_actions, commit_history_menu)

  • Commit list on the repo Commits tab, paginate (2026-11-10, 50 commits, pages 1-3 load on scroll)
  • [-] Commit list for a file with Follow renames toggle (2026-11-10, History opens; there is no follow-renames toggle because the GitLab commits API cannot follow renames)
  • Commit detail: message, author, stats, files changed (2026-11-10)
  • Commit menu: Open in browser, Share (2026-11-10, toolbar shows both on a commit)
  • Open a changed file from a commit (2026-11-10, README.md diff opens)
  • Commit comments tab: add comment (2026-11-10, list, add; comments now use the discussions API and render markdown)
  • [-] Commit comment actions: Share, Reply, Add comment, Add reaction, Edit, Delete (2026-11-10, Share, Edit and Delete verified on the server; Reply and reactions not on GitLab commit comments)
  • Commit compare view between two refs (2026-11-10, deep link to a compare URL lists the commits)
  • Commit status box (2026-11-10, PR !6 conversation shows 1 failing, 1 pending, 1 successful and expands)

12. Repository (repo_menu)

  • About tab: description, language, counts (2026-11-10, counts match the server; language unknown on GitLab)
  • Counts match the server for issues, pull requests, forks, stars, watchers (2026-11-10, 6 issues, 2 PRs, 0 forks, 1 star)
  • Tap each count row opens its list (2026-11-10, issues, PRs, forks, stars)
  • README expand and collapse, relative links and images (2026-11-10, image and emoji render)
  • Overview row taps (owner, homepage) (2026-11-10, owner opens the user, no homepage set on the test repo)
  • Menu: Select branch, switch to a tag and to another branch (2026-11-10, branch feature shows NEW.txt)
  • Menu: Share (2026-11-10, repo menu shows Share)
  • Menu: Open in browser (2026-11-10, repo menu shows it)
  • [-] Menu: Search code and open a result (2026-11-10, GitLab code search needs Elasticsearch, the entry is hidden)
  • Menu: Download code as ZIP (2026-11-10, valid 16 KB archive saved to Downloads)
  • Menu: Bookmark and remove bookmark (2026-11-10, bookmark list opens the repo)
  • Star, unstar (2026-11-10, server star count checked)
  • [-] Watch, unwatch (2026-11-10, GitLab has no repository watch, the row is informational)
  • [-] Fork (2026-11-10, the fork action does not exist on this build, same as upstream OctoDroid)
  • Other information: Contributors, Collaborators, Releases, Wiki (2026-11-10, all four screens load)
  • Wiki list and a wiki page (hidden or clear message when the wiki is off) (2026-11-10, pages render as HTML)
  • Activity tab, open an item (2026-11-10, Created a repository row opens the repo)
  • Empty repo (2026-11-10, Files, Commits and Activity tabs show empty messages without errors)
  • Private repo (2026-11-10, alice/secret listed and openable)
  • Archived and mirror repo (2026-11-10, archived repo opens without errors (no archived badge is shown, mirrors not tested))

13. Files (file_viewer_menu, content list)

  • Folder browse and breadcrumbs, tap a breadcrumb (2026-11-10, src > util, tap / returns to the root)
  • Open a text file, syntax highlight (2026-11-10, Main.java highlighted)
  • Open a markdown file rendered (2026-11-10, headings, emphasis, lists and emoji render; the relative image is blocked on the local http server (mixed content from the https base URL), not retested on https)
  • Open an image file (2026-11-10, logo.png renders)
  • Open a large and a binary file (2026-11-10, big.txt (113 kB) renders; data.bin is handed to the download manager)
  • File menu: Search in file, Open in browser, Share, Download, Wrap lines, Raw (2026-11-10, search, share, download, wrap lines, print, history and open in browser work; there is no Raw entry)
  • File history from the content list (2026-11-10, History from the file menu)
  • Line tap and share line (2026-11-10, line number menu shares the blob URL with #L2)
  • Branch and tag picker keeps the path (2026-11-10, src folder kept after switching v0.9 to v1.0)
  • [-] Gist file viewer: Open in browser, Download (2026-11-10, no gists on GitLab)

14. Releases and tags

  • Release list (2026-11-10, root/hello v1.0, local server)
  • Release detail: title, tag, body, assets (2026-11-10, root/hello v1.0, local server)
  • Tag text tap and avatar tap (2026-11-10, root/hello v1.0, local server)
  • Menu: Open in browser, Add reaction (2026-11-10, only Open in browser is offered, GitLab releases have no reactions)
  • Download an asset (2026-11-10, root/hello v1.0, local server)
  • [-] Release reaction picker (2026-11-10, GitLab releases have no reactions, entry not shown)

15. Users, orgs and social

  • User profile: avatar, bio, counts, email, website (2026-11-10, KaKi87 on gitlab.com)
  • Profile repository count matches the server (2026-11-10, bob shows 0 repositories, tanuki-org 1 repository)
  • Profile menu: Share, Open in browser, Bookmark (2026-11-10, menu shows Share, Open in browser, Bookmark, Open in new window)
  • Follow and unfollow (2026-11-10, alice follows bob, button toggles, server confirms)
  • Followers list, Following list (2026-11-10, bob followed by alice, bob follows alice)
  • [-] Starred repos of a user (2026-11-10, profile has no starred row)
  • [-] Organizations of a user (2026-11-10, the profile has no organizations section)
  • Org profile and org repos (2026-11-10, tanuki-org on local server; profile and Public Activity)
  • Org members list (OrganizationMemberListFragment), open a member (2026-11-10, 1 member, opens root)
  • Contributors list, open a contributor (2026-11-10, list loads; contributor has no avatar)
  • Collaborators list (2026-11-10, 3 members)
  • Stargazers and watchers lists (2026-11-10, stargazers lists alice; GitLab has no watchers list)
  • Forks list (2026-11-10, empty message for an unforked repo)
  • User not found shows a readable error (2026-11-10, gitlab.com)
  • Type selector: repositories, users, issues, pull requests, code (2026-11-10, only Repository and User are offered, which is intended on GitLab)
  • Submit search with keyboard and with the search icon (keyboard submit works, icon not tested)
  • Open a result of each type (2026-11-10, repo and user results open on gitlab.com; issue, PR and code types are not offered)
  • Empty result message (2026-11-10, gitlab.com users)
  • Exact user and org name search (2026-11-10, tanuki-org finds the group and sub group)
  • Pagination (2026-11-10, gitlab.com search loads page 2 on scroll)
  • Search history or suggestions if present (2026-11-10, recent query suggestion with Clear suggestions)

17. Bookmarks and stars

  • Bookmarks tab lists bookmarks added from repo and user menus (2026-11-10, repo bookmark added from the repo menu is listed)
  • Open a bookmark (2026-11-10, opens the repo)
  • Remove a bookmark (long press or swipe) (removal via the repo menu works; list gesture not found)
  • Starred tab lists starred repos (2026-11-10, 2 gitlab.com stars with counts)
  • Starred sort order (2026-11-10, Oldest and Newest flip the list)

18. Gists (gist_menu)

  • [-] My gists: Mine and Starred tabs (2026-11-10, screen not reachable on GitLab)
  • Hidden or clear message because GitLab has no gists (2026-11-10, drawer entry hidden)
  • [-] Gist detail menu: Star, Share (only if reachable) (2026-11-10, not reachable on GitLab)
  • Trending screen behaviour on GitLab (2026-11-10, entry hidden)
  • Public timeline behaviour on GitLab (2026-11-10, entry hidden)
  • [-] Blog list menu: Open in browser (only if reachable) (2026-11-10, screen not reachable on GitLab)

20. Settings

  • Start page: each option opens that screen at launch (2026-11-10, My issues verified at launch; the dialog lists eight options without gists, trending or blog)
  • Use built-in browser on and off, then open a link in each mode (2026-11-10, on opens a Custom Tab, off sends a plain view intent to the external browser)
  • Notifications switch on and off (2026-11-10, turns on, Sync interval enables and jobs are scheduled)
  • Theme dialog: Use system setting, Day, Night apply immediately (2026-11-10, Night applies immediately)
  • Code view text size dialog lists five sizes (2026-11-10, Smallest to Largest)
  • Animated GIF loading dialog lists three options (2026-11-10, Don't load, Only load on Wifi, Load always)
  • Sync interval dialog (2026-11-10, seven options from 15 minutes to 6 hours)
  • Text size and GIF choice take effect in a file view and a markdown image (2026-11-10, Largest code size enlarges the file view; GIF option not exercised)
  • About dialog (2026-11-10, TanukiDroid text, repository link, Report an issue and Source Code buttons)
  • Open source components list (2026-11-10, list with library names and URLs)
  • Settings persist after restart (2026-11-10, Night theme kept after force-stop)
  • Theme and dark mode follow the system (2026-11-10, system night mode switches the app between dark and light)

21. Dialogs and shared widgets

  • Single-choice dialogs (ref picker, filter pickers) select and dismiss (2026-11-10, ref picker selects and dismisses; filter menus verified earlier)
  • Markdown rendering: tables, nested lists, HTML, emoji, mentions, issue links (tables now show cell borders, emoji, mentions and issue links verified 2026-11-10, nested lists and raw HTML not yet)
  • Image viewer from markdown
  • Web view find bar: find previous, find next (2026-11-10, match counter, next and previous work)
  • Print menu (2026-11-10, print preview shows title and code)
  • Pull to refresh on every paged list (2026-11-10, feed, notifications, repositories, issues and pull requests reload on pull down)
  • Error view TRY AGAIN retries (2026-11-10, airplane test and a transient failure both recover)
  • Empty view text on every list (checked so far: releases, forks, users search, bookmarks, notifications)
  • GitLab repo URL (2026-11-10, gitlab.com KaKi87; the account of the link's host is selected)
  • Issue URL (2026-11-10, gitlab.com KaKi87; the account of the link's host is selected)
  • PR URL (2026-11-10, gitlab.com gitlab-org/gitlab !1 (old MR without diff refs no longer crashes))
  • Commit URL (2026-11-10, gitlab.com KaKi87; the account of the link's host is selected)
  • File URL on a branch (2026-11-10, branch and tag URLs resolve with a direct lookup instead of paging every branch)
  • User and org URL (2026-11-10, gitlab.com KaKi87; the account of the link's host is selected)
  • Release URL (2026-11-10, gitlab.com gitlab-org/cli release v1.50.0 opens)
  • [-] Share text into the app (2026-11-10, the app has no SEND handler, as upstream)
  • Open in browser from each screen that has the action

23. Robustness

  • Rotate on a list, a detail view and a dialog (list and detail verified 2026-11-10, dialog not yet) (2026-11-10, list, issue detail and the branch picker dialog survive rotation)

  • Background and resume (2026-11-10, HOME then relaunch keeps the screen)

  • Airplane mode on a list shows a readable error, then TRY AGAIN recovers (2026-11-10, My repositories: error then TRY AGAIN loads the list)

  • Slow network does not duplicate rows (2026-11-10, feed under emulated GSM speed and GPRS delay, no duplicated rows)

  • Release build behaves like debug (R8 does not strip the interceptor models)

  • Back stack after deep link (2026-11-10, back from a deep-linked issue leaves the app, as expected for an external link)

  • Re-check markdown rendering on issue body, issue comments, commit comments, release notes, review bodies (body_html is now synthesized) (2026-11-10, issue body and comments, commit comments, release notes and review comments render)

  • Issue menu has "Open in new window"; verify it (2026-11-10, opens the issue in a new task)

  • Close dialog "Not planned" and "Duplicate" reasons (GitLab has only open/closed): hide them or accept (2026-11-10, Close closes the issue directly, the Not planned and Duplicate reasons are not offered)

  • Deep links on custom hosts cannot be registered in the manifest; confirm links to a custom host open in the browser (2026-11-10, link to a host without an account opens the browser)

  • Emoji shortcodes such as 🐛 in issue and PR titles render as text, not emoji (2026-11-10, list shows the text unchanged)