easterbrooka kills the crash on shared-project lists

A two-line database fix that stops the app falling over whenever someone opens their list of shared projects.

multi-tenantworkflow

If your fork lets people share projects with colleagues, easterbrooka found a quiet but ugly bug: pulling up the list of projects shared with you returned a server error every time. The cause was a mismatch between how the query was built and how the underlying database stored the list of people a project is shared with - the two simply didn't speak the same dialect, so the lookup blew up.

The repair is small and surgical: no new tools, no database restructuring, no migration to run. easterbrooka patched the same flawed lookup in both spots it appeared and left everything else untouched. For anyone running this fork, it turns a broken collaboration feature back on with near-zero risk.

So what Worth a look for any team running a Mike fork with project-sharing - if you've seen errors on the shared-projects screen, this is almost certainly your fix.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from easterbrooka/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
03baa4c7 Fix JSONB contains() syntax for shared_with email lookup andrew 2026-05-05 ↗ GitHub
commit body
supabase-js .contains(col, JSArray) emits PostgREST native-array literal
syntax (cs.{val1,val2}), not JSON. For our JSONB shared_with column this
makes Postgres try to parse the array literal as JSON and fail with
"invalid input syntax for type json", returning a 500 from any GET /projects
or access.ts call when the user's email is set.

tabular.ts:107 already used the JSON.stringify form. Apply the same fix in
projects.ts:34 and access.ts:138.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-58.md from inside the repo you want the changes in.

⬇ Download capture-thread-58.md