Skip to content

fix(platform): isolate Microsoft import source paths - #4398

Merged
yannickmonney merged 1 commit into
mainfrom
fix/sharepoint-import-source-path
Oct 9, 2026
Merged

yannickmonney merged 1 commit into
mainfrom
fix/sharepoint-import-source-path

Conversation

@yannickmonney

@yannickmonney yannickmonney commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Switching Microsoft 365 sources now clears the previous folder navigation, search and selection. SharePoint imports assemble selection and destination paths from the active library breadcrumb, so a library-root file imported after visiting OneDrive lands directly in the chosen hub folder. Normal OneDrive and SharePoint subfolder imports keep their own structure.

Validation:

  • 125 targeted component/consumer tests passed with /opt/node/bin/node and one worker, including component-to-native destination assertions. Five new regressions fail on unchanged main; the OneDrive subfolder control passes.
  • Scoped oxlint, oxfmt, TypeScript (two changed files, zero diagnostics), manual-register guard and diff whitespace checks passed.
  • Chromium reproduced the source-switch flow and captured Report.txt with the SharePoint identity and hub-target destination. Synthetic provider/storage/DB dependencies only; no real Microsoft or persistence writes.
  • Final visual review: baseline and final both 100/100.
  • Automation coverage added after the existing “SharePoint offers only one-time import” row. Inspected all 73 open PR diffs; merge-tree comparisons against 49 register-changing heads introduce no new conflicts compared with main.

No UI copy changed. CI status will be reported separately; no jobs will be rerun. Independent review remains required.

Closes #3922

Current-main rebase

Replayed the previously accepted source e4619b38f80e200b428fa4700c22e439ae0ce438 onto main d1373d84cd56972501403f62145ec52e6f65d44a, including the merged shared CI repair in #4625. The accepted feature payload and all current-main changes are preserved in one atomic commit. Configured commit and conflict checks pass; earlier behavioral proof remains recorded above. All seven native required checks and full merge-group validation remain required for this new source.

Maintenance replay: preserves the accepted feature payload on main fd277c4, including merged #4649, #4650 and #4655. Retains the exact independently accepted one-line shared CLI inventory repair from #4654 (252f0df), pending native merge on main. The #4282 task-register union, where applicable, retains the accepted feature row and current-main rows. Existing behavioral evidence remains recorded above; no fresh full-feature/full-workspace or hosted-green claim. All seven native required contexts and full merge-group validation remain mandatory.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

TALE-338 is implemented in #4398 (Closes #3922).

Commit: 7bf3b3ffce79523d7ead3fd58969fd2f1304dc6d, based on current main f458cb9039340adaf67f0b97c5b560f7d9f9c47e.

Microsoft 365 source changes now reset navigation, search and selection. Both selected-item paths and import paths use the active provider's breadcrumb. SharePoint library-root imports no longer inherit OneDrive folders; normal subfolders in both sources preserve their structure. No UI copy changed.

Verification:

  • 125 targeted tests passed across the dialog, shared file table, listing-failure, lapsed-session and import-outcome consumers; Node /opt/node/bin/node, one worker, existing dependencies only.
  • Six new cases include the actual native import function with inert dependencies. Against unchanged main, five fail and the OneDrive subfolder control passes.
  • Scoped oxlint, oxfmt, TypeScript diagnostics for the two changed files (zero), manual-register guard, conflict-marker guard, commitlint and diff whitespace checks passed. The manual register is formatter-excluded by the repository configuration.
  • Chromium captured relativePath: "Report.txt", SharePoint site/drive identity and destinationFolderId: "hub-target" after browsing PersonalBudget in OneDrive. The component-to-native test confirms no child-folder lookup and a document creation request in hub-target. No real Microsoft, storage or database writes were performed.
  • Visual analyzer baseline and final both scored 100, with zero defects. The fixture uses the real dialog/shared controls with synthetic listings and a translation stub. Settling between distinct source-navigation actions avoids grouping intended navigation jumps as animation jank.
  • Automation coverage row inserted immediately after “SharePoint offers only one-time import”. All 73 open PR diffs inspected. Merge-tree comparison with 49 register-changing heads found no new conflicts versus unchanged main; older PRs retain their existing conflicts.

CI is pending: all executable checks are QUEUED, none is running; source-only jobs are SKIPPED. The checks watch was started; no reruns were requested. Local SAST skipped because the pinned Opengrep binary is not cached; the PR's Opengrep check remains queued. Independent review and CI completion remain open. No acceptance or merge was performed.

The workspace service refused workspace_status with not_granted; task-board reporting is unavailable. The requested report for TALE-338 and TALE-359 (3729d02a-eb44-42b2-a68e-1bec2cebbcd6) is posted as a PR comment fallback.

