Skip to content

Ship Slack-native Mumbl beta#13

Merged
lladawn merged 11 commits into
mainfrom
dev
Jun 26, 2026
Merged

Ship Slack-native Mumbl beta#13
lladawn merged 11 commits into
mainfrom
dev

Conversation

@lladawn

@lladawn lladawn commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

This PR ships the current dev branch to main based on the actual remote comparison: origin/main..origin/dev.

The release is focused on production hardening for private data, the private pattern graph, private-room invite-key flows, and Slack App Home/team-read fixes.

What Changed

Production Privacy And Encryption Gate

  • Adds server-side content encryption support for user-entered and user-derived content.
  • Adds the content-encryption backfill script and documentation for key handling.
  • Updates backend routes and serializers to decrypt/encrypt content consistently.
  • Squashes the Supabase migration history into the updated initial schema and removes the older incremental migration files.
  • Adds table grants and fixes missing encrypted payload coverage for saved room access.
  • Updates env, release, backend, and free-tier docs for the production privacy posture.

Private Room Access And Invite Keys

  • Adds saved room access so logged-in users can reopen private rooms without re-pasting invite links.
  • Adds an access-token endpoint for saved room access.
  • Supports publishing field notes to private rooms by manual invite link.
  • Fixes invite-key handling in Slack links and room-share flows so private room links include the key when Mumbl has it and degrade cleanly when it does not.
  • Tightens private-room access checks for posts, publishing, saved rooms, and Slack-created rooms.

Pattern Graph

  • Adds v0 private pattern graph support for logged-in private dumps.
  • Adds signal extraction, insight generation, pattern review endpoints, and the pattern map route.
  • Adds the Patterns page and client UI.
  • Removes the old Supermemory path and replaces it with Mumbl-owned pattern graph infrastructure.
  • Gates pattern features behind environment configuration and documents the staging/production setup.

Slack App Home And Room Pinning Fixes

  • Adds self-serve room pinning from Slack with invite-key verification.
  • Fixes the App Home pin-room flow so it is not duplicated and gives clearer feedback when a room is already pinned.
  • Defensively de-dupes pinned spaces in Slack views.
  • Removes optional Slack team-read setup side effects from pinned-space management so pinning cannot fail because an unrelated setup link could not be created.
  • Fixes Slack room-read buttons, including the open team reads button after publishing a draft, to use invite-key-aware URLs.

Team-Read Ownership

  • Prevents room creators from deleting someone else published team reads.
  • Allows the person who published a field note to remove their own team read.
  • Fixes the stale state where deleting a team-read post could leave the backing field note marked as published without a published post.
  • Clears public-profile linkage when a team read is removed, preserving the rule that public notes must come from published team reads.

Product And Docs

  • Updates the README intro and product/how-it-works framing.
  • Refreshes the Open Graph preview image.
  • Adds/updates docs for pattern graph, encryption key safety, environments, release checklist, backend plan, free-tier constraints, and Slack setup.

Verification

  • Ran npm run build successfully after the latest Slack invite-key and team-read ownership fixes.

Release Notes

  • This PR includes Supabase schema changes. Confirm the linked Supabase project before applying migrations.
  • Production requires the documented encryption, Supabase, Slack, cron, and optional AI provider environment variables.
  • Pattern graph work should remain gated unless the production environment is intentionally configured for it.

lladawn and others added 11 commits June 12, 2026 22:31
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Squash 36 incremental migrations into a single clean 0001_initial_schema.sql baseline (pre-launch, all data was test data)
- Add explicit postgres/service_role grants to migration to survive schema resets
- Include invite key (access_token) in Slack manage-pinned-spaces "open team reads" URL
- Thread access_token through Slack share-with-team modal, team reads OAuth redirect, and channel intro/post messages
- Add view_submission handler for share_room_invite modal (fixes silent Slack failure)
- Gate pattern graph blocks in App Home behind patternGraphEnabled env var

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
saveRoomAccessForUser writes encrypted_payload to store the access token
for logged-in users so getSavedAccessToken can retrieve it later.
The column was omitted from the squashed migration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…on-gate

Gate pattern graph and encrypt user content
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Teammates can now pin a Mumbl room directly from Slack App Home via a
"pin a room" button (visible in all states, including zero pinned
spaces) or the pinned-spaces modal. Pasting the room invite link pins
the room; private rooms verify the key against read_token_hash before
pinning, closing the slug-guessing hole. /mumbl pin now accepts invite
links too.

Also fixes start_room_modal to update the current modal view before
falling back to views.open, avoiding the trigger_id expiry race.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mumbl-app Ready Ready Preview, Comment Jun 26, 2026 1:43pm

@lladawn lladawn changed the title Promote Slack-native Mumbl beta to production Ship Slack-native Mumbl beta Jun 26, 2026
@lladawn lladawn merged commit 38e1aa9 into main Jun 26, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant