From 8e90434032a7f51f6a8ce3b32fc1e9b6038b4548 Mon Sep 17 00:00:00 2001 From: digua Date: Mon, 10 Aug 2026 22:11:53 +0800 Subject: [PATCH] feat(insight): add cross-chat time investment --- apps/web-wasm/src/App.vue | 2 +- apps/web-wasm/src/routes.test.ts | 18 + apps/web-wasm/src/routes.ts | 12 + packages/core/src/index.ts | 3 + .../query/__tests__/time-investment.test.ts | 158 ++++++ packages/core/src/query/index.ts | 2 + packages/core/src/query/time-investment.ts | 386 ++++++++++++++ packages/http-routes/src/context/services.ts | 2 + .../src/routes/web/global-insight.test.ts | 71 ++- .../src/routes/web/global-insight.ts | 27 +- packages/node-runtime/src/database-manager.ts | 10 +- packages/node-runtime/src/index.ts | 6 + .../adapters/database-manager-adapter.test.ts | 21 +- .../src/services/global-insight/index.ts | 10 + .../src/services/global-insight/paths.ts | 8 + .../time-investment-compute.test.ts | 52 ++ .../global-insight/time-investment-compute.ts | 110 ++++ .../time-investment-facts-cache.ts | 79 +++ .../time-investment-service.test.ts | 76 +++ .../global-insight/time-investment-service.ts | 251 +++++++++ .../time-investment-signature.ts | 18 + .../time-investment-snapshot.ts | 64 +++ .../global-insight/time-investment-types.ts | 27 + .../services/global-insight/worker-entry.ts | 15 + .../services/global-insight/worker-runner.ts | 68 ++- packages/node-runtime/src/services/index.ts | 11 +- packages/shared-types/index.ts | 40 ++ .../src/import/session-runtime.test.ts | 37 ++ .../web-runtime/src/import/session-runtime.ts | 51 +- packages/web-runtime/src/rpc/protocol.ts | 7 +- .../web-runtime/src/worker/controller.test.ts | 29 ++ packages/web-runtime/src/worker/controller.ts | 7 + src/components/charts/EChartLine.vue | 7 +- src/components/common/Sidebar.vue | 5 +- src/i18n/locales/en-US/insight.json | 28 + src/i18n/locales/ja-JP/insight.json | 28 + src/i18n/locales/zh-CN/insight.json | 28 + src/i18n/locales/zh-TW/insight.json | 28 + .../components/AnnualInsightBoard.vue | 5 +- src/pages/insight/annual-summary/index.vue | 6 +- .../InsightCalendarGrid.vue} | 13 +- src/pages/insight/index.vue | 43 +- ...nge.test.ts => insight-time-range.test.ts} | 4 +- ...ry-time-range.ts => insight-time-range.ts} | 19 +- src/pages/insight/time-investment/index.vue | 478 +++++++++++++++++- src/services/data/browser.test.ts | 45 ++ src/services/data/browser.ts | 43 +- src/services/data/fetch.ts | 9 + src/services/data/types.ts | 3 + 49 files changed, 2406 insertions(+), 64 deletions(-) create mode 100644 apps/web-wasm/src/routes.test.ts create mode 100644 packages/core/src/query/__tests__/time-investment.test.ts create mode 100644 packages/core/src/query/time-investment.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-compute.test.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-compute.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-facts-cache.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-service.test.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-service.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-signature.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-snapshot.ts create mode 100644 packages/node-runtime/src/services/global-insight/time-investment-types.ts rename src/pages/insight/{annual-summary/components/AnnualCalendarGrid.vue => components/InsightCalendarGrid.vue} (93%) rename src/pages/insight/{annual-summary-time-range.test.ts => insight-time-range.test.ts} (72%) rename src/pages/insight/{annual-summary-time-range.ts => insight-time-range.ts} (73%) diff --git a/apps/web-wasm/src/App.vue b/apps/web-wasm/src/App.vue index a8c595a5..7a0e71da 100644 --- a/apps/web-wasm/src/App.vue +++ b/apps/web-wasm/src/App.vue @@ -102,7 +102,7 @@ onMounted(() => {