Internal beta hardening: pnpm cleanup and recovery semantics

- update internal beta hardening docs and Smart Clean execution coverage for the 2026-03-16 hardening slice

- add pnpm store detection, execution fixtures, and regression coverage across adapters, infrastructure, and app model tests

- distinguish file-backed vs Atlas-only recovery messaging in History and restore summaries

- preserve completed Smart Clean recovery entries when later targets fail, and report failed findings explicitly instead of losing side effects
This commit is contained in:
zhukang
2026-03-12 23:19:18 +08:00
parent 534329b72f
commit 11405a4b55
13 changed files with 963 additions and 45 deletions

View File

@@ -75,7 +75,7 @@ final class AtlasAppModelTests: XCTestCase {
XCTAssertTrue(model.latestScanSummary.contains("2 reclaimable item"))
}
func testExecuteCurrentPlanMovesFindingsIntoRecovery() async throws {
func testExecuteCurrentPlanOnlyRecordsRecoveryForRealSideEffects() async throws {
let repository = makeRepository()
let worker = AtlasScaffoldWorkerService(
repository: repository,
@@ -88,7 +88,7 @@ final class AtlasAppModelTests: XCTestCase {
await model.runSmartCleanScan()
await model.executeCurrentPlan()
XCTAssertGreaterThan(model.snapshot.recoveryItems.count, initialRecoveryCount)
XCTAssertEqual(model.snapshot.recoveryItems.count, initialRecoveryCount)
XCTAssertEqual(model.snapshot.taskRuns.first?.kind, .executePlan)
XCTAssertGreaterThan(model.latestScanProgress, 0)
}