Skip to content

Complete Designer autosave, recovery and external change handling - #96

Merged
ProGraMajster merged 2 commits into
masterfrom
codex/issue-41-designer-autosave-recovery
Aug 23, 2026
Merged

Complete Designer autosave, recovery and external change handling#96
ProGraMajster merged 2 commits into
masterfrom
codex/issue-41-designer-autosave-recovery

Conversation

@ProGraMajster

Copy link
Copy Markdown
Owner

Summary

Completes reliable per-document Designer persistence, autosave recovery, crash recovery, and external-change handling without changing the canonical .mfdesign v1 format.

Autosave

  • revision- and generation-aware scheduling with debounce and maximum interval
  • no autosave while Designer transactions or normal Save are active
  • atomic per-user recovery writes
  • autosave never changes the dirty state or normal saved-revision marker

Recovery

  • independent versioned recovery envelope with payload and metadata SHA-256 integrity checks
  • saved and unsaved document identities with session/process isolation
  • valid, obsolete, conflict, corrupt, and unsupported classification
  • bounded discovery, cleanup containment, and safe data-only restore without executing user code

External changes

  • exact-file FileSystemWatcher filtering and event coalescing
  • bounded two-pass stable reads before parsing or hashing
  • content-hash-based self-write suppression
  • clean .mfdesign reload and explicit dirty-document conflict handling
  • conservative, data-only .Designer.cs import with .mfdesign as the authoritative coalesced source

Reliability

  • per-document generation tokens, write gates, and close/dispose guards
  • stale callback and multi-document isolation
  • atomic canonical .mfdesign and generated-file replacement at each individual file boundary
  • recovery retention, cleanup limits, retry bounds, and rename identity handoff

Validation

Closes #41

- add revision-aware Designer autosave with atomic recovery snapshots
- recover dirty and unsaved documents without executing user code
- detect and coalesce external mfdesign and generated-code changes
- suppress self-writes and surface safe conflicts for dirty documents
- integrate recovery lifecycle with transactions, save markers and document disposal
- add deterministic scheduling, filesystem and crash-recovery regressions
Bound external stable reads and preserve the model after retry exhaustion. Protect recovery metadata integrity and retain rename coverage until the new identity is saved. Add deterministic regressions for save races, partial writes, migration failures, and cleanup.
@ProGraMajster
ProGraMajster merged commit 7946361 into master Aug 23, 2026
1 check passed
@ProGraMajster
ProGraMajster deleted the codex/issue-41-designer-autosave-recovery branch August 23, 2026 18:05
@github-project-automation github-project-automation Bot moved this from Backlog to Done in ModernFormsNext Roadmap Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Complete Designer autosave, crash recovery and external-change detection

1 participant