Skip to content

feat(flare): autosave due time and recovery data - #759

Merged
github-actions[bot] merged 1 commit into
devfrom
lead/mac-platform-mp2
Oct 14, 2026
Merged

github-actions[bot] merged 1 commit into
devfrom
lead/mac-platform-mp2

Conversation

@prakashUXtech

@prakashUXtech prakashUXtech commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

MP-2 of the mac-platform feature (docs/blueprints/flare/features/mac-platform.md). MP-1 (#757) shipped the Open Recent half of #739; this is the rest.

Closes #739

What changed

  • Sources/FlareModel/FlareFiles.swift (extension on FlareWorkspace; FlareWorkspace.swift not edited):
    • public static let autosaveDelay: Double = 30
    • autosaveDue(lastEdit:now:): false unless the document is dirty and both times are present and finite; true once now - lastEdit >= autosaveDelay.
    • recoveryData(): nil when clean or with no document; otherwise the document encoded with FlareFormat.encode, the same encoder the save path uses (try?).
  • docs/c4/model.json: the flare-model-sources description gains one clause about the autosave due time and the recovery bytes.

Why

The autosave writer (MP-5) and launch recovery (MP-6) need a Linux-tested rule for when a recovery write is due and what bytes it writes. Putting it in the Model keeps the app's timer code small.

Proof

Tests/FlareModelTests/FlareAutosaveDueTests.swift (Swift Testing): an edit at 0 is not due at 29.9 and is due at 30.0; a clean document is never due; no last edit is not due; after didSave it is not due; undo back to the saved document is not due; NaN and infinite times are not due; recoveryData() decodes through FlareWorkspace.decodeFile to document, and is nil when clean or with no document.

No view code changed, so no snapshot PNGs changed.

Docs check: I confirmed Double.isFinite with the apple-docs MCP (searchAppleDocumentation). Data comes through the Linux-safe Foundation import the file already has.

Belt-Lead: act-1a13b14336c-tqna
Feature: mac-platform
Fast-Check: pass
Head: ade071c

@prakashUXtech prakashUXtech added the fast-lane Merge automatically when small, green and outside protected paths label Oct 14, 2026 — with Claude
@github-actions
github-actions Bot merged commit 8917507 into dev Oct 14, 2026
1 check passed
@github-actions github-actions Bot added the fast-lane-merged Merged by the fast lane; review after the fact label Oct 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Fast lane: merged into dev (114 lines, 3 files, Fast-Check marker).

@github-actions github-actions Bot mentioned this pull request Oct 14, 2026
github-actions Bot pushed a commit that referenced this pull request Oct 14, 2026
## What and why

The last PR of the mac-platform feature (#793, resumes #754). It records that the packet is built and carries `feature-done`, so the lane dispatches the full CI run on `dev` that judges the feature.

- `docs/blueprints/flare/features/mac-platform.md`: a **Status** line naming the merged task PRs (MP-1 #757, MP-2 #759, MP-3 #760, MP-4 #756, MP-5 #761, MP-6 #762), the round-1 test fix #764, and the feature issue #793. Nothing is wired into the window yet; F17a #205 and F17c #393 add the menu and the restore alert.
- `docs/blueprints/flare/features/waves.md`: the wave-1 row's feature issue is now #793 (built).

No CI run has judged the feature since 4594082. #801 fixed FlareModel's build against creative-core main, which had broken every Linux build of `dev`.

## Proof

Docs only. `scripts/ci`: CI: PASS (1414 tests) on this head, rebased on 11e3e0c (#801).

Snapshot PNGs changed: none.

Refs #793

Belt-Lead: act-1a13c789856-0qa9
Feature: mac-platform
Fast-Check: pass
Head: e3c132f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fast-lane Merge automatically when small, green and outside protected paths fast-lane-merged Merged by the fast lane; review after the fact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Flare LM-1b: Open Recent list and autosave due time in FlareFiles (rest of #356)

1 participant