Skip to content

feat(mobile): add Issues workspace and tracker actions - #19566

Open
Bil0000 wants to merge 42 commits into
pingdotgg:issues/5-linearfrom
Bil0000:t3/mobile-issues-native-client
Open

Bil0000 wants to merge 42 commits into
pingdotgg:issues/5-linearfrom
Bil0000:t3/mobile-issues-native-client

Conversation

@Bil0000

@Bil0000 Bil0000 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Mobile has no Issues workspace. This adds a native Issues tab with project and environment filters, issue details, create and edit forms, comments, reactions, labels, assignees, workflow states, templates, history, and linked pull requests. Linked thread issues open in the same workspace.

Reuses the existing issue RPCs and mobile controls. Shared changes cover native IDs and capabilities, paging, write refresh, and tracker identity. Small web guards keep unknown comment totals and linked PR states compatible.

Depends on #19406 for server metadata, capabilities, and provider fixes. This PR targets issues/5-linear and contains no service or driver changes. Adds the required issuesResolveUrl server handler, logging, and read-grant test. Rebase this branch after #19406 lands; both PRs currently target the same stack base.

Verified:

  • 144 focused tests across 9 files passed, including list refresh, comments, pickers, selection, navigation, shared paging, and 121-label update encoding.
  • Mobile, contracts, client-runtime, and web type checks passed.
  • Targeted lint passed on 53 changed TypeScript files, with existing warnings.
  • Ponytail review passed. The normal commit hook ran.

Android native navigation requires a rebuilt client. The final fresh iOS build could not complete because the test host has SDK 27.0 and unchanged base Swift code needs SDK 27.1 APIs. Device captures use JavaScript on an installed iOS client and do not prove a fresh native build.

Real iPhone captures with fake local data, using the current JavaScript on an installed iOS client.

Issues list Jira detail
Issues list with Load more Jira detail
Comments and state history Native state filter
Jira comments and state history Native state filter with Load more

UI authored with Claude Opus 5.5 through ClaudeX. Integrated and verified with GPT-6.1-Sol through Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Oct 14, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR not approvable — This PR introduces a large Issues workspace with tracker reads and writes, new navigation and forms, shared contract/runtime changes, and authenticated URL-resolution behavior across mobile and server code. It also expands the default workspace surface, so the scope and product impact warrant human review.

Notes:

  • All code in this push has already been reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

Comment thread packages/client-runtime/src/state/issues.ts Outdated
Comment thread apps/mobile/src/features/issues/useIssueList.ts Outdated
Depends on pingdotgg#19406 for the server endpoint. Its published head f2bfdd2 registers issuesResolveUrl in apps/server/src/ws.ts:1213 and its read grant in RpcAuthorization.ts:134. Keep this sibling mobile PR free of duplicate server code. The native caller uses external URL fallback for older servers.
Preserve exhausted pagination when the first-page cursor and scope are unchanged. Keep existing resets for changed viewers, owners and first-page data.
Resolve supported issue URLs in the source environment through the existing read-granted command. Reuse native issue navigation and preserve the pull request or browser fallback for unsupported and older servers.

UI authored with Opus 5.5 through ClaudeX; parser and integration verified with GPT-6.1 Sol through Codex. Preserve the Bil0000 and Julius foundation.
Use per-issue workflow states and preserve rich descriptions that cannot be edited safely. Keep title edits, browser access, and older-server defaults. Optional native metadata is supplied by dependency pingdotgg#19406.

UI authored with Opus 5.5 through ClaudeX; contracts and integration verified with GPT-6.1 Sol through Codex. Preserve the Bil0000 and Julius foundation.
Keep native Forgejo mounts and scoped accounts separate through list paging, refresh, creation and selection. Retain failed account-change restarts for explicit first-page retry without consuming another source cursor.

The shared continueIssueListPage producer stores restartSources; the controller writes that returned page before queuing the restart, then clears each source only after successful refresh.
Carry the clicked URL through native issue navigation without changing selection identity. Offer Retry and Open in browser when no issue can be loaded, while keeping invalid schemes and automatic browser opening disabled.

UI authored with Opus 5.5 through ClaudeX; shared type and integration verified with GPT-6.1 Sol through Codex.
Keep restart targets when a refresh fails or does not cover their source, including repeated replies with missing metadata. Clear targets only after successful coverage or authoritative removal.
Decode Azure organization and project names once, support visualstudio.com work item URLs, and reject malformed or separator-containing path segments.
Comment thread packages/shared/src/issueUrl.ts
Distinguish a disconnected environment from missing edit access and show candidate request errors in empty lists. Keep existing guards and actions.

Source UI authored with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Reuse the existing authenticated media context with the issue environment and workspace. Cover description, current comments, and older comments without another issue detail read.

Source UI authored with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Use the existing issue-aware link opener for pending questions and keep the original linked issue URL available for browser fallback.

Source UI authored with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Keep cached confirmations when reads fail, then trust fresh native data when the account is unknown. Reset older comment windows and metadata sets at the same boundary while preserving known-account acknowledgments.

Data implementation and integration verified with GPT-6.1 Sol through Codex.
Store only fields changed in the local draft, so another person’s title or description refresh stays visible and is not written back by an unrelated edit.

Source UI authored with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Tell disconnected users to reconnect before changing labels or assignees. Keep the existing access message for connected users.

Source UI authored with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Reuse the existing host codec for the resolved Forgejo web URL, retaining the remote authority when that URL is unusable. Keep environment and port checks before native resolution.

Source author: Bil0000. Adapted from main 98116b3 with Opus through Claude Code; integration verified with GPT-6.1 Sol through Codex.
Connect the declared issue URL RPC to the existing service and instrumentation group. Cover its inherited read scope in the existing authorization test loop.

Reuse existing Bil0000-authored sibling wiring. Integration verified with GPT-6.1 Sol through Codex.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant