Entity model: investors (grid) vs people (contacts); fix double-count (0.1.0:48)
Per Grant's clarification of the real data model: - Investor entities come from the fundraising grid, one per row, all labeled "investor" (drops the confusing lp/organization split). Grid is source of truth. - People come ONLY from the contacts table. The grid's contacts (fundraising_ contacts) are matched to a contact-person and recorded as member_of links to their investor, instead of creating duplicate person entities. This fixes the ~doubled people count (people now ≈ contacts, not contacts + grid contacts). - System Status cards: Investors / People (resolved) / Contacts in CRM / Grid contacts, so resolved-vs-source is visible at a glance. Verified on synthetic: people == contacts count (no double-count); multi-contact investors preserved via member_of. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,8 +12,9 @@ export const PACKAGE_TITLE = 'Ten31 Database'
|
||||
// * 0.1.0:44 (Phase-0 ingest + MCP server in image; build-index action)
|
||||
// * 0.1.0:45 (Phase-1 thesis system; dual approval; merge review; in-app index)
|
||||
// * 0.1.0:46 (packaging fix: ship full backend so migrations run + endpoints work)
|
||||
// * Current: 0.1.0:47 (soft-delete instead of hard-delete; source-count diagnostics)
|
||||
export const PACKAGE_VERSION = '0.1.0:47'
|
||||
// * 0.1.0:47 (soft-delete instead of hard-delete; source-count diagnostics)
|
||||
// * Current: 0.1.0:48 (entity model: investors vs people; fixes double-count)
|
||||
export const PACKAGE_VERSION = '0.1.0:48'
|
||||
|
||||
export const DATA_MOUNT_PATH = '/data'
|
||||
export const WEB_PORT = 8080
|
||||
|
||||
@@ -8,8 +8,9 @@ import { v_0_1_0_44 } from './v0.1.0.44'
|
||||
import { v_0_1_0_45 } from './v0.1.0.45'
|
||||
import { v_0_1_0_46 } from './v0.1.0.46'
|
||||
import { v_0_1_0_47 } from './v0.1.0.47'
|
||||
import { v_0_1_0_48 } from './v0.1.0.48'
|
||||
|
||||
export const versionGraph = VersionGraph.of({
|
||||
current: v_0_1_0_47,
|
||||
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44, v_0_1_0_45, v_0_1_0_46],
|
||||
current: v_0_1_0_48,
|
||||
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44, v_0_1_0_45, v_0_1_0_46, v_0_1_0_47],
|
||||
})
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import { VersionInfo } from '@start9labs/start-sdk'
|
||||
|
||||
// Entity-model fix. Investor entities now come from the fundraising grid (one per
|
||||
// row, all labeled "investor"; the confusing organization/lp split is gone), and
|
||||
// PEOPLE come only from the contacts table. The grid's contacts are recorded as
|
||||
// membership links to their investor rather than as duplicate people, which fixes
|
||||
// the roughly-doubled people count. Rebuild the search index after upgrading.
|
||||
export const v_0_1_0_48 = VersionInfo.of({
|
||||
version: '0.1.0:48',
|
||||
releaseNotes: {
|
||||
en_US: [
|
||||
'Fixes the entity counts: investors now come from the fundraising grid and',
|
||||
'people come from the contacts table, with the grid\'s contacts treated as',
|
||||
'memberships instead of duplicate people. Run Rebuild search index after',
|
||||
'upgrading to refresh the numbers.',
|
||||
].join(' '),
|
||||
},
|
||||
migrations: { up: async () => {}, down: async () => {} },
|
||||
})
|
||||
Reference in New Issue
Block a user