Realign code with the 2026-07-31 rulings
The trash sorts by modified descending — the arrival rank mint retires (Ranks.isOrderedForTrash one comparator, loader + merged order agree; the legacy deleted: migration stamps modified from the tombstone timestamp where parseable; delete undo steps validate existence-only; agent guide v8). Trash selection goes kind-blind — ranges, marquee, Select All, and the successor walk sweep both kinds; the guard moves to the exits (mixed-payload drop refusal, copy/cut validation). The copy stamping preflight widens back to comment depth (load-scoped posture — the board always loads, the gesture refuses whole). Fixes a latent no-op: trashed-lane drag restore never fired (DragSession.beginLanes hard-coded the board container). 2403 tests in 413 suites green. Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
This commit is contained in:
@@ -158,7 +158,7 @@ struct WriteFidelityMinimalTouchTests {
|
||||
// included, which is the point of this harness.
|
||||
try step("delete", targeting: [], departed: ["\(Ident.lane2)/\(Ident.card4)"]) {
|
||||
try BoardWriter.deleteCardToTrash(
|
||||
at: fixture.url("\(Ident.lane2)/\(Ident.card4)"), inBoard: fixture.root, order: 1024
|
||||
at: fixture.url("\(Ident.lane2)/\(Ident.card4)"), inBoard: fixture.root
|
||||
)
|
||||
}
|
||||
// The restore is an ordinary move out — "there is no restore-specific machinery and no Put
|
||||
@@ -189,7 +189,7 @@ struct WriteFidelityMinimalTouchTests {
|
||||
departed: [Ident.lane2, "\(Ident.lane2)/\(Ident.card3)", "\(Ident.lane2)/\(Ident.card4)"]
|
||||
) {
|
||||
try BoardWriter.deleteLaneToTrash(
|
||||
at: fixture.url(Ident.lane2), inBoard: fixture.root, order: 512
|
||||
at: fixture.url(Ident.lane2), inBoard: fixture.root
|
||||
)
|
||||
}
|
||||
try step("restore lane", targeting: []) {
|
||||
@@ -370,7 +370,7 @@ struct WriteFidelityCompositeTests {
|
||||
// resettled 2026-07-28), so its unknown keys, its comment and its body must ride along
|
||||
// untouched through both legs.
|
||||
try BoardWriter.deleteCardToTrash(
|
||||
at: lane1Folder.appendingPathComponent(card2.rawValue), inBoard: root, order: 1024
|
||||
at: lane1Folder.appendingPathComponent(card2.rawValue), inBoard: root
|
||||
)
|
||||
_ = try BoardWriter.moveItem(
|
||||
at: BoardWriter.trashFolder(inBoard: root).appendingPathComponent(card2.rawValue),
|
||||
@@ -548,7 +548,7 @@ struct WriteFidelityStampingTests {
|
||||
defer { fixture.tearDown() }
|
||||
|
||||
try BoardWriter.deleteCardToTrash(
|
||||
at: fixture.url("\(Ident.lane1)/\(Ident.card1)"), inBoard: fixture.root, order: 1024
|
||||
at: fixture.url("\(Ident.lane1)/\(Ident.card1)"), inBoard: fixture.root
|
||||
)
|
||||
let trashed = try stamps(fixture, ".trash/\(Ident.card1)")
|
||||
#expect(trashed.modified != Self.priorModified, "into the trash is a container change")
|
||||
@@ -578,7 +578,7 @@ struct WriteFidelityStampingTests {
|
||||
defer { fixture.tearDown() }
|
||||
|
||||
try BoardWriter.deleteLaneToTrash(
|
||||
at: fixture.url(Ident.lane1), inBoard: fixture.root, order: 1024
|
||||
at: fixture.url(Ident.lane1), inBoard: fixture.root
|
||||
)
|
||||
|
||||
let lane = try stamps(fixture, ".trash/\(Ident.lane1)")
|
||||
|
||||
Reference in New Issue
Block a user