mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-28 14:59:47 +00:00
Revert "fix(health): count 'entity' pages in graph health metrics (#2639)"
This reverts commit 8fc93c8fac.
This commit is contained in:
@@ -5236,7 +5236,7 @@ export class PGLiteEngine implements BrainEngine {
|
|||||||
// dashboard, v0.10.3 metrics give entity-page-level granularity.
|
// dashboard, v0.10.3 metrics give entity-page-level granularity.
|
||||||
const { rows: [h] } = await this.db.query(`
|
const { rows: [h] } = await this.db.query(`
|
||||||
WITH entity_pages AS (
|
WITH entity_pages AS (
|
||||||
SELECT id, slug FROM pages WHERE type IN ('entity', 'person', 'company')
|
SELECT id, slug FROM pages WHERE type IN ('person', 'company')
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
(SELECT count(*) FROM pages) as page_count,
|
(SELECT count(*) FROM pages) as page_count,
|
||||||
@@ -5265,7 +5265,7 @@ export class PGLiteEngine implements BrainEngine {
|
|||||||
SELECT p.slug,
|
SELECT p.slug,
|
||||||
(SELECT count(*) FROM links l WHERE l.from_page_id = p.id OR l.to_page_id = p.id)::int as link_count
|
(SELECT count(*) FROM links l WHERE l.from_page_id = p.id OR l.to_page_id = p.id)::int as link_count
|
||||||
FROM pages p
|
FROM pages p
|
||||||
WHERE p.type IN ('entity', 'person', 'company')
|
WHERE p.type IN ('person', 'company')
|
||||||
ORDER BY link_count DESC
|
ORDER BY link_count DESC
|
||||||
LIMIT 5
|
LIMIT 5
|
||||||
`);
|
`);
|
||||||
|
|||||||
@@ -5346,7 +5346,7 @@ export class PostgresEngine implements BrainEngine {
|
|||||||
// dashboard health.
|
// dashboard health.
|
||||||
const [h] = await sql`
|
const [h] = await sql`
|
||||||
WITH entity_pages AS (
|
WITH entity_pages AS (
|
||||||
SELECT id, slug FROM pages WHERE type IN ('entity', 'person', 'company')
|
SELECT id, slug FROM pages WHERE type IN ('person', 'company')
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
(SELECT count(*) FROM pages) as page_count,
|
(SELECT count(*) FROM pages) as page_count,
|
||||||
@@ -5372,7 +5372,7 @@ export class PostgresEngine implements BrainEngine {
|
|||||||
SELECT p.slug,
|
SELECT p.slug,
|
||||||
(SELECT count(*) FROM links l WHERE l.from_page_id = p.id OR l.to_page_id = p.id)::int as link_count
|
(SELECT count(*) FROM links l WHERE l.from_page_id = p.id OR l.to_page_id = p.id)::int as link_count
|
||||||
FROM pages p
|
FROM pages p
|
||||||
WHERE p.type IN ('entity', 'person', 'company')
|
WHERE p.type IN ('person', 'company')
|
||||||
ORDER BY link_count DESC
|
ORDER BY link_count DESC
|
||||||
LIMIT 5
|
LIMIT 5
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -1264,7 +1264,6 @@ describe('PGLiteEngine: getHealth graph metrics', () => {
|
|||||||
await engine.putPage('people/alice', { ...testPage, type: 'person', title: 'Alice' });
|
await engine.putPage('people/alice', { ...testPage, type: 'person', title: 'Alice' });
|
||||||
await engine.putPage('people/bob', { ...testPage, type: 'person', title: 'Bob' });
|
await engine.putPage('people/bob', { ...testPage, type: 'person', title: 'Bob' });
|
||||||
await engine.putPage('companies/acme', { ...testPage, type: 'company', title: 'Acme' });
|
await engine.putPage('companies/acme', { ...testPage, type: 'company', title: 'Acme' });
|
||||||
await engine.putPage('entities/project-x', { ...testPage, type: 'entity', title: 'Project X' });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('link_coverage = 0 when no links exist', async () => {
|
test('link_coverage = 0 when no links exist', async () => {
|
||||||
@@ -1273,17 +1272,17 @@ describe('PGLiteEngine: getHealth graph metrics', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('link_coverage = % of entity pages with >= 1 inbound link', async () => {
|
test('link_coverage = % of entity pages with >= 1 inbound link', async () => {
|
||||||
// Acme gets 1 inbound link (from Alice), Alice/Bob/Reddit get 0 inbound.
|
// Acme gets 1 inbound link (from Alice), Alice/Bob get 0 inbound.
|
||||||
// 1 of 4 entity pages has inbound links -> 25%.
|
// 1 of 3 entity pages has inbound links -> 33%.
|
||||||
await engine.addLink('people/alice', 'companies/acme', '', 'works_at');
|
await engine.addLink('people/alice', 'companies/acme', '', 'works_at');
|
||||||
const h = await engine.getHealth();
|
const h = await engine.getHealth();
|
||||||
expect(h.link_coverage).toBeCloseTo(1 / 4, 2);
|
expect(h.link_coverage).toBeCloseTo(1 / 3, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('timeline_coverage = % with >= 1 timeline entry', async () => {
|
test('timeline_coverage = % with >= 1 timeline entry', async () => {
|
||||||
await engine.addTimelineEntry('people/alice', { date: '2026-01-15', summary: 'Joined' });
|
await engine.addTimelineEntry('people/alice', { date: '2026-01-15', summary: 'Joined' });
|
||||||
const h = await engine.getHealth();
|
const h = await engine.getHealth();
|
||||||
expect(h.timeline_coverage).toBeCloseTo(1 / 4, 2);
|
expect(h.timeline_coverage).toBeCloseTo(1 / 3, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('most_connected lists top entities by link count', async () => {
|
test('most_connected lists top entities by link count', async () => {
|
||||||
@@ -1296,14 +1295,14 @@ describe('PGLiteEngine: getHealth graph metrics', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('orphan_pages: pages with neither inbound nor outbound links', async () => {
|
test('orphan_pages: pages with neither inbound nor outbound links', async () => {
|
||||||
// All 4 pages start with no links. Expect 4 orphans.
|
// All 3 pages start with no links. Expect 3 orphans.
|
||||||
const h = await engine.getHealth();
|
const h = await engine.getHealth();
|
||||||
expect(h.orphan_pages).toBe(4);
|
expect(h.orphan_pages).toBe(3);
|
||||||
|
|
||||||
// Add alice -> acme. Alice has outbound, acme has inbound, Bob and Reddit are orphan.
|
// Add alice -> acme. Alice has outbound, acme has inbound, only Bob is orphan.
|
||||||
await engine.addLink('people/alice', 'companies/acme', '', 'works_at');
|
await engine.addLink('people/alice', 'companies/acme', '', 'works_at');
|
||||||
const h2 = await engine.getHealth();
|
const h2 = await engine.getHealth();
|
||||||
expect(h2.orphan_pages).toBe(2);
|
expect(h2.orphan_pages).toBe(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user