Skip to content

Finalize Mora 0.3.0 release state - #11

Merged
bjcdeshu merged 1 commit into
mainfrom
codex/v0.3.0-final-release-metadata
Jul 24, 2026
Merged

Finalize Mora 0.3.0 release state#11
bjcdeshu merged 1 commit into
mainfrom
codex/v0.3.0-final-release-metadata

Conversation

@bjcdeshu

Copy link
Copy Markdown
Owner

Summary

  • record that the pre-polish signed v0.3.0 candidate is superseded and cannot be tagged or released
  • align the changelog, project status, design spec, and implementation plan with the final real-Home predictive Back preview
  • record the final Mora-specific motion values and distinguish them from Android's full-screen fade-through spec
  • add a focused v0.3.x follow-up for opting out of Android dynamic color without expanding into a custom theme editor

This PR changes documentation only. It intentionally leaves app code, version metadata, signing, tags, workflows, and Releases unchanged.

Validation

Candidate boundary

The merge commit of this PR is intended to be the sole source for the next protected signed v0.3.0 candidate. No tag or Release should be created until that exact downloaded APK passes the documented physical-device gate and receives explicit maintainer approval.

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bjcdeshu, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 43 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d565d144-589d-4467-863e-e97ba983a400

📥 Commits

Reviewing files that changed from the base of the PR and between dee0ab3 and e727856.

📒 Files selected for processing (5)
  • CHANGELOG.md
  • PROJECT_STATUS.md
  • ROADMAP.md
  • docs/superpowers/plans/2026-07-25-mora-v0.3.0.md
  • docs/superpowers/specs/2026-07-25-mora-v0.3.0-design.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/v0.3.0-final-release-metadata

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bjcdeshu
bjcdeshu merged commit 03fbe8c into main Jul 24, 2026
2 checks passed
@bjcdeshu
bjcdeshu deleted the codex/v0.3.0-final-release-metadata branch July 24, 2026 23:01
@bjcdeshu

Copy link
Copy Markdown
Owner Author

v0.3.0 protected main candidate receipt

  • Source commit: 03fbe8ca1dd4062e19ca86b3fdf530e9cd80ffa0
  • Main CI: 30132654031 — passed
  • Signed workflow: 30132776747 — passed
  • Actions artifact: mora-v0.3.0-signed (artifact id 8611776808, expires 2026-08-23)
  • File: Mora-v0.3.0.apk
  • Size: 12,407,177 bytes
  • SHA-256: 6a015a679b5d23039e147b83839f0ebd14c65c2f62b43bddca1a626658791791
  • Package: de.unbow.mora
  • Version: versionCode 4, versionName 0.3.0
  • SDK: min 26, target/compile 36
  • APK signature: v2 verified, one RSA-2048 signer
  • Signer certificate SHA-256: 393c896b9107eb10da99cfd596d47f6e26dc0adee6483eda6c3bcf2ac503042a
  • zipalign -c -P 16 -v 4: passed
  • Downloaded .sha256 sidecar: matched independently
  • Committed public certificate and fingerprint: matched independently

The earlier candidate from run 30126447122 is superseded and must not be tagged or released. This new exact APK is the only release-eligible first-gate candidate. Emulator regression is in progress; the complete physical-device gate and explicit maintainer approval remain required before creating v0.3.0.

@bjcdeshu

Copy link
Copy Markdown
Owner Author

Exact-candidate emulator matrix

Candidate SHA-256: 6a015a679b5d23039e147b83839f0ebd14c65c2f62b43bddca1a626658791791

API 26 compatibility — passed

Clean install/cold launch; SAF open; reading/TOC/search; writing and filesystem content verification; read-only shared text to Save As; recent documents and position; English/Chinese; System/Light/Dark/Pure Black fallback; dirty and Back priority; same-version reinstall. No Mora FATAL/ANR. External test used DocumentsUI and controlled ACTION_SEND, not WeChat or an OEM file manager.

API 36 current-platform regression — passed

