Extract cloud object persistence logic to other crates.#11179
Conversation
331d1ff to
2d10540
Compare
4a71dee to
06b3f2e
Compare
d39d8e7 to
e22e7af
Compare
a241a1f to
705fc1d
Compare
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR extracts cloud-object SQLite persistence into a new cloud_object_persistence crate and moves model-specific persistence adapters into cloud_object_models, while updating the app and server-client crates to use the new boundaries.
Concerns
- No blocking correctness, security, or spec-alignment concerns found in the reviewed diff.
- No approved spec context was available for comparison.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
e22e7af to
dd218ee
Compare
b9503ba to
7744b13
Compare
dd218ee to
b82656e
Compare
7744b13 to
9185c98
Compare
b82656e to
01cd413
Compare
01cd413 to
2ac0201
Compare
e7f14b5 to
8141bbe
Compare
2ac0201 to
4898933
Compare
4898933 to
cdc014b
Compare
8141bbe to
26a2943
Compare
cdc014b to
28337ed
Compare
26a2943 to
35a57fd
Compare
28337ed to
c0068a0
Compare
35a57fd to
2a5ea8f
Compare
c0068a0 to
3a39635
Compare
2a5ea8f to
a6d9b93
Compare
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR extracts shared cloud-object SQLite persistence into cloud_object_persistence and moves model-specific persistence adapters into cloud_object_models, with no approved spec context to compare against. I did not find correctness, spec-alignment, or security issues in the changed diff.
Concerns
- Non-blocking cleanup: removing the
app/src/persistence/cloud_objectsmodule appears to leave the old source/test files orphaned in the app crate; consider deleting them or fully moving the remaining coverage alongside the extracted helpers.
Verdict
Found: 0 critical, 0 important, 1 suggestions
Approve with nits
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| if #[cfg(feature = "local_fs")] { | ||
| pub mod agent; | ||
| mod block_list; | ||
| mod cloud_objects; |
There was a problem hiding this comment.
💡 [SUGGESTION] Removing this module appears to leave app/src/persistence/cloud_objects.rs and cloud_object_tests.rs orphaned; delete them or move their remaining coverage with the extracted helpers.
There was a problem hiding this comment.
+1, see that cloud_objects.rs is removed but I think the tests are still here?
There was a problem hiding this comment.
ah, yeah, fixed this but forgot to push the commit, oops
| if #[cfg(feature = "local_fs")] { | ||
| pub mod agent; | ||
| mod block_list; | ||
| mod cloud_objects; |
There was a problem hiding this comment.
+1, see that cloud_objects.rs is removed but I think the tests are still here?
| } | ||
|
|
||
| #[cfg(test)] | ||
| mod tests { |
There was a problem hiding this comment.
nit: these should go in a separate tests file
There was a problem hiding this comment.
good catch; done. will get an agent to find and fix these across the codebase, then add a CI check to prevent new ones.
0cdd16a to
3f92c61
Compare

Description
Pulls cloud-object SQLite persistence out of the
warpapp crate so Diesel-heavy persistence code can live in smaller, purpose-specific crates while preserving a path toward future model verticalization.cloud_object_persistencefor shared cloud-object persistence infrastructure, including metadata/permissions helpers, refresh scheduling, guest/link-sharing encoding, callback-based upsert/delete primitives, and generic string object table access.cloud_object_modelsmodules so model-specific persistence can move with those models later.warp_server_client::persistenceas a compatibility home and updates imports to usecloud_object_persistencedirectly.app/src/persistence/sqlite.rsfocused on app persistence orchestration and app-local object action conversion.Testing
cargo fmt --manifest-path /Users/david/src/warp/Cargo.toml --allcargo check --manifest-path /Users/david/src/warp/Cargo.toml -p cloud_object_persistencecargo check --manifest-path /Users/david/src/warp/Cargo.toml -p cloud_object_models --testscargo check --manifest-path /Users/david/src/warp/Cargo.toml -p warp --testscargo nextest run --manifest-path /Users/david/src/warp/Cargo.toml -p cloud_object_persistencecargo check --manifest-path /Users/david/src/warp/Cargo.toml -p cloud_objects -p cloud_object_models -p cloud_object_persistencecargo check -p warpNot manually tested; this is an internal persistence refactor with no expected user-visible behavior changes.
Agent Mode
CHANGELOG-NONE
Co-Authored-By: Oz oz-agent@warp.dev