Skip to content

Preserve incompatible and drawing-only board data - #103

Merged
ojowwalker77 merged 1 commit into
mainfrom
agent/preserve-board-data
Jul 29, 2026
Merged

Preserve incompatible and drawing-only board data#103
ojowwalker77 merged 1 commit into
mainfrom
agent/preserve-board-data

Conversation

@ojowwalker77

Copy link
Copy Markdown
Owner

What changed

  • adds an explicitly versioned board payload while retaining legacy array decoding
  • preserves unknown future card records across edits and autosaves
  • write-protects corrupt, future-version, and unknown-only boards
  • writes private content-addressed recovery copies and verifies existing copies
  • provides a persistent recovery warning with Show Recovery and Duplicate to Edit actions
  • derives pruning from durable payload semantics so every visual/structured element counts as content

Root cause

Decode failures fell back to a text card that later autosave/navigation/quit paths could write over the original bytes. Blankness was also derived only from the lossy text mirror, so unnamed drawing-only boards could be pruned.

Validation

  • swift test --filter BoardPersistenceTests — 15 passed
  • ./script/check — release build plus 184 tests passed
  • ./script/verify — release bundle identity/update/icon verification passed
  • git diff --cached --check — passed
  • staged Splus review — 0 must-fix, 0 concern; 44/44 changed-export audit complete

The unrelated local opencode.json deletion is not included.

Closes #102
Closes #97

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Jul 29, 2026
@ojowwalker77
ojowwalker77 merged commit 3bc01f3 into main Jul 29, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P0] Preserve unreadable and forward-version board data [P0] Do not auto-prune drawing-only boards

1 participant