Visibility phase 1: add site_members value + 4-option dropdown #42

Merged
justin merged 1 commits from visibility-phase1-enum into main 2026-06-09 09:02:02 -04:00
Owner

Phase 1 of the public-viewing feature (design note included: docs/design/tree-visibility.md). No non-member behavior change yet — only widens the visibility vocabulary + UI.

  • TreeVisibility gains site_members -> four levels: public / site_members / unlisted / private.
  • Alembic migration adds the enum value in an autocommit block (ALTER TYPE ADD VALUE); irreversible downgrade (PG cannot drop enum values). Single head confirmed.
  • Regenerated openapi.json + TS client.
  • Trees-list dropdown: Private / Public – Members / Unlisted / Public + explanatory tooltip.

Verified: backend app imports, enum = [public, site_members, unlisted, private], migration parses + alembic single head; frontend tsc + build pass.

Follow-ups (separate PRs): phase 2 privacy-engine branching + tests, phase 3 public read API, phase 4 public pages, phase 5 explore directory.

🤖 Generated with Claude Code

Phase 1 of the public-viewing feature (design note included: docs/design/tree-visibility.md). **No non-member behavior change yet** — only widens the visibility vocabulary + UI. - `TreeVisibility` gains `site_members` -> four levels: public / site_members / unlisted / private. - Alembic migration adds the enum value in an autocommit block (ALTER TYPE ADD VALUE); irreversible downgrade (PG cannot drop enum values). Single head confirmed. - Regenerated openapi.json + TS client. - Trees-list dropdown: Private / Public – Members / Unlisted / Public + explanatory tooltip. Verified: backend app imports, enum = [public, site_members, unlisted, private], migration parses + alembic single head; frontend tsc + build pass. Follow-ups (separate PRs): phase 2 privacy-engine branching + tests, phase 3 public read API, phase 4 public pages, phase 5 explore directory. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
justin added 1 commit 2026-06-09 08:55:07 -04:00
First step of the public-viewing feature (design: docs/design/tree-visibility.md).
No non-member behavior change yet — this only widens the vocabulary and UI.

- TreeVisibility gains `site_members` (any authenticated user of the instance),
  giving the four-level model: public / site_members / unlisted / private.
- Alembic migration adds the enum value via an autocommit block (ALTER TYPE
  ADD VALUE can't run in a transaction on older Postgres); downgrade is a no-op
  since PG can't drop an enum value.
- Regenerated openapi.json + frontend TS client.
- Trees-list dropdown now offers Private / Public – Members / Unlisted / Public
  with an explanatory tooltip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Justin Paul <justin@jpaul.me>
justin merged commit e6dfe39e84 into main 2026-06-09 09:02:02 -04:00
justin deleted branch visibility-phase1-enum 2026-06-09 09:02:02 -04:00
Sign in to join this conversation.