Skip to content

feat: export redacted capacity evidence for Naruon - #86

Closed
seonghobae wants to merge 3 commits into
feat/capacity-account-scopefrom
feat/naruon-cloud-capacity-export
Closed

feat: export redacted capacity evidence for Naruon#86
seonghobae wants to merge 3 commits into
feat/capacity-account-scopefrom
feat/naruon-cloud-capacity-export

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

  • add a separate disksage.cloud-capacity-assessment v1 envelope for plan-level quota evidence
  • validate provider-specific capacity schema v3 shapes and fail closed on provider/account-scope switching
  • recompute Rust capacity arithmetic and bind requested/largest bytes to the exact plan before export
  • add --export-naruon-capacity, requiring a fresh single-destination --verify-capacity run
  • redact cloud-root paths, labels, provider account identifiers, drive IDs, permission IDs, and source paths

Evidence

  • cargo test --manifest-path src-tauri/Cargo.toml naruon_capacity::tests (4 passed)
  • cargo test --manifest-path src-tauri/Cargo.toml --features cloud-cli --bin disksage-cloud-plan (16 passed)
  • cargo check --locked --manifest-path src-tauri/Cargo.toml --all-targets --features cloud-cli
  • release build with --locked --release --features cloud-cli --bin disksage-cloud-plan
  • live read-only iCloud export: provider-native status, personal scope, capacity available; stdout accepted by Naruon's strict validator

Safety

Read-only provider metadata and dry-run planning only. This PR does not copy, hydrate, evict, delete, or approve any user file. A fit result is not copy or eviction authorization.

Stack

Based on #85.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 184e8f33-cb25-4f4c-9e05-90aec75f0dcd

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

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

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head safety fix pushed at be57409a9cad8bb867c25a5715dec177c6e0bb70.

A live read-only iCloud revalidation exposed a reproducible active-use false positive: a gtimeout supervisor includes the target path in its argv, so the ps-command fallback treated the planner's parent as an unrelated file user. The detector now reads pid,ppid,command, excludes the planner's complete ancestor lineage, and still reports unrelated processes that independently reference the target.

Validation:

  • process parser regression tests: 2 passed
  • full cloud_local_eviction::tests: 12 passed
  • rustfmt --check for the changed file and git diff --check: passed
  • real gtimeout -> disksage-icloud-local-eviction probe: active=false, complete evidence, prior fingerprint stable
  • redacted 13-item live batch: 9 uploaded/idle/stable eligible items, 4 unavailable, 9,619,988,480 allocated bytes, zero mutations
  • temporary Rust target cleaned: 6,262 files, 2.9 GiB

No cloud object, local cache, or user file was mutated.

@seonghobae seonghobae closed this Aug 3, 2026
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.

1 participant