Artifacts in this delivery box: changes.patch, passing test logs (ui-final.log, consumer.log), baseline regression log, scoped check logs and runner configs, sharepoint-root.png, browser-payload.json, chromium.log, visual reports, open-PR/merge-tree audit records, and PR/CI status records. The source checkout is under tale/.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Independent exact-head review — TALE-925 / TALE-338 / TALE-359

PR: #4398
Reviewed head: 7bf3b3f
Reviewer: independent Codex #4 review run; not the C6 author run d19e471f.

Verdict: PASS for issue #3922; no blocking code findings. CI remains PENDING, so this is not a merge-readiness verdict.

The shared activeFolderPath derives selection IDs and import relative paths from spFolderPath for SharePoint and folderPath.slice(1) for OneDrive. Library-root SharePoint imports cannot inherit a previously visited OneDrive folder. Native-pipeline assertions prove Report.txt reaches hub-target without a child-folder request, while each provider's active subfolder requests the corresponding child chain. Recursive file collection uses the current provider's lister and adds selected folder/file names to that prefix.

Provider switches deliberately clear both navigation histories, search and selection; returning to a provider starts at its root. This does not retain the last visited folder or selections across tabs. That behavior is explicitly described in the PR and register, and the provider/site/library reset regressions exercise it. It preserves each source's folder structure when importing from its active navigation state. Selection does not cross provider/site/library boundaries. No UI strings or layouts changed.

Coverage: the main regression selects a OneDrive subfolder file before switching to SharePoint, then checks the exact SharePoint-only payload and native destination. Controls cover OneDrive and SharePoint subfolders, provider round-trip, site/library resets, OneDrive sync and SharePoint one-time restrictions. SharePoint listing mocks do not discriminate folder IDs, so the subfolder tests prove breadcrumb-to-native path assembly rather than live Graph navigation. Real-provider persistence and browser layout were not independently exercised in this review.

TALE-337 overlap: buildItemPath is shared with select-all, but handleSelectAllChange/deselectAll are unchanged. deselectAll still empties the whole Map under a filtered view; that separate filtered-selection bug remains for TALE-337. Its fix should preserve selections hidden by filtering while keeping this PR's source-boundary resets and provider-specific paths.

Local verification (existing dependencies, /opt/node/bin/node):

  • Exact dialog suite, one worker: 21/21 pass.
  • Consumer suites (listing failures, lapsed sessions, OneDrive file table), one worker: 39/39 pass. Initial run was blocked by Vite denying the symlinked Inter font asset; review-only server.fs.allow config resolves it, with no product config changes.
  • Scoped type-aware oxlint: 2 files, 226 rules, zero diagnostics, exit 0.
  • Scoped TypeScript semantic/syntactic diagnostics using the repository compiler options: 2 changed files, zero diagnostics. No whole-workspace type check.
  • oxfmt: both changed TypeScript files pass. Markdown is excluded by repository formatter policy.
  • git diff --check: pass.

CI snapshot: exact head unchanged; 21 queued jobs and 7 completed/skipped jobs. GitHub Actions incident 3q1yb5m7ltvb remains the supplied CI constraint. No CI rerun or cancellation, push, merge, approval review, or task-status mutation was performed.

Task delivery: workspace_status returned unavailable/not_granted. The authorized PR comment is the fallback verdict for TALE-338 and TALE-359 (3729d02a-eb44-42b2-a68e-1bec2cebbcd6); direct task comments could not be posted.

Register anchor: Merge-tree: 73 other open heads, 49 register-changing heads; 31 conflicted merged registers inspected. New row inside conflict or unavailable proof: []. New merge failures versus origin/main: [].

@yannickmonney
yannickmonney force-pushed the fix/sharepoint-import-source-path branch from 7bf3b3f to e4619b3 Compare October 9, 2026 06:35
@yannickmonney
yannickmonney force-pushed the fix/sharepoint-import-source-path branch from e4619b3 to 02d29e5 Compare October 9, 2026 14:09
@yannickmonney
yannickmonney force-pushed the fix/sharepoint-import-source-path branch from 02d29e5 to 180c854 Compare October 9, 2026 15:22
@yannickmonney
yannickmonney added this pull request to the merge queue Oct 9, 2026
@yannickmonney
yannickmonney added this pull request to the merge queue Oct 9, 2026
@yannickmonney
yannickmonney merged commit 1fca1dc into main Oct 9, 2026
64 checks passed
@yannickmonney
yannickmonney deleted the fix/sharepoint-import-source-path branch October 9, 2026 22:18
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.

Bug: SharePoint imports inherit a previously visited OneDrive folder

1 participant