mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-09-08 19:02:00 +02:00
Yaak now remembers, per item of a linked import source, whether the user wants it. A mapping row that still points at a model means wanted, so re-imports merge into it; a row with no model behind it means not wanted, so re-imports leave it alone. Wanted-ness is structural rather than a flag: deleting the model locally, or turning the item down in the preview, is what makes it not wanted. - import_source_resources drops `snapshot` for a nullable `content_hash` and lets `model_id` be NULL. The migration keeps every beta row's key to model mapping and starts hashes empty; until a hash is recorded, a difference can't be attributed to either side, so the item is offered once as a conflict that keeps local changes. - comparable() ignores sortPriority. Importers number it from source order, so inserting one operation used to plan a fake update for everything after it. The trade is that pure reorders don't propagate. - Keys the user turned down come back as unchecked "not imported" rows instead of being re-offered as new resources or resurrected. Checking one imports it under the same source key and pulls in the folders it needs. - An imported resource the source moves into a folder that isn't imported is offered as a deletion, with a tooltip pointing at the folder. - Plan-time source resolution binds by source-key overlap instead of by path, so a renamed or moved file merges into what it created and heals the stored origin. Several sources sharing keys never guess-merge: the plan says so and imports everything as new. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
29 lines
816 B
TOML
29 lines
816 B
TOML
[package]
|
|
name = "yaak"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
async-trait = "0.1"
|
|
base64 = "0.22.1" # For carrying body chunks over a text-only plugin transport
|
|
log = { workspace = true }
|
|
md5 = "0.8.0"
|
|
sha2 = { workspace = true }
|
|
chrono = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tokio = { workspace = true, features = ["sync", "rt"] }
|
|
yaak-http = { workspace = true }
|
|
yaak-core = { workspace = true }
|
|
yaak-crypto = { workspace = true }
|
|
yaak-models = { workspace = true }
|
|
yaak-plugins = { workspace = true }
|
|
yaak-templates = { workspace = true }
|
|
yaak-tls = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
rusqlite = { version = "0.38", features = ["bundled"] }
|
|
tempfile = "3"
|
|
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
|