dhaga.docs
Roadmap & ideas

Ideas backlog

The raw, unfiltered feature-idea backlog — some shipped, some deferred, some just notes to self.

Raw backlog

This is an unfiltered idea list, not a committed plan — some items are already built, some are deferred, some are one-line notes. Published so it stays honest about what's shipped and what isn't.

  1. Keith Ferrazzi ideas from book

  2. Document scanners like cropping — built 2026-07-07 for both web (apps/web/src/components/app/PhotoCropper/) and mobile (apps/mobile/src/components/crop-review/): drag-to-crop step between capture and OCR/parsing on both platforms. Typecheck/lint/test green on both; manual click-through (and first-ever on-device/simulator boot for the mobile app) still outstanding.

  3. One stop chat interface whatsapp/telegram -- Priya loves Linkin Park

  4. Graph seeding / cold-start imports (2026-07-04): Google Contacts (People API OAuth, one click — lower friction than LinkedIn CSV) + on-device contacts (expo-contacts, mobile milestone) + LinkedIn CSV for power users. iOS/Android contact records already carry company + job-title fields → graph has mass on day one, user annotates from there. Clustering suggestions, never auto-edges: shared surname → community candidates ("all Jains together"), shared tokens embedded in saved names ("Priya JOGET", "Arjit JOGET" → company Joget). Token-frequency code does the grouping (Rule 5 — no LLM for deterministic work); Haiku only to label ambiguous clusters. A suggestion becomes an edge only on user confirmation — an unconfirmed guess has no receipt.

  5. scroll-zoom timeline page (2026-07-04): — a scroll-driven constellation/particle visual that zooms through milestone counters ("relationships captured," "notes transcribed," "follow-ups drafted") year by year. Do NOT build with placeholder/fabricated numbers — Dhaga is pre-launch with no real usage data yet, and faking stats like "700,705 relationships entrusted" cuts against the product's honesty/privacy-first positioning. Revisit once there's real post-launch usage data to visualize; use the amber/ink palette, not a literal blue starfield.

  6. grid with a hover-tilt "opens a little" effect (see TiltCard.tsx in apps/web/src/components/landing/, already built for pricing/how-it-works cards — reuse it here). Worth building once there's enough docs/support content to warrant a dedicated page rather than just the landing FAQ.

  7. Add a dedicated integrations section once real third-party integrations ship (e.g. Google Contacts, LinkedIn CSV, and calendar sync from idea #4 above). Use real integration logos and concrete workflows, not decorative motion that slows the first page load.

  8. I should be able to view, add, delete and merge companies also — built 2026-07-27 (web). /app/companies lists companies with contact counts and supports inline create, rename, delete (detaches its contacts and positions — job history is kept, only the employer link is cleared; contacts are never deleted), multi-select, and a per-field merge (name / domain / sector) that re-points all contacts, positions, and relationship edges onto the survivor in one transaction. /app/companies/duplicates clusters likely duplicates by normalized name (stripping Inc/Ltd/LLC-style suffixes). The same batch added contact merge + bulk actions (/app/people) and /app/people/duplicates. Mobile parity pending.

  9. File-length backlog — the deferred half (2026-09-08). Six files breaching the 150-line rule were converted to directories in refactor/file-length-backlog. The files below breach it too and were deliberately NOT split there, because another branch or PR was editing each of them at the time and converting a file into a directory under a concurrent editor produces an unresolvable merge conflict. Split each once its owner lands.

    • Blocked by PR #419 (calendar read action): apps/web/src/lib/ai/agent/actions/dispatch.ts, lib/ai/agent/observe/index.ts, utils/constants/agent/index.ts, utils/constants/agent/rendering.ts, utils/constants/agent/budget.ts (its barrel is in #419), packages/core/src/schemas/agent-turn/, packages/core/src/llm/prompts/.
    • Blocked by branch fix/agent-empty-reply-stop-reason: lib/ai/agent/loop.ts (283), lib/ai/agent/loop.test.ts (409), lib/messaging/agent-filing/filing.test.ts (579), utils/constants/agent/replies.ts (169 — went over in that branch).
    • Blocked by branch feat/voice-note-question-intent: lib/messaging/process-session/run.ts (153 — went over in that branch), lib/messaging/agent-filing/state.ts (205), lib/messaging/process-session/apply/unclear/index.ts (160), utils/constants/messaging/agent-filing.ts (177), utils/constants/messaging/index.ts (167), utils/constants/messaging/config/limits.ts (156).

    Two entries the audit that produced this list could not resolve, recorded so nobody re-hunts them: it listed a confirmations.ts (257 lines) and a db/index.ts (199) as agent/messaging files, but no confirmations.ts exists under agent/ or messaging/ — the closest match is packages/core/src/schemas/confirmations.ts (280), and the only repo-wide match for the other is apps/web/src/lib/db/index.ts, the general DB bootstrap. Both were in the six above: located and handled, just not where the audit said they were.