Skip to content

feat(drive): add quick mode to status diff#870

Open
fangshuyu-768 wants to merge 1 commit into
feat/drive-push-smart-if-existsfrom
feat/drive-status-quick
Open

feat(drive): add quick mode to status diff#870
fangshuyu-768 wants to merge 1 commit into
feat/drive-push-smart-if-existsfrom
feat/drive-status-quick

Conversation

@fangshuyu-768
Copy link
Copy Markdown
Collaborator

@fangshuyu-768 fangshuyu-768 commented May 13, 2026

Summary

Add a follow-up quick mode to drive +status on top of the modified-time smart sync PR. This keeps the default exact SHA-256 diff intact while adding a best-effort metadata-only path that avoids downloading remote bytes for files present on both sides.

Changes

  • add the --quick flag to drive +status and return detection=exact|quick in the output envelope
  • compare local mtime against Drive modified_time in quick mode, while keeping exact SHA-256 hashing as the default path
  • update shortcut docs and skill guidance to explain the best-effort semantics and performance trade-off
  • add unit coverage plus dry-run and live E2E coverage for the new quick mode
  • note the only outward-compatible surface change: successful drive +status output now includes data.detection (exact or quick), so strict JSON schema consumers should tolerate the extra field

Test Plan

  • Unit tests pass
  • Manual local verification confirms the command works as expected
  • go test ./shortcuts/drive -run TestDriveStatus
  • go test ./tests/cli_e2e/drive -run TestDrive_StatusDryRun|TestDrive_StatusWorkflow
  • make unit-test
  • go vet ./...
  • gofmt -l .
  • go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.1.6 run --new-from-rev=origin/main

Related Issues

Add a best-effort --quick path to drive +status so repeated checks can compare local mtimes with Drive modified_time without downloading remote bytes. This keeps the default exact hash mode intact while exposing detection=exact|quick in output and docs.
@github-actions github-actions Bot added domain/ccm PR touches the ccm domain size/L Large or sensitive change across domains or core paths labels May 13, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 35c1c0bf-25f9-4122-b54d-99355d954894

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/drive-status-quick

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain/ccm PR touches the ccm domain size/L Large or sensitive change across domains or core paths

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant