Harden WebDAV opaque source contract - #253
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughImplements opaque browser-visible WebDAV source IDs by backfilling ChangesWebDAV Opaque Source ID
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
PR governance metadata gate is not ready for
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/src/components/DataLayout.tsx`:
- Around line 111-114: The click handler currently checks only targetSourceId
and sets setWritebackStatus('no_source'), which hides a failed
/api/webdav/accounts fetch; update the guard to first check webdavAccountStatus
and if it's not 'ready' keep the writeback in the fetch-error state (e.g.,
setWritebackStatus('fetch_error') or return early) instead of setting
'no_source'; do this in the handler referencing targetSourceId and
setWritebackStatus, and also update the CTA disabled logic to include
webdavAccountStatus !== 'ready' (or specifically webdavAccountStatus ===
'errored') so the action stays disabled while accounts are errored — apply the
same change in the other occurrences mentioned (the blocks around the symbols at
the other locations).
- Around line 91-99: Replace the raw console.error(error) call in the WebDAV
fetch promise catch with a static non-secret label and a sanitized error
summary: do not log the whole error object from the fetch, instead extract only
non-sensitive fields (e.g., HTTP status or a short, fixed-length message) and
pass those values with a constant label like "WebDAV fetch error" to
console.error; update the catch block that currently calls setWebdavAccounts([])
and setWebdavAccountStatus('error') (the promise chain that calls
setWebdavAccounts and setWebdavAccountStatus) to perform this sanitized logging
so no signed-session or credential-derived data is emitted.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 402ff4db-656a-441b-a0f2-c5f725879e36
📒 Files selected for processing (8)
AGENTS.mdREADME.mdbackend/scripts/bootstrap_db.pybackend/tests/test_bootstrap_db.pybackend/tests/test_webdav_api.pydocs/operations/source-of-truth-and-writeback-sovereignty.mddocs/plans/2026-05-27-webdav-opaque-source-id.mdfrontend/src/components/DataLayout.tsx
|
Temporary Strix required-context handling for head 018ff53. Evidence captured on 2026-05-28:
Per the repository merge-gate policy, I am temporarily removing only the required strix context, merging normally without admin bypass, and restoring strix immediately after merge. |
|
Post-merge restoration complete.
|
Summary
Verification
Screenshot evidence inspected
Notes
Summary by CodeRabbit
New Features
Tests
Documentation