Skip to content

Conversation

@jkmassel
Copy link
Contributor

@jkmassel jkmassel commented Nov 24, 2025

Description

Fixes a few reported reader issues:

  1. Accessing links from the WP.com Calypso Banner works again (try the following):
  1. Opening a Reader link multiple times doesn't cause the view to reload on top of the old one. Try the above links, then go back to the browser and try them again. None should be replaced inline.

  2. Fixes an issue where where going to https://wordpress.com/read after https://wordpress.com/reader/feeds/138734090 wouldn't load the reader root. It is added to the top of the nav stack instead of popping the stack down to the root to more closely imitate how a browser works.

  3. Removes a bunch of code causing problems – there is no good way to load a post into the reader by its URL. Thus, we'll use WP.com to resolve all reader URLs to a site ID and post ID and load them that way.

Testing instructions

See above

Consider testing the following yourself before requesting a review:

  • Compatibility with WordPress.com sites and self-hosted Jetpack sites
  • Both portrait and landscape orientations
  • Light and dark modes
  • Dynamic font sizes: larger, smaller and bold text
  • High contrast mode
  • Screen reader experience (e.g., VoiceOver)
  • Languages with large words or with letters/accents not frequently used in English
  • Right-to-left languages layout
  • Multi-tasking: split view and slide over

-->

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Nov 24, 2025

App Icon📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress
ConfigurationRelease-Alpha
Build Number29968
VersionPR #25016
Bundle IDorg.wordpress.alpha
Commitdbecfbe
Installation URL50bfpp4v498q8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Nov 24, 2025

App Icon📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack
ConfigurationRelease-Alpha
Build Number29968
VersionPR #25016
Bundle IDcom.jetpack.alpha
Commitdbecfbe
Installation URL12bg6i2f1efg0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

case .blogsPost:
return "/read/blogs/:blog_id/posts/:post_id"
case .wpcomPost:
return "/:post_year/:post_month/:post_day/:post_name"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can't be removed without more consideration as it's the top universal link in the app.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reworked this to unconditionally resolve the URL against WP.com without making any local assumptions.

@jkmassel jkmassel added this to the 26.5 ❄️ milestone Nov 26, 2025
@jkmassel jkmassel requested a review from kean November 26, 2025 20:51
@jkmassel jkmassel marked this pull request as ready for review November 26, 2025 20:51
success(ResolvedReaderPost(postId: postId, siteId: siteId))
} failure: { error, response in
failure(error)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: you can use the async API, which supports Decodable, in wordPressComRestApi.perform(...) (which is different from wordPressComRESTAPI)

@crazytonyli
Copy link
Contributor

crazytonyli commented Nov 26, 2025

Does this PR fix the issue where the app can't handle the post link from the web reader?

Simulator.Screen.Recording.-.iPhone.17.-.2025-11-27.at.10.23.23.mov

@crazytonyli crazytonyli reopened this Nov 26, 2025
@crazytonyli
Copy link
Contributor

I probably pressed some unknown key combination that accidentally closed the PR. 🤦‍♂️

@crazytonyli
Copy link
Contributor

BTW, do you want to target the 26.5 release branch?

@jkmassel jkmassel changed the base branch from trunk to release_notes/26.5 November 26, 2025 21:31
@jkmassel
Copy link
Contributor Author

BTW, do you want to target the 26.5 release branch?

Rebased, thanks!

@crazytonyli
Copy link
Contributor

The base branch is set to release_notes/26.5, but it should be release/26.5 😅

@jkmassel jkmassel changed the base branch from release_notes/26.5 to release/26.5 November 26, 2025 23:40
@jkmassel
Copy link
Contributor Author

The base branch is set to release_notes/26.5, but it should be release/26.5 😅

Oh man, one day I'll learn to read 🤦

@dangermattic
Copy link
Collaborator

dangermattic commented Nov 26, 2025

1 Warning
⚠️ This PR is assigned to the milestone 26.5 ❄️. The due date for this milestone has already passed.
Please assign it to a milestone with a later deadline or check whether the release for this milestone has already been finished.
1 Message
📖 This PR contains changes to RELEASE-NOTES.txt.
Note that these changes won't affect the final version of the release notes as this version is in code freeze.
Please, get in touch with a release manager if you want to update the final release notes.

Generated by 🚫 Danger

@crazytonyli
Copy link
Contributor

@jkmassel You may need to rebase this PR to remove some commits that were merged into trunk after the RC was cut.

@jkmassel jkmassel force-pushed the fix/reader-issues branch 4 times, most recently from fa08f72 to bcbf5dc Compare November 27, 2025 01:07
jkmassel and others added 6 commits November 26, 2025 18:07
- Remove unused `Decodable` conformance from `ResolvedReaderPost`
- Add `[weak self]` to closures in `fetch(_ url:)` to prevent retain cycles
- Simplify nested conditionals in `contentIsAlreadyDisplayed`
- Add debug logging when skipping duplicate content presentation
- Make `self.` usage consistent

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Simplify nested conditionals in `contentIsAlreadyDisplayed(_:in nav:)` to use guard-let pattern
- Add clarifying comment for UInt64 type requirement in resolveUrl

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@jkmassel
Copy link
Contributor Author

jkmassel commented Nov 27, 2025

Does this PR fix the issue where the app can't handle the post link from the web reader?

Simulator.Screen.Recording.-.iPhone.17.-.2025-11-27.at.10.23.23.mov

523028f addresses this :)

@crazytonyli
Copy link
Contributor

@jkmassel The WordPress.com News link in the Reader can't be opened in the app. I have fixed that in the commit above. Feel free to make additional changes if needed.

@sonarqubecloud
Copy link

Copy link
Contributor

@kean kean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good. I tested the banner and some other scenarios as well. I found one issue and will send it separately.

Left one small comment about release notes.

* [*] Add support for editing custom taxonomy terms from "Post Settings" [#24964]
* [*] Fix overly long related post titles in Reader [#25011]
* [*] Increase number of lines for post tiles in Reader to three [#25019]
* [*] Fix horizontal insets in Reader article view [#25010]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These entries are now duplicated.

@jkmassel jkmassel merged commit 97338c8 into release/26.5 Nov 27, 2025
26 of 32 checks passed
@jkmassel jkmassel deleted the fix/reader-issues branch November 27, 2025 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants