fix: enforce recovery retention and fail-closed restore semantics
- prune expired recovery items on load/save and reject expired restores at worker boundary - add restoreExpired and restoreConflict protocol/application error mapping - disable expired restore actions in History and reload persisted state after restore failures - add recovery expiry/conflict coverage plus sync protocol, architecture, state-machine, and recovery contract docs - wire AtlasAppTests into the shared Xcode scheme and add app-layer regression coverage for expired restore reload behavior Refs: ATL-221 ATL-222 ATL-223 ATL-224 ATL-225, vibe-kanban SID-9
This commit is contained in:
@@ -92,6 +92,8 @@
|
||||
"application.error.workerRejected" = "Worker rejected request (%@): %@";
|
||||
"application.error.executionUnavailable" = "Atlas could not run this action with the real worker path: %@";
|
||||
"application.error.helperUnavailable" = "Atlas could not complete this action because the privileged helper is unavailable: %@";
|
||||
"application.error.restoreExpired" = "Atlas can no longer restore this item because its recovery retention window has expired: %@";
|
||||
"application.error.restoreConflict" = "Atlas could not restore this item because its original destination already exists: %@";
|
||||
"xpc.error.encodingFailed" = "Could not encode the background worker request: %@";
|
||||
"xpc.error.decodingFailed" = "Could not decode the background worker response: %@";
|
||||
"xpc.error.invalidResponse" = "The background worker returned an invalid response. Fully quit and reopen Atlas; if it still fails, reinstall the current build.";
|
||||
|
||||
@@ -92,6 +92,8 @@
|
||||
"application.error.workerRejected" = "后台服务拒绝了请求(%@):%@";
|
||||
"application.error.executionUnavailable" = "Atlas 当前无法通过真实工作链路执行这项操作:%@";
|
||||
"application.error.helperUnavailable" = "Atlas 当前无法完成这项操作,因为特权辅助组件不可用:%@";
|
||||
"application.error.restoreExpired" = "这个项目已经超出恢复保留窗口,Atlas 不能再恢复它:%@";
|
||||
"application.error.restoreConflict" = "Atlas 无法恢复这个项目,因为它的原始目标位置已经存在内容:%@";
|
||||
"xpc.error.encodingFailed" = "无法编码后台请求:%@";
|
||||
"xpc.error.decodingFailed" = "无法解析后台响应:%@";
|
||||
"xpc.error.invalidResponse" = "后台工作组件返回了无效响应。请完全退出并重新打开 Atlas;若仍失败,请重新安装当前版本。";
|
||||
|
||||
Reference in New Issue
Block a user