Files
time-mocker/crates/time-mocker-ui/Cargo.toml
T
tiennm99 ffab962360 fix(ui): detect PID reuse, verify delta channel, correct rule and date handling
Hold one process handle across every identity check and injection so the PID
cannot be recycled mid-inject, and prune injected entries whose start time no
longer matches. Read the delta back before reporting a successful injection
so a dead channel is no longer a silent no-op mock. Match rules
case-insensitively and skip the path arm when the path is empty, surface
invalid patterns instead of swallowing them, and stop retrying a failed
auto-inject target until its PID is reused. Restore the last fake time on
startup, reset "Now" to exactly zero delta, clamp the whole date to range so
a boundary shift no longer jumps a year, and default missing persisted fields
so one bad field cannot wipe all rules. Show a message box on release startup
failure, and cache compiled rules between scans.
2026-09-21 16:13:27 +07:00

49 lines
1.3 KiB
TOML

[package]
name = "time-mocker-ui"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Controller UI for time-mocker — picks fake time and injects hook DLL into target processes"
[[bin]]
name = "time_mocker_ui"
path = "src/main.rs"
[dependencies]
time-mocker-core = { path = "../time-mocker-core" }
eframe = { version = "0.29", default-features = false, features = [
"default_fonts",
"glow",
"persistence",
] }
egui = "0.29"
dll-syringe = "0.17"
sysinfo = "0.32"
globset = "0.4"
regex = "1.11"
serde = { version = "1.0", features = ["derive"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
anyhow = "1.0"
windows-sys = { workspace = true, features = [
"Win32_Foundation",
"Win32_System_Memory",
"Win32_System_SystemInformation",
"Win32_System_Threading",
"Win32_Security",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
] }
[build-dependencies]
embed-manifest = "1.4"
[dev-dependencies]
tempfile = "3.8"
# Test-only: exercises `#[serde(default)]` on `Persistent`/`Rule` against the
# exact format `eframe`'s persistence feature actually uses (RON), rather
# than a stand-in format that wouldn't catch a real deserialization gap.
ron = "0.8"