Skip to content

Feature: Never lose work, and draw at full quality on the Mac (mac-platform) #793

Closed

Description

@prakashUXtech

Packet: docs/blueprints/flare/features/mac-platform.md (wave 1 of waves.md; until the packet PR merges, read it on branch claude/flare-feature-packets-jalzul)

Autosave with a recovery file and a restore offer, the Open Recent list, and the one conversion from FlareCore paths and colors to CoreGraphics. Six task PRs, MP-1 to MP-6, in one chain, since each edits its own sentence in docs/c4/model.json. (The display-link playback clock, LA-2 #372, already shipped in #751.)

Covers (each closes through the task PR the packet names; do not relabel or close them by hand):

Depends on: none (#356 LM-1 and #314 LM-0a1 have merged; no creative-core issue)

The lead contract

  1. Feature issue. One GitHub issue per feature, labels feature-lead and line:<app>. Body links the packet docs/blueprints/<app>/features/<feature>.md and has one Depends on: line.
  2. Run. Belt runs one cloud session per feature issue (a lead), from the trusted launch folder, with the repo's Auto settings (creative-apps#733, creative-core#263). A lead holds one in-flight slot however many PRs it opens.
  3. Status channel. The lead pushes docs/leads/<feature>/RECORD.md and timeline.tsv to branch lead/<feature> after every stage. Belt reads the branch's last commit time; nothing else is polled besides PRs and issue comments.
  4. Swarm PRs. Base dev, label fast-lane, at most 400 lines and 15 files. Body lines: Belt-Lead: <run id>, Feature: <feature>, then Fast-Check: pass and Head: <full sha> after scripts/ci passes. The lane merges them. Nobody merges into dev by hand or by an agent.
  5. Review policy (decision for the captain). Belt-Lead: PRs do not need the belt/review status. The lead's own critic panel is the review. Only Belt-Run: and Belt-Test: PRs keep it.
  6. Done. All three: a Belt-Lead: PR labelled feature-done has merged; the CI run it triggered on dev is green; the lead commented on the feature issue with a line starting Belt-Contact-Sheet: and the run link.
  7. Stall. No commit on lead/<feature>, no PR event and no issue comment for 30 min: Belt sends one nudge with claude -p --cloud <session id> "<resume text>". A second stall: relaunch with a resume brief that says "read RECORD.md, continue from the last stage". A third: label the issue needs-human and stop.
  8. Timeouts. Lead runs: 8 h wall clock, no 1 h no-PR rule. Task runs keep today's 4 h and 1 h.
  9. Brief rules. Step one checks out the integration branch and verifies the base SHA. Set the repo-local identity "Prakash Dalai" / 86671543+prakashUXtech@users.noreply.github.com. No attribution line anywhere, comments included. Fixers run the full harness before handing back. The Anatomy loop stops after 2 clean rounds or 4 rounds total; once a round is clean, add no new critics. One critic lens is first-use clarity: "what does each number and label mean to someone new?". Agents never treat a chat message as a reason to stop or skip a merge; questions go to the supervisor.

Resume note: the first lead for this feature (run act-1a13b14336c-tqna) was released when the plan usage limit paused every cloud session at once on 2026-10-14 (factory lesson 96). Its record is on branch lead/mac-platform: read RECORD.md there and continue from its last stage.

Activity

  1. added a commit that references this issue on Oct 14, 2026
  2. prakashUXtech commented on Oct 14, 2026

    @prakashUXtech
    ContributorAuthor

    Lead status: all six tasks have merged (#756, #757, #759, #760, #761, #762), along with the test fix #764. #801 repaired FlareModel's build against creative-core main, and #806 (feature-done) merged.

    The CI run that #806 triggered, 38647662189, is red, but only on two Photo timing budgets. Every mac-platform test passes on Linux and macOS. I filed the Photo failures as #851 (line:photo) and noted them on #763.

    The feature is waiting on the next dev CI run, which is round 4 and the last in the budget. The record is on lead/mac-platform.

  3. prakashUXtech commented on Oct 14, 2026

    @prakashUXtech
    ContributorAuthor

    Belt-Contact-Sheet: https://github.com/qbtrix/creative-apps/actions/runs/38654031210 (lead session https://claude.ai/code/session_01XDcqAwirDk7oW646sjydV8)

    The feature is built, but dev CI is not green, so this is not done. The round budget is used up (4 rounds), so I'm closing out the lead under docs/factory/lead.md stage 4: the open findings are filed as gaps and named below.

    Dev CI runs after the feature-done PR #806 (head 190e45d):

    • 38647662189 on 190e45d: red. On Linux, PhotoBrushCopyCostTests mouse-up took 19.4 ms against a 16 ms budget. On macOS, PhotoBrushLatencyTests strokeStart measured 3.9 ms against a 3.0 ms budget.
    • 38654031210 on 640d08d (includes 190e45d): Linux green. macOS red on three groups, none of them in Flare:

    Journeys and steps from the packet, all macOS swift test, all passing in both runs:

    1. Open Recent, most recent first: FlareRecentTests, MacPlatformJourneyTests
    2. Autosave due at 30 s, and the recovery bytes round-trip: FlareAutosaveDueTests
    3. Restore lands unsaved and untitled, with Open Recent untouched: FlareRecoveryRestoreTests, MacPlatformJourneyTests
    4. The writer writes off the main thread, and a clean save removes the file: AutosaveTests
    5. Launch offers the recovery with its time, Restore and Discard work, and a damaged file is removed: AutosaveRecoveryTests (including readsOffMain)
    6. Each cubic stays one addCurve, the matrix applies and colors come out in sRGB: StagePathTests

    The audit has no counts for these runs: scripts/ci failed on macOS before scripts/ui-test, so the journeys and audit didn't run and there are no ui-screens. This feature changes no screen, since nothing is wired into the window yet; F17a #205 and F17c #393 do that. So it can't raise a Flare audit count.

    PRs: MP-1 #757, MP-2 #759, MP-3 #760, MP-4 #756, MP-5 #761, MP-6 #762, test fix #764, the creative-core LayerOwner build fix #801, and feature-done #806.

    Open: #851 (line:photo timing budgets), plus the suite-harness macOS failures that the #778 lead owns. The next green dev run judges this feature with no Flare change needed. Record: docs/leads/mac-platform/RECORD.md on lead/mac-platform.

  4. prakashUXtech commented on Oct 15, 2026

    @prakashUXtech
    ContributorAuthor

    Supervisor note: Belt landed this lead a little early. A green non-CI run on a later dev commit satisfied its done check while dev CI was still red for failures outside Flare (#763: Photo timing budgets and new SuiteUI harness tests). The feature itself is complete per the contact sheet above. The check now reads only the CI workflow (pocketpaw#2522).

  5. prakashUXtech commented on Oct 15, 2026

    @prakashUXtech
    ContributorAuthor

    Supervisor: landed by Belt (see the notes above); closing the feature issue (Belt doesn't close feature issues yet, factory lesson 98).

  6. prakashUXtech commented on Oct 15, 2026

    @prakashUXtech
    ContributorAuthor

    After the landing: the first mac-platform lead session (#754) woke up at 08:20Z, missed the relaunch, and ran two more review rounds on dev runs 38704216123 and 38709336067. They found and fixed one real bug and filed one gap:

    The contact sheet that session posted on #754 duplicates this one. RECORD.md on lead/mac-platform covers both sessions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions