c7b74a2704
Communications tab (search/query roadmap items 1 & 2): - Fix the investor dropdown: the facet only listed grid investors, so it came back empty whenever email matched a classic contact or org domain (no grid id — the common case). It now mirrors the email list, resolving each link to a typed identity (fund:/org:/contact:/addr:) with precedence grid -> org -> contact -> address; investor_id accepts the typed key (bare id = fund: for back-compat) and an unknown prefix matches nothing. - Add a date-range filter and a click-to-expand full-body view (GET /api/email/detail, admin, soft-delete-gated; body_text only, never raw remote HTML). - Add a "Search content" mode: GET /api/email/search wraps the ingest hybrid_search over the Qdrant email index (doc_type=email), hydrated and soft-delete-filtered against SQLite (canonical), 503 if Spark/Qdrant down. Daily digest: - Settings -> Admin builds a digest over a chosen window (last 24h or since a date) as an in-app preview before sending (POST /api/admin/digest/preview), so the local-Spark summarizer can be verified on demand even on a quiet day. Manual send uses the same window; neither advances the daily cursor, so a preview never suppresses the scheduled digest. Code-only, migrations no-op. 22/22 backend tests, render-smoke pass.
25 lines
1.4 KiB
TypeScript
25 lines
1.4 KiB
TypeScript
import { VersionInfo } from '@start9labs/start-sdk'
|
|
|
|
// Email search/query + windowed digest preview. Code-only, no schema change (migrations no-ops):
|
|
// * Communications tab: fixed the investor dropdown (was empty whenever email matched a
|
|
// classic contact / org domain rather than a grid investor) — the facet now mirrors the
|
|
// list with typed keys (fund:/org:/contact:); added a date-range filter and a click-to-
|
|
// expand full-body view (GET /api/email/detail), and a semantic "Search content" mode over
|
|
// indexed email bodies (GET /api/email/search -> ingest hybrid_search, soft-delete-filtered).
|
|
// * Daily digest: Settings -> Admin now builds a digest over a chosen window (last 24h or
|
|
// since a date) as an in-app preview before sending (POST /api/admin/digest/preview), and
|
|
// the manual send uses the same window. Exercises the real local-Spark summarizer; neither
|
|
// touches the daily schedule cursor.
|
|
export const v_0_1_0_83 = VersionInfo.of({
|
|
version: '0.1.0:83',
|
|
releaseNotes: {
|
|
en_US: [
|
|
'Communications: the investor dropdown now lists every matched relationship (not just',
|
|
'grid investors), plus a date-range filter, a full-body view, and a semantic content',
|
|
'search over email bodies. Daily Digest: preview a digest over any window before sending.',
|
|
'No data changes.',
|
|
].join(' '),
|
|
},
|
|
migrations: { up: async () => {}, down: async () => {} },
|
|
})
|