Skip to content

Fix browser startup, host diagnostics and root action policies - #98

Merged
jochenwezel merged 18 commits into
mainfrom
codex/fix-browser-null-path-diagnostics
Oct 11, 2026
Merged

jochenwezel merged 18 commits into
mainfrom
codex/fix-browser-null-path-diagnostics

Conversation

@jochenwezel

@jochenwezel jochenwezel commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Browser startup, diagnostics and scoped-root fixes are now combined on the branch underlying this PR. Hosts receive original failures through DmsBrowser.OperationFailed while default dialogs stay concise; every browser root hides copy/rename/move/delete, including after collection-scope and busy-state restoration. Child workflows and permissions remain usable.

This PR integrates the related provider diagnostics, localization and browser-scope fixes from #94 at immutable source head 26f11400f865a6081895da4d35e59cbf2b6fe77e, through separate cherry-picked commits. The root/collection action policies share one mutation-access calculation so neither can restore forbidden root actions. Conflicts retained scoped-root failure context and both sets of localization resources.

Closes #96. Implements the remaining runtime work for #91, #92 and #93; checklist reconciliation precedes their closure. #95 is already integrated through #97. This aggregate supersedes the implementation of #94; the originating checkout is untouched.

Compatibility

BREAKING CHANGE: Synchronous WebDAV non-404 HTTP download failures use IOException instead of InvalidOperationException; transport and cancellation failures propagate without AggregateException wrapping. Public/protected signatures and external SDK dependency versions are unchanged. See FILESYSTEM_CONTRACTS.md, LOCALIZATION.md and the release notes.

Current combined verification

  • Provider isolated suites: 593 passed net8.0, 593 passed net48.
  • Startup/diagnostics/root/scoped-collection fixtures: 43 passed net8.0-windows, 43 passed net48 using the same sources in a temporary linked test host.
  • BrowserUI/demo build: zero warnings/errors (legacy constructor warnings suppressed in tests).
  • Broader combined BrowserUI selection: 394 passed, 20 declared native-monitor skips, 0 failed; native focus fixture excluded from this local run. Native-async-disabled provider suite: 342 passed net8.0. Complete current-head PR and post-merge CI passed. GUI tests display the mandatory nonactivating countdown/ETA notice.
  • The prior Handle null path segments in CombinePath #97 and Unify provider diagnostics and guard scoped browser collection actions #94 isolated CI evidence is distinct from this combined head.

Release sequence

All test matrices retain their existing per-account server concurrency groups. No feature branch cleanup will occur before the release workflow succeeds.

Final combined release checkpoint (2026-10-11)

This checkpoint supersedes prior pending integration/publication statements. The immutable changes from PR #94 were integrated with #95/#96 and the provider-independent root fix through merged PR #98 at main commit 97c897f172149a585776466fe85fa13f5a9de87f. The original #94 checkout was not changed; that PR was closed as superseded.

  • Complete exact-main cumulative Level-2 CI: all three isolated OS jobs and all twelve serialized real-server jobs passed, covering Scopevisio Teamwork, generic WebDAV, ownCloud and Nextcloud on Windows/Linux/macOS.
  • Inspect retained XML: 597 isolated provider cases passed on each OS; all 387 remote cases passed with no skips or failures. Windows GUI passed 411 cases with 20 declared optional native-monitor skips.
  • Complete exact-main Level-2 native SDK-source validation, using isolated fake transport, separately from the remote matrix. External SDK package pins are unchanged.
  • Publish DMS 2026.10.11.0 through the release-created workflow run 38161759973.
  • Download and inspect both NuGet packages, their framework outputs and matching Providers dependency, plus all six binary/demo archives (including the Teamwork runtime dependency).
  • Consume the published Providers/BrowserUI packages in an isolated external test program on .NET 8 and .NET Framework 4.8; verify null-path handling and compile/inspect the public failure event contract without GUI or server access.

Focused browser startup/diagnostics/root/scoped-collection fixtures passed 43 cases on net8.0-windows and the same 43 through a temporary linked-source net48 host. No full net48 GUI suite or new scoped-instance-switching scenario is claimed. Native large-transfer opt-in remains unchanged; no new 256 MiB/4 GiB live test is inferred. Broader RTL/DPI and consuming-application manual acceptance remain separate.

