Skip to content

Remove inherited upstream promotion and add AppHarbor support - #4

Merged
stupidgiraffe merged 3 commits into
mainfrom
feature/harbor-curation-support
Oct 11, 2026
Merged

stupidgiraffe merged 3 commits into
mainfrom
feature/harbor-curation-support

Conversation

@stupidgiraffe

Copy link
Copy Markdown
Owner

Product fixes

  • Stop seeding Victor-root as an AppHarbor-curated GitHub account on fresh installs.
  • One-time migration: drop inactive inherited curated account and its unrequested discoveries, cancel residual background job; retain already-enabled account and its discoveries as an ordinary user source. User-added uncurated accounts are unchanged.
  • Stop showing the AppHarbor launcher icon for Victor-root; use the account's own GitHub avatar.
  • Add Buy Me a Coffee support link in README without advertising, sponsored ranking, or nags.

Compatibility

Retain the existing persisted preference key names, ExternalAccount.OMNIFY_KEY as legacy lookup, and legacy source migration. No package rename, signing change, or source-provider rewrite. Upstream attribution remains in project lineage.

Validation

Please run Android CI (assembleDebug testDebugUnitTest) and review the startup migration carefully before merging. Device migration verification pending.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T12:07:27.349088Z 2cd6bd0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2cd6bd09b7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +529 to +531
if (upstream.enabled) {
externalAppRepository.upsertAccount(upstream.copy(curated = false))
} else {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve previously followed disabled accounts

Do not use enabled as the test for whether this is an untouched promotional entry. A user can enable the pre-seeded Victor-root account, complete discovery, and later disable it through the normal account toggle; it then remains curated == true but has enabled == false. On their first launch after this upgrade, the else branch deletes the account, all discovered apps, their settings, and scan history. Use evidence that the entry was never followed, such as lastScan == 0L and no dependent apps, and otherwise retain it as an ordinary account.

Useful? React with 👍 / 👎.

Comment on lines +983 to +986
RepoIcon(
iconUrl = account.iconUrl,
fallbackUrl = null,
name = account.label,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove upstream branding from every account surface

Apply this avatar change to the other account renderers as well. When an enabled Victor-root entry is retained as an ordinary source, this phone row now shows its GitHub avatar, but ExternalAccountDetailScreen.kt:222 and TvRepoListScreen.kt:672 still special-case the same key and display AppHarbor's launcher icon. Opening the account or viewing it on TV therefore continues to present an unrelated upstream maintainer as AppHarbor-branded, contrary to the migration's removal of that promotion.

Useful? React with 👍 / 👎.

Comment on lines +529 to +530
if (upstream.enabled) {
externalAppRepository.upsertAccount(upstream.copy(curated = false))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Prevent account rescans from undoing the migration

Coordinate this update with creator discovery before marking the migration complete. Droidify.kt:105 concurrently resumes and schedules eligible enabled accounts during application startup, and a worker that read the old curated == true account passes that snapshot to rescanAccountNow; its final ExternalRefresher.kt:260 upsert writes the stale account back with only lastScan changed. If that scan finishes after this upsert, Victor-root returns to the curated picks while KEY_UPSTREAM_CURATED_CLEANUP_V1 remains set, so the migration never retries.

Useful? React with 👍 / 👎.

@stupidgiraffe
stupidgiraffe merged commit 29134f4 into main Oct 11, 2026
1 check 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.

1 participant