From d668ca287c9651bebdd5fd4b85c2989700b51852 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Wed, 11 Mar 2026 14:38:34 -0700 Subject: [PATCH] chore(backlog): add tasks 106-108 (ViewHistory, Wallets, CRM graph) Co-Authored-By: Claude Opus 4.6 --- ...p-back-navigation-rename-rWork-→-rTasks.md | 28 ++++++++++++++ ...- My-Wallets-panel-in-identity-dropdown.md | 38 +++++++++++++++++++ ...-inline-force-directed-graph-in-Graph-tab.md | 38 +++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 backlog/tasks/task-106 - Add-ViewHistory-for-in-app-back-navigation-rename-rWork-→-rTasks.md create mode 100644 backlog/tasks/task-107 - My-Wallets-panel-in-identity-dropdown.md create mode 100644 backlog/tasks/task-108 - rNetwork-CRM-—-inline-force-directed-graph-in-Graph-tab.md diff --git a/backlog/tasks/task-106 - Add-ViewHistory-for-in-app-back-navigation-rename-rWork-→-rTasks.md b/backlog/tasks/task-106 - Add-ViewHistory-for-in-app-back-navigation-rename-rWork-→-rTasks.md new file mode 100644 index 0000000..641e179 --- /dev/null +++ b/backlog/tasks/task-106 - Add-ViewHistory-for-in-app-back-navigation-rename-rWork-→-rTasks.md @@ -0,0 +1,28 @@ +--- +id: TASK-106 +title: Add ViewHistory for in-app back navigation + rename rWork → rTasks +status: Done +assignee: [] +created_date: '2026-03-11 21:32' +labels: + - frontend + - navigation + - refactor +dependencies: [] +references: + - shared/view-history.ts + - modules/rtasks/ +priority: high +--- + +## Description + + +Created shared ViewHistory utility class providing stack-based back navigation for rApps with hierarchical views. Integrated into 10 rApps replacing hardcoded data-back targets. Also renamed rWork module to rTasks across entire codebase (70 files), deleted rwork.online Cloudflare zone, cleaned cloudflared config. + + +## Final Summary + + +Commit 31b0885 on dev+main. New shared/view-history.ts with ViewHistory class (push/back/canGoBack/peekBack/reset, max depth 20). Integrated into rtrips, rmaps, rtasks, rforum, rphotos, rvote, rnotes, rinbox, rschedule, rcart. Full rWork→rTasks rename: directory modules/rwork→modules/rtasks, component folk-work-board→folk-tasks-board, class FolkWorkBoard→FolkTasksBoard, all cross-module refs, docker-compose, vite config, encryptid CORS, landing pages. Removed rwork.online from cloudflared config and deleted its Cloudflare zone. + diff --git a/backlog/tasks/task-107 - My-Wallets-panel-in-identity-dropdown.md b/backlog/tasks/task-107 - My-Wallets-panel-in-identity-dropdown.md new file mode 100644 index 0000000..708b8ca --- /dev/null +++ b/backlog/tasks/task-107 - My-Wallets-panel-in-identity-dropdown.md @@ -0,0 +1,38 @@ +--- +id: TASK-107 +title: My Wallets panel in identity dropdown +status: Done +assignee: [] +created_date: '2026-03-11 21:33' +updated_date: '2026-03-11 21:37' +labels: + - identity + - wallet + - UI +dependencies: [] +references: + - shared/components/rstack-identity.ts +priority: medium +--- + +## Description + + +Added a "My Wallets" option to the avatar dropdown menu that opens a modal showing the user's rIdentity wallet and any connected browser wallets (MetaMask, Rainbow, etc. via EIP-6963 discovery). Provides quick wallet access without navigating to the full rWallet module. + + +## Acceptance Criteria + +- [x] #1 'My Wallets' item appears in avatar dropdown between 'My Spaces' and theme toggle +- [x] #2 Modal shows rIdentity wallet card with username, truncated DID, and Passkey badge +- [x] #3 EIP-6963 browser wallets detected and listed with icons and Connect buttons +- [x] #4 Connect flow calls eth_requestAccounts and displays resulting address +- [x] #5 'Open rWallet' button navigates to /{space}/rwallet +- [x] #6 Modal closes on X button or click-outside + + +## Final Summary + + +Implemented in commit e47cd35. Single-file change to `shared/components/rstack-identity.ts` (+215 lines):\n\n- Added `_WalletDiscovery` class for EIP-6963 browser wallet detection\n- Added dropdown item, click handler, `#showWalletsModal()` method\n- Added `WALLETS_STYLES` CSS matching existing dark theme\n- Connected wallets are ephemeral (no persistent linking)\n- No token balance fetching (that's rWallet's job) + diff --git a/backlog/tasks/task-108 - rNetwork-CRM-—-inline-force-directed-graph-in-Graph-tab.md b/backlog/tasks/task-108 - rNetwork-CRM-—-inline-force-directed-graph-in-Graph-tab.md new file mode 100644 index 0000000..7b75dab --- /dev/null +++ b/backlog/tasks/task-108 - rNetwork-CRM-—-inline-force-directed-graph-in-Graph-tab.md @@ -0,0 +1,38 @@ +--- +id: TASK-108 +title: rNetwork CRM — inline force-directed graph in Graph tab +status: Done +assignee: [] +created_date: '2026-03-11 21:38' +updated_date: '2026-03-11 21:38' +labels: + - rnetwork + - frontend + - graph +dependencies: + - TASK-98 +references: + - modules/rnetwork/components/folk-crm-view.ts +priority: medium +--- + +## Description + + +Replace the Graph tab's external link with an interactive SVG graph rendered directly inside folk-crm-view.ts using the CRM data already loaded (people, companies, opportunities). Companies appear as colored clusters with people orbiting around them. Cross-org opportunity links shown as dashed purple edges. Includes pan/zoom/drag interactions and auto fit-to-view. + + +## Acceptance Criteria + +- [x] #1 Graph tab renders inline SVG with company clusters and person nodes +- [x] #2 Force-directed layout with pan/zoom/drag interactions +- [x] #3 Cross-org edges from opportunities shown as dashed purple lines +- [x] #4 Auto fit-to-view on tab switch, empty state for no data +- [x] #5 Vite build passes with no TS errors + + +## Final Summary + + +Implemented in commit c36b0ab on dev, merged to main.\n\nAdded ~460 lines to folk-crm-view.ts:\n- buildGraphData() derives nodes/edges from CRM people, companies, opportunities\n- computeGraphLayout() runs 70-iteration force simulation\n- renderGraphTab() outputs SVG with cluster/edge/node layers + zoom controls + legend\n- Full pointer interactions: drag nodes, pan canvas, wheel zoom, click-to-select\n- updateGraphNodePosition() for incremental drag without re-render +