Base automatically changed from codex/95-null-path-segments to main October 11, 2026 15:38
@jochenwezel
jochenwezel marked this pull request as ready for review October 11, 2026 15:40
@jochenwezel
jochenwezel force-pushed the codex/fix-browser-null-path-diagnostics branch from 8a947db to 0262030 Compare October 11, 2026 15:40
@jochenwezel jochenwezel changed the title Expose browser failure diagnostics and hide invalid root actions Fix browser startup, host diagnostics and root action policies Oct 11, 2026
@github-actions

Copy link
Copy Markdown

Isolated Test Statistics (macos-latest)

597 tests  +49   597 ✅ +49   10s ⏱️ -8s
  1 suites ± 0     0 💤 ± 0 
  1 files   ± 0     0 ❌ ± 0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Isolated Test Statistics (ubuntu-latest)

597 tests  +49   597 ✅ +49   14s ⏱️ -1s
  1 suites ± 0     0 💤 ± 0 
  1 files   ± 0     0 ❌ ± 0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Isolated Test Statistics (windows-latest)

597 tests  +49   597 ✅ +49   11s ⏱️ -2s
  1 suites ± 0     0 💤 ± 0 
  1 files   ± 0     0 ❌ ± 0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@jochenwezel jochenwezel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Integration review of exact head 02620300437903a6971f29ed41f0b5bbcfebab0d found no outstanding source blocker. Checked original-exception preservation, subscriber isolation/cleanup, localized default presentation, scoped-root request context, merged root/collection permission policies, stale command guards, and the documented WebDAV exception compatibility change. Public/protected signatures and SDK pins remain unchanged.

Current-head isolated CI is green on all three OSes, including Windows BrowserUI smoke tests; native SDK-source validation is green on all three OSes. Local combined regressions pass on net8.0/net48 (593 providers and 43 focused GUI tests each), with 394 broad GUI cases and 342 native-disabled provider cases passing separately.

The complete serialized PR server matrix is now starting as the preceding #95 main matrix releases its per-account locks. Running workflows are preserved through cleanup. Merge and release remain gated on their required verification; complete post-merge CI will verify the final main commit before release creation. No unfinished server result or historical #94/#97 green head is treated as combined verification.

The user explicitly authorized publishing this bugfix release; the existing exclusive test window lasts until completion. The release notes flag the WebDAV exception changes as breaking changes. No external SDK dependency update is included.

@github-actions

Copy link
Copy Markdown

Scopevisio Teamwork Test Statistics (macos-latest)

20 tests  ±0   20 ✅ ±0   1m 58s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

WebDAV Test Statistics (ubuntu-latest)

16 tests  ±0   16 ✅ ±0   2m 1s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Nextcloud Test Statistics (ubuntu-latest)

16 tests  ±0   16 ✅ ±0   2m 3s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

OwnCloud Test Statistics (windows-latest)

16 tests  ±0   16 ✅ ±0   2m 0s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Scopevisio Teamwork Test Statistics (windows-latest)

20 tests  ±0   20 ✅ ±0   2m 4s ⏱️ +5s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

WebDAV Test Statistics (windows-latest)

16 tests  ±0   16 ✅ ±0   2m 0s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Nextcloud Test Statistics (windows-latest)

16 tests  ±0   16 ✅ ±0   2m 3s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

OwnCloud Test Statistics (ubuntu-latest)

16 tests  ±0   16 ✅ ±0   2m 1s ⏱️ +2s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Scopevisio Teamwork Test Statistics (ubuntu-latest)

20 tests  ±0   20 ✅ ±0   1m 59s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

WebDAV Test Statistics (macos-latest)

16 tests  ±0   16 ✅ ±0   2m 1s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

OwnCloud Test Statistics (macos-latest)

16 tests  ±0   16 ✅ ±0   2m 1s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@github-actions

Copy link
Copy Markdown

Nextcloud Test Statistics (macos-latest)

16 tests  ±0   16 ✅ ±0   2m 4s ⏱️ -1s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 0262030. ± Comparison against base commit 19fe27c.

@jochenwezel
jochenwezel merged commit 97c897f into main Oct 11, 2026
35 checks passed
@jochenwezel

Copy link
Copy Markdown
Member Author

PR #98 is merged at 97c897f172149a585776466fe85fa13f5a9de87f. The final main source tree was compared byte-for-byte with the verified PR head 02620300437903a6971f29ed41f0b5bbcfebab0d; there is no source difference.

The user's release authorization is recorded in the coordination chat. The shared-server exclusive window remains reserved until completion. The release branch is retained until all release verification succeeds; repository automatic branch deletion was temporarily disabled and its original setting was saved for restoration.

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.

Expose complete DmsBrowser failures to host diagnostics

1 participant