Realign code with the 2026-07-29 findings-resolution rulings
Nine rulings land as code. Reorders don't stamp — one container-change predicate (WriteOperation.rewritesOrderOnly): within-container reorders and the renumber rescale rewrite only order, while cross-lane, cross-board, and trash moves stamp modified and clear modified-by; no trash special case exists, and the m8 undo inverses conform through the same seam. Copies are transactions: the root-strict/nested-lenient split retires for a whole-subtree stampability preflight that refuses loudly naming the offender, and every item-level copy severs remote/remote-state at every level (whole-board forks carry them verbatim). Paste refuses, never degrades: the embedded-index.md materialization and its loss row retire; a missing staged snapshot produces nothing and posts an error-tone one-shot named from manifest metadata. Coerce-tier fallbacks log through the Defect stream with path context attached loader-side. Displacement is level-uniform: a file squatting attachments inside a card heals by the same rename ladder as board-root squatters; comments stays tolerated. Delete Immediately joins card and lane context menus as Delete's ⌥-alternate with its own VO custom action, routed through an explicit container so the menu target outranks standing selection. Agent guide v7 teaches the stamp discipline and the card-level attachments claim, and sheds two stale v6 lines (lanes trash now; kind is taught). Verified conformant, unchanged: edition-aware Undo/Redo disable, trash marquee full-height backdrop. Both schemes 1854 tests / 318 suites green; verify-editions 30/30. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -211,6 +211,27 @@ enum Item {
|
||||
/// A whole-frontmatter flow mapping carrying a `modified-by`: readable, uneditable, and so
|
||||
/// left byte-verbatim by a copy — stale attribution included.
|
||||
static let uneditable = "---\n{schema: 1, order: 1024, title: Odd, modified-by: claude}\n---\nodd body\n"
|
||||
|
||||
/// An item carrying one of the **reserved tracker keys** — `remote` on a board or card,
|
||||
/// `remote-state` on a lane (01-storage-format.md § Enhanced schema) — beside an ordinary unknown
|
||||
/// key, so a copy's tracker sever can be told apart from unknown-key preservation breaking.
|
||||
///
|
||||
/// Nothing in this version reads the keys; what the suites pin is that an **item-level copy drops
|
||||
/// them** (ruled 2026-07-29) while a whole-board fork carries them verbatim.
|
||||
static func tracked(order: String, title: String, key: String) -> String {
|
||||
"""
|
||||
---
|
||||
schema: 1
|
||||
title: \(title)
|
||||
order: \(order)
|
||||
project: lanework # agent overlay
|
||||
\(key): gitea#42
|
||||
created: 2026-01-01T09:00:00Z
|
||||
---
|
||||
\(title) body.
|
||||
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Failure assertion
|
||||
|
||||
Reference in New Issue
Block a user