Skip to content

Merge duplicate items and optional AI assist #42

Description

@mukto90

Problem

Popular products receive many near-identical requests ("dark mode", "night theme", "dark UI"). Votes get split, the board gets noisy, and admins have no tool to consolidate. Writing a clear title and tidying wording is also manual work.

Proposal

Merge duplicates (core, non-AI)

  • Bulk action / item screen button: Merge into... (pick a target item).
  • Behaviour: add source votes to target (with vote rows re-pointed so de-duplication stays correct), move comments and subscribers, record "Merged: " in the target's history, then set the source to a merged state (hidden, redirects to target, keeps an audit trail).
  • Undo within a window or via the audit log.
  • When submitting a new idea, show "Similar ideas" (title similarity via LIKE/FULLTEXT) and let the visitor vote on the existing one instead.

AI assist (optional, opt-in, Pro candidate)

  • "Suggest duplicates" on pending submissions: compare against existing items using embeddings or an LLM prompt; show a ranked list with similarity reason; admin confirms (never auto-merges).
  • "Clean up title/description": rewrite a rough submission into a clear title + short description, shown as a diff for the admin to accept.
  • Auto-suggest tags.
  • Bring-your-own API key stored encrypted-at-rest as an option; provider adapter interface (Claude, OpenAI, none). Send only item title/description, never emails. Clear disclosure in the readme privacy section.
  • All AI calls async, with timeouts and a kill switch.

Acceptance criteria

  • Merge moves votes, comments, subscribers and tags correctly; totals match before/after.
  • Voters who voted on both source and target are counted once.
  • Source URL redirects to target; source hidden from board and API.
  • Merge is reversible/audited.
  • Similar-ideas suggestion appears in the submit form and is debounced.
  • AI features are off by default, require explicit key entry, and fail safely.
  • No personal data is sent to the AI provider.

Dependencies

Vote de-duplication (vote rows), submissions, comments, subscribers, status history.

Priority rationale

Low. Needed at scale; implement the non-AI merge first, AI later as a Pro differentiator.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureSomething we want to add

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions