NodeLoc APP Update Log (Current v0.3.3)

NodeLoc App Release Notes

Repository: GitHub - lezi-fun/nodeloc-app: NodeLoc.com 的第三方 Android 原生客户端 · GitHub

NodeLoc App v0.3.4

NodeLoc App v0.3.4

This update is based on v0.3.3 and focuses on a Discourse-style notification center, Android system notifications, and a chat entry point. It also fixes onebox images, topic upvote/downvote voting, check-ins, app update detection, and other issues.
Notifications now extend from the app to the system interface, and post voting now behaves like Discourse Post Voting.


Highlights: You can now

  • Handle notifications directly from the home page: the avatar in the upper-right corner shows the unread count; tap it to quickly browse recent notifications
  • Receive alerts in the system notification shade: tap an Android system notification to open the app’s notification center
  • Open chat from the sidebar: NodeLoc Chat continues using the current login session
  • Use real upvote/downvote voting: response lists are no longer shown, and reactions are no longer selected by long-pressing
  • View onebox images correctly: thumbnails, full-size images, and lazy-loaded images are displayed according to their actual structure

Overview

The main focus of this release is the notification experience. The home page now includes the user avatar and an unread badge. The avatar menu, full notification page, and Android system notifications share the same notification data. Reading an individual notification updates only that item, while “Mark all as read” still requires an explicit user action. The app checks for new notifications at startup, when returning to the foreground, and during periodic background tasks. On Android 13 and later, it attempts to request notification permission the first time the app is opened.

The second focus is matching Discourse’s actual behavior. Onebox images now distinguish between left-side thumbnails and full-width images and support lazy-loading URLs. Topic upvotes and downvotes now use the Discourse Post Voting API and server-side state instead of reusing reaction logic. The release also fixes formal-version detection, check-in requests, and large images in post bodies.

Release date: 2026-09-06

Update size: 6 commits | 20 files changed | +1,165 / -215 lines


New features

Discourse-style notification center

The upper-right corner of the home page now displays the current user’s avatar and unread notification count. Tapping the avatar first opens a native notification menu for quickly browsing recent notifications instead of navigating directly to a new page.

  • Displays the source user, avatar, topic title, time, and unread status
  • Tapping a notification marks only that notification as read and opens the corresponding topic
  • Provides a complete notification list and a user-triggered “Mark all as read” action
  • Opening the notification list does not automatically clear unread notifications
  • The unread badge on the home page refreshes promptly after notifications are read

Android system notifications

New NodeLoc notifications can now also appear in the Android notification shade.

  • Tapping a system notification opens the app’s notification center directly
  • Multiple notifications are grouped to reduce space used in the notification shade
  • Notifications that have already been delivered are recorded to prevent duplicate alerts
  • New notifications are checked at startup, when returning to the foreground, and during periodic background tasks
  • Android 13 and later attempts to request notification permission the first time the app is opened

Chat entry point

A new “Chat” entry has been added to the sidebar. It opens NodeLoc Chat using the current login session, without requiring another login. In this version, chat is displayed in an in-app web page; future versions will continue improving the native chat experience.


Fixes

Onebox images displayed correctly

Fixed incorrect rendering of images in oneboxes and distinguished image types according to Discourse’s actual structure.

  • Ordinary .aspect-image elements are displayed as left-side thumbnails
  • .aspect-image-full-size elements are displayed as full-width large images
  • Supports data-src, data-original-src, data-lazy-src, and lazy-loaded srcset
  • Real image URLs are preferred so data placeholder images are not treated as final images

Topic upvotes and downvotes restored as real voting

Upvote and downvote actions now use the Discourse Post Voting API and state instead of reaction logic.

  • Response-user lists are no longer displayed
  • Long-press selection of other reactions has been removed
  • Tapping the same direction again cancels the current vote
  • Switching voting direction correctly updates the count and selected state
  • Voting controls are shown only in topics where Post Voting is enabled

App update prompts restored

  • Automatically built versions are now marked as prereleases and no longer override the latest official GitHub release
  • Version comparison recognizes only official versions such as v1.2.3
  • Build tags are no longer incorrectly treated as official versions older or newer than the current version

Check-in stability fixes

  • Corrected the length of the random check-in identifier
  • Added complete site-origin information to fix check-in requests rejected by the server in some cases

Post-body image display fixed

Large images in post bodies are once again displayed in full instead of incorrectly appearing as thumbnails with links.


Upgrade notes

  • You can upgrade directly from v0.3.3 to v0.3.4 without clearing app data
  • Android 13 and later users should allow notification permission when opening the new version for the first time
  • If notification permission was previously denied, it can be re-enabled in the Android system settings under app notifications
  • Android background tasks are scheduled by the system; notification checks may be delayed in battery-saving mode
  • The current chat entry still uses an in-app web page and does not yet provide a complete native chat interface

Download and installation

Visit GitHub Releases to download the appropriate version.
The app requires Android 8.0 (API 26) or later.

File Supported devices Recommendation
nodeloc-universal-v0.3.4.apk All supported devices Recommended when you are unsure of the architecture
nodeloc-arm64-v8a-v0.3.4.apk Most modern Android phones and tablets Preferred for ARM64 devices
nodeloc-armeabi-v7a-v0.3.4.apk Older 32-bit ARM devices Needed only for older devices
nodeloc-x86_64-v0.3.4.apk 64-bit x86 emulators or devices Mainly for testing environments
nodeloc-x86-v0.3.4.apk 32-bit x86 emulators or devices Mainly for older testing environments

After downloading, you can install it directly over the existing version. If the system blocks installation, allow the current download source to install unknown apps in Android settings.

Complete changes

v0.3.3…v0.3.4

8 Likes

:xhj002: That’s awesome!

Lao Zhan, can I share the API endpoints and authentication I put together with him?
nodeloc mcp is also finished…
By the way, could you enable user-api-key? Cookies are a bit of a hassle…

Sure.

Updated, bumping the thread

That’s freaking awesome!

6 Ah, there are still many problems I haven’t dealt with.

1 Like

Strong Qiang

For example, those (

I only just found it, haha :joy:

I still haven’t gotten around to posting the update from a few days ago.

It has been officially open-sourced.

That’s great, let me take a look.

What about iOS—why haven’t we heard anything?

1 Like

Rich

It required iOS 26.0 last time; what a pain.

@James

Not bad, take a look.

The notification center now feeds directly into the system notification bar, so you should miss far fewer new messages in everyday use.