Band Lineup 1.11.1: Sync replaces last week's hand-placed people #50

Merged
christian merged 1 commits from claude/band-lineup-sync-replaces into main 2026-10-13 11:05:09 -04:00
Collaborator

The problem

Pressing Sync on the Band Lineup tile changed some photos but not others. Sync only filled empty spots and spots it had filled itself. Anyone dragged in by hand was never replaced, even when they were left over from last week.

The fix

  • Each hand placement (drag-in, or a name typed into a spot) now records which Planning Center plan it was made for.
  • On Sync, hand placements for the plan being loaded stay put. So a sub dragged in this week survives a second Sync.
  • Every other spot gets the scheduled person, or is cleared if nobody is scheduled for it. That covers last week's placements and placements from before this change.
  • The last synced plan is saved to settings.json. That way, placements made after a ProdDash restart (before anyone presses Sync) are stamped correctly.

Module version is now 1.11.1.

Verified

A JavaScriptCore harness ran the real server.js with mocked Planning Center data and an in-memory data directory:

  • The fixed code replaces last week's hand-placed person and keeps this week's hand-placed sub across a re-sync.
  • The original code fails the same check: last week's hand-placed person stays and the synced spot changes, which is the reported symptom.

Not yet tried on the booth machine.

🤖 Generated with Claude Code

## The problem Pressing **Sync** on the Band Lineup tile changed some photos but not others. Sync only filled empty spots and spots it had filled itself. Anyone dragged in by hand was never replaced, even when they were left over from last week. ## The fix - Each hand placement (drag-in, or a name typed into a spot) now records which Planning Center plan it was made for. - On Sync, hand placements for the plan being loaded stay put. So a sub dragged in this week survives a second Sync. - Every other spot gets the scheduled person, or is cleared if nobody is scheduled for it. That covers last week's placements and placements from before this change. - The last synced plan is saved to `settings.json`. That way, placements made after a ProdDash restart (before anyone presses Sync) are stamped correctly. Module version is now 1.11.1. ## Verified A JavaScriptCore harness ran the real `server.js` with mocked Planning Center data and an in-memory data directory: - The fixed code replaces last week's hand-placed person and keeps this week's hand-placed sub across a re-sync. - The **original** code fails the same check: last week's hand-placed person stays and the synced spot changes, which is the reported symptom. Not yet tried on the booth machine. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
christian added 1 commit 2026-10-13 11:03:41 -04:00
Sync only filled empty spots and spots it had filled itself, so anyone
dragged in by hand stayed forever — pressing Sync for a new week swapped
some photos and left others, depending on how each spot got filled.

Hand placements are now stamped with the plan they were made for. Sync
keeps the ones made for the plan it is loading (a sub dragged in this
week survives a re-sync) and replaces or clears the rest. The last
synced plan is saved so placements made after a restart stamp right.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
christian merged commit e670e1ee72 into main 2026-10-13 11:05:09 -04:00
christian deleted branch claude/band-lineup-sync-replaces 2026-10-13 11:05:10 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michael/ProdDash#50