Skip to content

chore: review upstream changes to action.yml, pr.yml and 2 more - #106

Merged
constbogdan merged 61 commits into
mainfrom
chore/sync-upstream-365f8f8adacf4dcaf7d05317917830ed3a439668-4a6db6df866c4182576a3a9f96e3de697d5596e7
Sep 21, 2026
Merged

constbogdan merged 61 commits into
mainfrom
chore/sync-upstream-365f8f8adacf4dcaf7d05317917830ed3a439668-4a6db6df866c4182576a3a9f96e3de697d5596e7

Conversation

@wholphin-sync-bot

Copy link
Copy Markdown

What requires attention?

4 paths require semantic review:

  • .github/actions/setup/action.yml
    • Git textual conflict: human semantic resolution is required.
    • Semantic REVIEW: trusted downstream policy follows upstream.
  • .github/workflows/pr.yml
    • Git textual conflict: human semantic resolution is required.
    • Semantic REVIEW: trusted downstream policy requires semantic review.
  • app/src/main/java/com/github/damontecres/wholphin/services/IntentService.kt
    • Git textual conflict: human semantic resolution is required.
    • Semantic REVIEW: non-automation path follows upstream by default.
  • app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt
    • Git textual conflict: human semantic resolution is required.
    • Semantic REVIEW: non-automation path follows upstream by default.

Why?

Git found textual conflicts. Their downstream-preserved workspace is not a resolved merge; human semantic resolution is required.

What integrates automatically?

38 FOLLOW paths are included by the native candidate.
35 candidate paths require no semantic decision.

What is intentionally preserved downstream?

2 DOWNSTREAM-OWNED paths retain Mosaic semantics:

  • .github/workflows/main.yml
  • .github/workflows/release.yml

What should the operator do next?

Run .\scripts\resolve-upstream.ps1, enter this Draft PR number, and follow the generated authenticated Codex handoff.
Human review and merge/reject remain required.
No automatic semantic resolution or merge is performed.

Technical provenance and upstream history

58 incoming

  • PR 1954 — Increase memory for CI builds · 074eab2
  • PR 1956 — Fix OS screensaver starting during playback with dim enabled · 98fba13
  • Translated using Weblate (Russian · 02163ba
  • Translated using Weblate (Russian · f7c391a
  • Translated using Weblate (Russian · f3239c7
  • Translated using Weblate (Portuguese (Brazil · d6eb23d
  • Translated using Weblate (Swedish · 9602b4f
  • Translated using Weblate (Italian · 048a5f3
  • Translated using Weblate (Hebrew · db7cfae
  • Translated using Weblate (Estonian · 4f4e137
  • 48 additional incoming commits are retained in the observation artifact.

Latest observation: https://github.com/constbogdan/Mosaic/actions/runs/35603641203

{
  "schema_version": 1,
  "ownership_policy_version": 1,
  "episode_id": "0d04a7ca2773ce58dd1b7f33d0d8c86be29f4f17b19d85c5e51ea5a163844916",
  "upstream_repo": "damontecres/Wholphin",
  "upstream_base_sha": "4a118b6ddbbbb5b473f3c96011a0ac05781c9b76",
  "upstream_sha": "365f8f8adacf4dcaf7d05317917830ed3a439668",
  "downstream_repo": "constbogdan/Mosaic",
  "downstream_sha": "4a6db6df866c4182576a3a9f96e3de697d5596e7",
  "comparison_baseline": "4a118b6ddbbbb5b473f3c96011a0ac05781c9b76",
  "candidate_sha": "bc7d7fe31ada448ec8a98ff5cf60f5bbb9d9dd9c",
  "candidate_tree": "1f8c96a191007ec38a9201a9b7fc0665e6fcbb24",
  "branch": "chore/sync-upstream-365f8f8adacf4dcaf7d05317917830ed3a439668-4a6db6df866c4182576a3a9f96e3de697d5596e7",
  "outcome": "semantic_conflict",
  "classification_range_count": 41,
  "ownership_counts": {
    "DOWNSTREAM-OWNED": 2,
    "FOLLOW": 38,
    "REVIEW": 1
  },
  "review_paths": [
    ".github/actions/setup/action.yml",
    ".github/workflows/pr.yml",
    "app/src/main/java/com/github/damontecres/wholphin/services/IntentService.kt",
    "app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt"
  ],
  "conflict_paths": [
    ".github/actions/setup/action.yml",
    ".github/workflows/pr.yml",
    "app/src/main/java/com/github/damontecres/wholphin/services/IntentService.kt",
    "app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt"
  ],
  "clean_path_count": 35,
  "configured_schedule_utc": "manual",
  "observed_at": "2026-09-21T13:08:21.194145+00:00",
  "run_url": "https://github.com/constbogdan/Mosaic/actions/runs/35603641203"
}

damontecres and others added 30 commits September 12, 2026 15:14
## Description
Increases the memory available for CI builds and splits up builds a bit
more

There are no user facing changes

### Related issues
Recently dev builds failed due to OOM

### Testing
https://github.com/damontecres/Wholphin/actions/runs/34710759629

## Screenshots
N/A

## AI or LLM usage
None
…cres#1956)

## Description
Fixes some devices activating the OS screensaver during playback when
the in-app dim was enabled.

I was not able to reproduce this on Shield 2017/2019, but could easily
on a Fire TV Stick. damontecres#1834 added the dim feature and, when enabled, would
not pass the keep screen on flag to the OS during playback. It seems
maybe regular Android TV's screensaver also listened to active media
session to prevent starting but maybe Fire TV OS doesn't. I'm not 100%
sure. This PR changes the logic slightly so that the keep screen on flag
is always set during playback.

### Related issues
Fixes damontecres#1894
Related to dim feature from
damontecres#1834

### Testing
Emulator, shield 2019, & fire tv stick 4k

## Screenshots
N/A

## AI or LLM usage
None
Currently translated at 65.0% (421 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ru/
Currently translated at 65.0% (421 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ru/
Currently translated at 65.0% (421 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ru/
Currently translated at 96.1% (622 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt_BR/
Currently translated at 90.5% (586 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
Currently translated at 100.0% (647 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
Currently translated at 100.0% (647 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/he/
Currently translated at 100.0% (647 of 647 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/he/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
Currently translated at 90.4% (587 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
Currently translated at 99.3% (645 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nb_NO/
Currently translated at 99.6% (647 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
Currently translated at 100.0% (649 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
Currently translated at 7.8% (51 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/en_GB/
Currently translated at 99.8% (648 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/da/
Currently translated at 92.6% (601 of 649 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
Currently translated at 91.6% (601 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/he/
Currently translated at 99.8% (655 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
Prahlis and others added 28 commits September 12, 2026 22:39
Currently translated at 90.3% (593 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/id/
Currently translated at 8.6% (57 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/en_GB/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/hr/
Currently translated at 100.0% (656 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
Currently translated at 90.7% (595 of 656 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
Currently translated at 100.0% (657 of 657 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
Currently translated at 100.0% (657 of 657 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
Currently translated at 98.6% (648 of 657 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
Currently translated at 100.0% (659 of 659 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
Currently translated at 100.0% (659 of 659 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
Currently translated at 99.6% (657 of 659 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
Currently translated at 92.2% (608 of 659 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
Updates translations as of 2026-09-12

Thanks again to all of the contributors!
… page for discover items (damontecres#1961)

## Description
Fix two bugs:
- Favorites page didn't query for favorite people, introduced by damontecres#1864
- Fixes restoring focus on the search page after clicking a discover
item and going back

### Related issues
N/A

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
## Description
Looks like `tools` was replaced by `cmdline-tools`
(https://developer.android.com/tools#tools-sdk), so updating the setup
action for this.

### Related issues
android-actions/setup-android#537

### Testing
N/A

## Screenshots
N/A

## AI or LLM usage
None
…tecres#1962)

## Description
Makes the `itemId` parameter optional allowing just passing
`serverId`/`userId` to switch the user and load the app at the home page
for that user.

Dev note: I added a new assert function `assertIs` which asserts that an
object `is` of a type. It also has a contract so the compiler will
smart-cast usages after the `assertIs`. Checking a result type is a very
common pattern in the unit tests, so this assert will simplify a lot of
current & future tests.

### Related issues
Closes damontecres#1824

### Testing
Emulator and added unit tests for `parseIntent`

## Screenshots
N/A

## AI or LLM usage
None
…res#1981)

## Description
There is a race condition when switching users between
`HomeViewModel.init` and `HomeSetttingsService.loadCurrentSettings`.
This happens more often if the new user doesn't have a customized home
page. The result is that the previous user's home page settings are used
for the initial load of the home page.

This PR fixes this by collecting the flows for current user & home
settings, waiting until both are valid and refer to the same user, then
fetch the data.

### Related issues
Fixes damontecres#1976
Maybe related (and fixes) damontecres#1980, but need to investigate more

### Testing
Emulator. It's easy to reproduce by adding a manual `delay(2.seconds)`
at the start of `HomeSetttingsService.loadCurrentSettings`.

## Screenshots
N/A

## AI or LLM usage
None
…ntecres#1964)

## Description
When clicking on an episode, the app assumes if there is a season ID for
the episode, then there must be a series ID. However, on my JF 12.0
server, an episode (with no metadata) appeared on my Continue Watching
and it has a season ID (which in turn has a series ID) but no series ID.

I'm not sure if this really a valid situation or if it's a server bug,
but Wholphin shouldn't crash at least. So this PR checks both `seasonId`
and `seriesId` and if either is null, falls back to the generic "Episode
Page". Similarly, if a season has no `seriesId` (again, not sure if a
valid situation), a crash won't occur, however there is no generic
"Season Page", so an error page is shown.

### Related issues
TODO, check JF server issues, maybe fixed in 12.1?

### Testing
Emulator

## Screenshots
N/a

## AI or LLM usage
None
@constbogdan
constbogdan marked this pull request as ready for review September 21, 2026 16:18
@constbogdan
constbogdan merged commit 2ef429d into main Sep 21, 2026
4 checks passed
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.

3 participants