remarkbox/docs/tickets/8.md
russell@unturf.com f1cffe2e79 Resolve all 14 tracked tickets (T0-T13)
High priority fixes:
- T0: Profile page now filters comments by namespace (was leaking cross-site)
- T1: URI hostnames and namespace names normalized to lowercase (was causing
  duplicate threads and "stock comments" bug). Includes merge script.
- T2: Thread detail API now paginated with SQL-side filtering (was 502 on
  267+ reply threads)

Features:
- T3: GDPR account deletion (tombstone user with scrubbed PII) and data export
- T4: Customizable button text and comment labels per namespace
- T5: Self-service namespace deletion for owners
- T6: @mention notifications with profile links
- T7: Webmention receiving endpoint with h-card extraction
- T8: Configurable max nesting depth and collapse depth per namespace
- T9: AJAX thread title search to prevent duplicates
- T10: Browser push notification support (VAPID/service worker)

Docs and housekeeping:
- T11: Documented thread_uri behavior when moving embeds
- T12/T13: Drafted community replies for resolved feature requests
- Collapse depth defaults to infinite (load-more disabled unless configured)

364 tests pass, 4 skipped.
2026-02-01 20:02:47 -05:00

1.1 KiB

T8: Nesting depth settings per namespace

Status: resolved Priority: low Source: meta 137101ac-7eb6-11e7-8b77-040140774501 Filed: 2026-02-01

Problem

Namespace owners want to control:

  • Maximum nesting depth for replies (currently unlimited)
  • The depth at which a "load more" button appears instead of inline display

Proposed Implementation

  1. Add namespace columns: max_nesting_depth (default NULL = unlimited), collapse_depth (default NULL = never collapse)
  2. Add fields to namespace settings
  3. Enforce max depth in reply views (both web and API)
  4. Add collapse logic in templates

Files

  • remarkbox/models/namespace.py — add columns
  • Alembic migration
  • remarkbox/templates/namespace-settings.j2 — add fields
  • remarkbox/views/reply_node.py — enforce max depth
  • remarkbox/api/views.py — enforce max depth on API reply
  • remarkbox/templates/show-node.j2 — collapse at depth threshold

Acceptance Criteria

  • Namespace owners can set max nesting depth
  • Replies beyond max depth are rejected
  • Deep threads collapse with a "load more" button