feat(rust): port state.py, globalstore.py and manifest appending

- src/state.rs: per-run state.json (status/attempts/error/files/updated),
  corrupt-file -> *.json.bak restart, atomic tmp+rename save, mark() parity
  (attempts increments, None fields never clear existing values)
- src/globalstore.rs: cross-run urls.json at XDG_DATA_HOME or
  ~/.local/share/dlphelper/urls.json, disabled-store no-op
- src/manifest.rs: append_manifest as compact JSONL, UTF-8
- unknown/extra JSON fields are preserved on round-trip so both versions can
  read each other's artifacts (schema contract per AGENTS.md)
- 14 unit tests
This commit is contained in:
2026-10-09 13:27:59 +02:00
parent 271fb3bf68
commit 59a89fa06a
8 changed files with 1381 additions and 4 deletions
+7 -1
View File
@@ -1,3 +1,9 @@
mod globalstore;
mod manifest;
mod state;
mod util;
fn main() {
println!("dlphelper {version} — Rust rewrite scaffold; modules are ported step by step, see version-rust/README.md", version = env!("CARGO_PKG_VERSION"));
env_logger::init();
println!("dlphelper {}", env!("CARGO_PKG_VERSION"));
}