Human overview · for understanding
Both apps rejoined into one version, a real security hole closed, and the mystery of the missing client data solved · 2026-07-05
Both apps rejoined into one version, a real security hole closed, and the mystery of the missing client data solved
Master summary — the gist in 30 seconds
Input: two half-finished repos (pipeline + Studio) with a new feature sitting unmerged, plus a pile of stopped Modal apps from an earlier cleanup. Output: one branch, one push, one live deploy per app — and 5 real bugs (1 security, rest correctness) found and fixed along the way.
flowchart LR B["Delivery-board<br/>feature built"] --> M["Merge everything<br/>onto one branch"] M --> A["Independent audit<br/>(4 fresh reviewers)"] A --> F["Fix what's real"] F --> P["Push + deploy"] P --> L["Live, both apps"]
Input: the delivery-board build (already tested live) sitting on its own branch, plus a separate session's purge/cleanup fixes on another branch, plus scattered temp working folders. Output: one `main` branch, one working folder per repo, everything pushed to GitHub.
flowchart TD S1["Session A:<br/>purge/deallock fixes"] --> Merge S2["Session B:<br/>delivery-board build"] --> Merge Merge["Combined onto main"] --> One["One branch,<br/>one folder,<br/>pushed to GitHub"]
Input: Studio hands out different kinds of links — one for the real client, one for internal preview, one for a sales demo. Output before the fix: all three were treated the same way if nobody was logged in as staff, so the internal preview link had the same power as the real client link. Output after the fix: only the genuine client link can trigger those actions.
flowchart LR L1["Client link"] -->|should approve| OK["Approve /<br/>Submit feedback"] L2["Internal preview link<br/>(no login)"] -.->|used to also work| OK L2 -->|now blocked| X["Rejected"] L3["Sales-demo link"] -->|now blocked| X
Input: the delivery-board code as built and tested. Output: a webhook now requires a real signature (like your other integrations already do), a finished/parked deal can no longer be yanked backward by a stale status check, two aliased stage names no longer block each other, and the board's column labels now match its filter dropdown everywhere.
flowchart TD W["Unsigned webhook"] -->|forgeable| Pay["Auto payment email"] W -->|fixed: signature required| Blocked1["Rejected"] Sync["Stale status sync"] -->|used to force backward| Regress["Finished deal moved back"] Sync -->|fixed: skip if already delivered| Blocked2["Left alone"]
Input: five different Studio app copies, one long believed to be the true live one. Output: opened each one's actual database and counted real client projects — found 31 real projects (Matyi Mátyás, Labs Skyrocket, and others) sitting in the copy nobody thought was the real one, while the assumed-real copy had almost nothing in it. That copy is now the one true deploy target.
pie showData title Real client projects, by app copy "studio-rebuild (the real one)" : 22 "studio-prod (assumed real)" : 0 "studio-v31 (assumed real)" : 0 "studio-review" : 0
Input: the fixes above. Output: pipeline + booking redeployed and confirmed live; Studio redeployed to the copy that actually holds your client data; one open follow-up remains — repopulating the live board's existing deals into the new 6-column layout, which is a separate task nobody has done yet.
flowchart LR Fixed["Fixes committed"] --> Push["Pushed to GitHub"] --> Deploy["Deployed live"] --> Open["1 follow-up open:<br/>board repopulation"]