Skip to content

Corpus Interactivity: Discussion Collaboration System #581

@JSv4

Description

@JSv4

Overview

This meta-issue tracks the implementation of a comprehensive discussion collaboration system for OpenContracts. The goal is to enable rich, community-driven interactions within corpus contexts, allowing users to engage in threaded discussions, recognize valuable contributions through voting and badges, and foster active communities around document collections.

Overarching Goal

Transform OpenContracts from a document annotation platform into a collaborative knowledge hub by adding discussion capabilities that enable:

  • Threaded conversations about documents and corpuses
  • Community-driven content curation through voting
  • User reputation and recognition systems
  • Corpus-level moderation and community management
  • Analytics and insights for corpus owners
  • Powerful search and discovery of discussions

Development Guidelines

All contributions to this feature set must follow these requirements:

Test Coverage

  • Backend: All changes must include comprehensive tests

    • Run tests with: docker compose -f test.yml run django python manage.py test
    • Target: >90% coverage for new code
    • All tests must pass before PR approval
  • Frontend: All UI components must include Playwright component tests

    • Run tests with: yarn run test:ct
    • Mock backend data appropriately
    • Test user interactions, loading states, and error handling

Code Quality

  • Pre-commit hooks: Run pre-commit run --all-files before pushing
    • Ensures code formatting (Black, isort, prettier)
    • Linting (flake8, ESLint)
    • Type checking where applicable

Pull Request Process

  • Target Branch: All PRs must be opened against the v3.0.0.b3 branch, NOT main
  • PR Description: Include:
    • Link to the issue(s) being addressed
    • Description of changes
    • Test coverage summary
    • Screenshots/videos for UI changes
  • Reviews: At least one approval required
  • CI/CD: All GitHub Actions checks must pass

Epic Issues

This feature is organized into 8 epics, each with multiple sub-issues:

  1. Epic: Discussion Threads - Core Threading & Agent Type Support #546: Epic: Discussion Threads - Core Threading & Agent Type Support

    • Foundation for thread-based discussions
    • Multi-agent conversation support
    • Soft delete and moderation infrastructure
  2. Epic: Voting System & Reputation #550: Epic: Voting System & Reputation

    • Upvote/downvote functionality
    • User reputation tracking (global and per-corpus)
    • Async reputation calculation
  3. Epic: Moderation System #555: Epic: Moderation System

    • Corpus moderator roles and permissions
    • Thread locking, pinning, deletion
    • Moderation action tracking
  4. Epic: Badge System #558: Epic: Badge System

    • Badge definition and management
    • Manual and auto-award capabilities
    • Badge display on user profiles
  5. Epic: Notification System #562: Epic: Notification System

    • Real-time user notifications
    • Multiple notification types (replies, votes, badges, etc.)
    • Notification management UI
  6. Epic: Corpus Engagement Metrics & Analytics #565: Epic: Corpus Engagement Metrics & Analytics

    • Engagement tracking per corpus
    • Analytics dashboard
    • Contributor leaderboards
  7. Epic: Thread Search & Discovery #569: Epic: Thread Search & Discovery

    • Semantic and text search integration
    • Thread and message search
    • Leverages existing embedding infrastructure
  8. Epic: Frontend UI Implementation #572: Epic: Frontend UI Implementation

    • Thread list and detail views
    • Voting, moderation, and notification UIs
    • Analytics dashboards and search interfaces

Milestone

This work is tracked under milestone: v3.0.0.b3

Timeline

Estimated completion: 8-10 weeks total

Development can proceed in parallel across epics where dependencies allow.

Questions?

For questions or clarifications, please comment on the relevant epic or sub-issue, or reach out to the maintainers.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions