Skip to content

feat: detect and expose Syncthing conflict files - #171

Merged
DenizAltunkapan merged 4 commits into
Vault-Web:mainfrom
IhorHaidukov:feature/161-syncthing-conflicts
Oct 11, 2026
Merged

DenizAltunkapan merged 4 commits into
Vault-Web:mainfrom
IhorHaidukov:feature/161-syncthing-conflicts

Conversation

@IhorHaidukov

Copy link
Copy Markdown
Contributor

Closes #161

What changed

  • detect Syncthing conflict filenames
  • expose conflict and originalPath metadata
  • support conflict metadata in folder tree and paginated folder content
  • keep originalPath null when the likely original file does not exist
  • add tests for conflict detection and similar non-conflict filenames

Testing

  • FolderServiceTest: 78 tests, 0 failures, 0 errors
  • spotless:check: passed
  • full test suite: 266 tests, with one unrelated Windows symlink permission error in FileServiceTest.editLockKey_resolvesSymlinkedFoldersToTheSameKey

@github-actions github-actions 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.

Agent review

Suggestion: approve. I did not find any high-confidence correctness, security, regression, or missing-test issues in this diff.

Generated by Pull Request Review for #171 · copilot · auto · 15 AIC · ⌖ 0.496 AIC · ⊞ 7.1K

@DenizAltunkapan DenizAltunkapan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would hold this until the branch is updated onto current main. The PR checks passed on the old base, but a clean merge with current main fails to compile because FolderService no longer owns resolvePathWithinRoot after PR 167. Please replace the new calls with the FileUtils helper and rerun Backend CI on the updated branch.

Comment thread backend/src/main/java/cloudpage/service/FolderService.java Outdated
Comment thread backend/src/main/java/cloudpage/service/FolderService.java Outdated

@github-actions github-actions 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.

Agent review

Two issues. The symlink one is merge-blocking because it can make a folder listing fail. The regex one is a correctness gap. Details are in the inline comments.

Generated by Pull Request Review for #171 · copilot · auto · 16 AIC · ⌖ 0.501 AIC · ⊞ 7.1K

Comment thread backend/src/main/java/cloudpage/service/FolderService.java Outdated
Comment thread backend/src/main/java/cloudpage/service/FolderService.java

@github-actions github-actions 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.

Agent review

Suggestion: approve. I did not find any high-confidence correctness, security, regression, or missing-test issues in this diff.

Generated by Pull Request Review for #171 · copilot · auto · 16.4 AIC · ⌖ 0.496 AIC · ⊞ 7.1K

@github-actions
github-actions Bot dismissed their stale review October 11, 2026 18:58

Superseded by updated review from same workflow.

@IhorHaidukov

Copy link
Copy Markdown
Contributor Author

Updated the branch and addressed the requested changes, including the multi-dot conflict filename case and symlink-safe original path handling. All checks are passing now.

@DenizAltunkapan DenizAltunkapan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@IhorHaidukov Thanks!

@DenizAltunkapan
DenizAltunkapan merged commit b074018 into Vault-Web:main Oct 11, 2026
7 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.

[Feature]: Detect and surface Syncthing conflict files in Cloud

2 participants