Skip to content

Add community portal with saved requests and moderated URL contributions - #55

Open
TeoSlayer wants to merge 1 commit into
mainfrom
feat/community-portal
Open

TeoSlayer wants to merge 1 commit into
mainfrom
feat/community-portal

Conversation

@TeoSlayer

Copy link
Copy Markdown
Contributor

Adds a contributor portal and CLI so people can search Cosift, save requests, and submit public webpage URLs for indexing. The web app supports email/password accounts, interests onboarding, Search/Research/Answer using Cosift's native endpoints, and URL or CSV submission with a downloadable sample.

Guests share one successful request or submission per 30 minutes per IP. Member accounts keep mode-aware saved requests and contribution history. Submissions are persisted, checked before enqueueing, and retried after transient failures.

Contribution prevalidation screens URL destinations and readable page content for adult material, malware, phishing, graphic abuse, extremist promotion, and serious harmful activity. Only an explicit safe decision permits enqueueing; rejected or inconclusive pages remain outside the crawl queue. Public-only network egress validates DNS and pins checked addresses, including redirects, and the receiving crawler must enable public-only access and adult filtering.

Validation

  • make check passed (build, vet, index/store/CLI tests).
  • Community and CLI integration tests with the race detector passed, covering accounts, guest quotas, CSV atomicity, saved-mode migration, request forwarding, moderation, and durable delivery.
  • Crawler/config race tests and public-network safety tests passed.
  • go vet ./internal/community, JavaScript syntax validation, and git diff --check passed.
  • Browser checks covered onboarding, saved Research/Answer requests, safe citation rendering, the guest cooldown, contribution review states, and the CSV download. Synthesized output rendering used a labeled local fixture.

Setup and limits

See docs/COMMUNITY.md for service configuration, CLI examples, API routes, and deployment requirements. Answer, Research, and semantic moderation require a configured chat model. Community enqueueing requires a guarded Pebble crawler and an operator token. Without the required services, contributions remain held. The local preview has no configured chat model; no production deployment was performed.

Moderation is automated URL/text screening, not a guarantee or an antivirus scan; images and videos are not visually classified. Interests provide search suggestions. Email verification and password reset are outside this first version.

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.

2 participants