feat(core): import progress & perf (#15197)

#### PR Dependency Tree


* **PR #15197** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added a new import pipeline with “plan then commit” batch handling for
Markdown, Notion HTML, Obsidian, and Bear backups.
* Enabled native import sessions with progress, cancellation, and
batch-by-batch committing (including assets, folders, icons, and tags).
  * Added web preflight limits for ZIP and multi-file imports.
* **Bug Fixes**
* Improved import error/warning reporting and continued processing when
some items fail.
* Strengthened snapshot-based file/directory picking to preserve paths.
* **Chores**
  * Updated project packaging/configuration for the new import workflow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-07-06 01:29:24 +08:00
committed by GitHub
parent 477015f064
commit 8d72e4dc29
106 changed files with 3329 additions and 11690 deletions
Generated
+88 -16
View File
@@ -64,23 +64,46 @@ dependencies = [
name = "affine_common"
version = "0.1.0"
dependencies = [
"assert-json-diff",
"chrono",
"criterion",
"hex",
"nanoid",
"napi",
"pulldown-cmark",
"rand 0.9.4",
"rayon",
"serde",
"serde_json",
"sha3",
"tempfile",
]
[[package]]
name = "affine_doc_loader"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683b3f18f85e1c8528321903d602ca32a5603f4539ca1412c765f0dbaf6aa63f"
dependencies = [
"nanoid",
"pulldown-cmark",
"serde",
"serde_json",
"thiserror 2.0.18",
"y-octo",
]
[[package]]
name = "affine_importer"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1119144030a9ad25dee926d333dcb20433ab72f57425cbd159aa57eb9ee35119"
dependencies = [
"affine_doc_loader",
"chrono",
"nanoid",
"serde",
"serde_json",
"sha2 0.11.0",
"thiserror 2.0.18",
"zip",
]
[[package]]
name = "affine_media_capture"
version = "0.0.0"
@@ -138,6 +161,7 @@ name = "affine_native"
version = "0.0.0"
dependencies = [
"affine_common",
"affine_importer",
"affine_media_capture",
"affine_nbstore",
"affine_sqlite_v1",
@@ -156,6 +180,7 @@ dependencies = [
"typst-as-lib",
"typst-svg",
"uuid",
"zip",
]
[[package]]
@@ -163,6 +188,7 @@ name = "affine_nbstore"
version = "0.0.0"
dependencies = [
"affine_common",
"affine_doc_loader",
"affine_schema",
"anyhow",
"bincode 2.0.1",
@@ -196,6 +222,7 @@ version = "1.0.0"
dependencies = [
"aes-gcm",
"affine_common",
"affine_doc_loader",
"anyhow",
"assetpack-core",
"assetpack-transform-precomp2",
@@ -483,16 +510,6 @@ dependencies = [
"winnow 0.7.15",
]
[[package]]
name = "assert-json-diff"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "assetpack-core"
version = "0.1.0"
@@ -847,6 +864,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
dependencies = [
"hybrid-array",
"zeroize",
]
[[package]]
@@ -1357,6 +1375,12 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
[[package]]
name = "constant_time_eq"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
[[package]]
name = "convert_case"
version = "0.11.0"
@@ -1850,6 +1874,12 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "deflate64"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2"
[[package]]
name = "der"
version = "0.7.10"
@@ -1914,6 +1944,7 @@ dependencies = [
"const-oid 0.10.2",
"crypto-common 0.2.2",
"ctutils",
"zeroize",
]
[[package]]
@@ -5080,6 +5111,16 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
[[package]]
name = "pbkdf2"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629"
dependencies = [
"digest 0.11.3",
"hmac 0.13.0",
]
[[package]]
name = "pdf_oxide"
version = "0.3.65"
@@ -5456,6 +5497,12 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "ppmd-rust"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efca4c95a19a79d1c98f791f10aebd5c1363b473244630bb7dbde1dc98455a24"
[[package]]
name = "ppv-lite86"
version = "0.2.21"
@@ -6551,6 +6598,17 @@ dependencies = [
"digest 0.10.7",
]
[[package]]
name = "sha1"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"digest 0.11.3",
]
[[package]]
name = "sha2"
version = "0.10.9"
@@ -6871,7 +6929,7 @@ dependencies = [
"rand 0.8.6",
"rsa",
"serde",
"sha1",
"sha1 0.10.6",
"sha2 0.10.9",
"smallvec",
"sqlx-core",
@@ -7537,6 +7595,7 @@ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
dependencies = [
"deranged",
"itoa",
"js-sys",
"num-conv",
"powerfmt",
"serde_core",
@@ -9876,12 +9935,25 @@ version = "8.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b"
dependencies = [
"aes 0.9.1",
"bzip2",
"constant_time_eq",
"crc32fast",
"deflate64",
"flate2",
"getrandom 0.4.2",
"hmac 0.13.0",
"indexmap",
"lzma-rust2",
"memchr",
"pbkdf2",
"ppmd-rust",
"sha1 0.11.0",
"time",
"typed-path",
"zeroize",
"zopfli",
"zstd",
]
[[package]]