Skip to content

fix(accounts): bind media routes to account incarnation - #457

Open
veryCrunchy wants to merge 2 commits into
fix/private-memory-account-retirementfrom
fix/media-route-account-ownership
Open

fix(accounts): bind media routes to account incarnation#457
veryCrunchy wants to merge 2 commits into
fix/private-memory-account-retirementfrom
fix/media-route-account-ownership

Conversation

@veryCrunchy

@veryCrunchy veryCrunchy commented Sep 6, 2026

Copy link
Copy Markdown
Member

Outcome

Bind media viewer routes to the account identity and account incarnation that created them. Stale media navigation can no longer reopen content after the owning account is removed or replaced.

Verification

  • git diff --check
  • bash tools/check-repository.sh
  • Focused media-route ownership regressions added
  • Exact-tree build-host Gradle verification is in progress
  • Added changes/unreleased/media-route-account-ownership.md

Compatibility and risk

Android and desktop media navigation state are affected. No media bytes, persisted server data, or DAV contracts change. This PR is stacked on #456.

Visual changes

Not applicable.

@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 6, 2026 04:48 Destroyed
@obiente-cloud

obiente-cloud Bot commented Sep 6, 2026

Copy link
Copy Markdown

Obiente preview

NC Native · fbc82c3783ef · Ready

Open preview

View in Obiente

Obiente updates this comment as the preview changes.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 6, 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-09-09T07:12:17.133063Z fbc82c3 New commits
ℹ️ 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.

@veryCrunchy veryCrunchy changed the title fix/media route account ownership fix(accounts): bind media routes to account incarnation Sep 6, 2026
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 6, 2026 04:55 Destroyed
@veryCrunchy
veryCrunchy force-pushed the fix/media-route-account-ownership branch from 97516f7 to 22e7218 Compare September 6, 2026 06:52
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 6, 2026 06:52 Destroyed
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 6, 2026 06:58 Destroyed
@veryCrunchy
veryCrunchy force-pushed the fix/media-route-account-ownership branch from 8402deb to 09f3f38 Compare September 6, 2026 12:45
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 6, 2026 12:45 Destroyed
@veryCrunchy
veryCrunchy force-pushed the fix/media-route-account-ownership branch from 09f3f38 to 412da29 Compare September 9, 2026 05:11
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 9, 2026 05:11 Destroyed
@veryCrunchy
veryCrunchy force-pushed the fix/media-route-account-ownership branch from 412da29 to 3a46d39 Compare September 9, 2026 05:49
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #457 / NC Native September 9, 2026 05:49 Destroyed

@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: fbc82c3783

ℹ️ 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".

platforms: android, desktop
user-facing: yes

Media viewer routes now stay bound to the account and account incarnation that created them, preventing stale media from opening after an account is removed or replaced.

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 Do not announce incarnation binding before implementing it

When credentials for an existing NextcloudAccountId are replaced in place, neither platform retires the shared account-memory gate: Android's AndroidDynamicAccountActivation.afterCredentialSave and desktop's saveSession only reactivate it. Meanwhile, MediaViewerNavigationRepository.RouteContent stores only the account ID and resolve uses the storage-key-only gate.read, so a route created under the previous credential incarnation remains resolvable. Either bind routes to a captured producer/incarnation and test credential replacement, or remove the unsupported replacement guarantee from this release-facing fragment.

AGENTS.md reference: AGENTS.md:L106-L108

Useful? React with 👍 / 👎.

@@ -0,0 +1,7 @@
category: fix

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 Classify this confidentiality fix as security

For the account-removal case that is implemented, preventing private media retained from a removed account from reopening is a user-facing confidentiality fix. The fragment rules in changes/README.md explicitly reserve security for user-facing confidentiality fixes, but this metadata causes the generated changelog and release notes to place the change under ordinary Fixes instead of Security; set category: security so the release record discloses the boundary correctly.

AGENTS.md reference: AGENTS.md:L109-L111

Useful? React with 👍 / 👎.

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