Clean install; English/Chinese and system per-app language; user content unchanged; dark and pure-black Reader (#000000); Indigo/Pine/Night aliases; long/short progress thumb and dragging; immersive system bars; left/right predictive completion and cancellation with real Home preview; search/TOC priority; recent documents and reading position across Activity recreation. No Mora FATAL/ANR. Explicit Light, dirty-editor Back, settings Back, rotation/force-stop continuity remain in the physical-device checklist.

Signed upgrade — passed

Public v0.2.0-rc.1 and this candidate share signer 393c896b...3042a. In-place upgrade preserved the SAF URI grant, recent document, nonzero reading position, 20 px reader size, and app data inode; new settings took defaults. Reinstalling this same candidate again preserved the same state. Crash buffers remained empty.

These emulator gates find no release blocker but do not replace the documented physical-device/OEM/provider gate. No v0.3.0 tag or Release exists yet.

@bjcdeshu

Copy link
Copy Markdown
Owner Author

v0.3.0 first exact-asset gate approved

The maintainer confirmed that the protected main candidate passed the real-device gate and explicitly approved creation of the stable tag.

  • Source commit: 03fbe8ca1dd4062e19ca86b3fdf530e9cd80ffa0
  • Candidate workflow: https://github.com/bjcdeshu/mora-markdown/actions/runs/30132776747
  • APK: Mora-v0.3.0.apk
  • Size: 12,407,177 bytes
  • SHA-256: 6A015A679B5D23039E147B83839F0EBD14C65C2F62B43BDDCA1A626658791791
  • Signing certificate SHA-256: 393C896B9107EB10DA99CFD596D47F6E26DC0ADEE6483EDA6C3BCF2AC503042A
  • Maintainer approval: 该 SHA-256 候选真机通过,批准创建 v0.3.0 tag

This approval authorizes only the annotated v0.3.0 tag. The tag-triggered Draft attachment is a new build and still requires its own exact-asset identity checks, complete real-device gate, and a second explicit publication approval.

@bjcdeshu

Copy link
Copy Markdown
Owner Author

v0.3.0 tag build: exact Draft asset ready for the second gate

The protected annotated tag and tag-triggered hidden Draft were created successfully. The Draft remains unpublished and marked as a Pre-release.

Source and automation

Exact Draft attachment

  • APK: Mora-v0.3.0.apk
  • Asset ID: 489012941
  • Size: 12,407,177 bytes
  • SHA-256: F0781946AD4BA2F13577292EE0A9BB5B3083771D2CC52073B748D809BDFF98D8
  • Sidecar asset ID: 489012942
  • Package: de.unbow.mora
  • Version: 0.3.0 / versionCode 4
  • SDK: min 26 / target 36 / compile 36
  • Signing certificate SHA-256: 393C896B9107EB10DA99CFD596D47F6E26DC0ADEE6483EDA6C3BCF2AC503042A

The downloaded Draft asset passed sidecar verification, GitHub asset-digest comparison, apksigner -Werr, certificate-record comparison, package metadata checks, and zipalign verification.

Independent runtime rechecks on this exact Draft APK

  • API 26 compatibility matrix: PASS; Mora FATAL/ANR = 0.
  • API 36 current-Android matrix, including long/short progress thumb, drag, immersive mode, left/right predictive Back, locale, appearance, icon aliases, rotation, larger font and state recovery: PASS; Mora FATAL/ANR = 0.
  • Public v0.2.0-rc.1 → Draft v0.3.0 → same Draft reinstall: PASS; app data, SAF access, recents, reading position and typography persisted; Mora FATAL/ANR = 0.

These emulator gates do not replace the required real-device gate for OEM predictive-Back behavior, launcher caching, OLED pure black, or real WeChat/DocumentProvider permissions.

Stable publication remains blocked until the maintainer tests this exact Draft APK and explicitly approves SHA-256 F0781946AD4BA2F13577292EE0A9BB5B3083771D2CC52073B748D809BDFF98D8. The tag and both assets must not be moved or replaced.

@bjcdeshu

Copy link
Copy Markdown
Owner Author

v0.3.0 Draft blocked by real-device findings

The maintainer stopped publication after testing the exact Draft asset (F0781946AD4BA2F13577292EE0A9BB5B3083771D2CC52073B748D809BDFF98D8). Two release blockers were reported and reproduced:

  1. Reader vertical swipes can be consumed before reaching the WebView. A controlled 1000 px center swipe on the exact Draft produced no document movement. Source inspection identifies the full-document Compose pointer consumer as the direct cause.
  2. The custom predictive-Back frame is too abrupt. Current-run capture confirms that 45% window translation, Home 1.10→1.00 scaling, and late concentrated fade create excessive overlapping text and large spatial movement.

The v0.3.0 annotated tag will not be moved or deleted, and its Draft assets will not be replaced. Release 359621402 remains hidden (draft=true, prerelease=true) and is now labeled blocked/superseded for audit history. Fixes will use a new patch version and repeat the complete release gates.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant