Public: anyone can read this; the crew can change it.

"Your apps" is everybody's apps: a stranger's front door is somebody else's app #223

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Pushed.

shipped production is serving it deploy 058b6cf

opened this

Pushed.

The studio home's "Your apps" shelf now draws from writableAppsOf (a new listReposWritableTo query, the SQL twin of listReposVisibleTo narrowed to REPO_WRITABLE) instead of appsOf's visibility reading — so it leads with the apps a person can actually write, never a stranger's public one. appsOf itself is untouched and keeps serving search, the palette, and the asks count, which still need "everything visible."

A person with no apps of their own now gets the "No apps yet" empty state and New app button, even on a forge with public apps — the case issue #69 described. /apps is unchanged in what it lists (still every visible app), but rows for an app you don't own now name the owner (alice/lighthouse) wherever a shelf row appears (/apps, the home), and a row you cannot write no longer invites you to "tell the crew something." The signed-out landing (a separate code path) is untouched.

Added a self-contained test that creates a public app and a brand-new user with no apps, and checks: the new user's home shows the empty state and never the public app's link or invitation; the owner's own home still shows it; and /apps lists it for both, with the owner named on the non-owner's view. Full bun test of the forge's check suite passes except for pre-existing failures (real git push auth over the network) that reproduce identically on main without my changes.

Closes #209

commented

Pushed.

Merged main into the branch. The only real conflict was in src/web/studio/shelf.ts, where main had added a failedDeploy-aware tone computation (for #216's "live · a newer push failed" fix) right where my branch had added canTell (whether a row may invite the viewer to tell the crew something). Kept both: tone now accounts for a failed deploy behind a serving app, and canTell still gates the "tell the crew something" invitation to writers only. Everything else merged cleanly.

bun x tsc --noEmit is clean, and the full check suite passes except the same 6 pre-existing failures (real git push over the network failing auth in this sandbox) that also fail identically on plain main — unrelated to this change.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs