Repository navigation
Fill in Phase 1 rollout-note placeholders after 48h soak #448
Description
Phase 1 rollout-note placeholder fill-in (post-soak)
Self-reminder for Tom. Phase 1 of the knowledge graph (#381) shipped via PR #442. The rollout note
docs/superpowers/done/2026-06-19-knowledge-graph-phase1-shipped.mdwas committed with 9<!-- FILL IN POST-SOAK -->placeholders. They get filled after a 48h DEV soak withKNOWLEDGE_GRAPH_ENABLED=true.
Soak window
- Flag flipped: 2026-06-19 17:27:10 -04:00 (= 21:27:10 UTC)
- Method:
cf set-env tutorials-srv KNOWLEDGE_GRAPH_ENABLED true && cf restart tutorials-srv - Caveat: This is
cf set-env, notmtaext. Next MTA redeploy will silently drop the flag back tofalseunlessdeploy/dev.mtaextis also patched. See feedback_cf_set_env_drops_on_redeploy.
- Method:
- Soak ends: 2026-06-21 21:27 UTC (~48h later)
- Sunday
consolidate-concepts-job(47 3 * * 0) runs Sun 03:47 UTC = ~28h in - Two nightly
extract-concepts-jobruns (13 2 * * *) at Sat 02:13 UTC + Sun 02:13 UTC
- Sunday
Pre-soak baseline (capture BEFORE filling)
Before this issue closes, snapshot the BEFORE-state for the post-soak delta:
-- Concept tables row counts
SELECT TABLE_NAME, RECORD_COUNT, DISK_SIZE
FROM "PUBLIC"."M_TABLES"
WHERE TABLE_NAME LIKE 'COM_SAP_DEVELOPERS_IMS_CONCEPT%'
OR TABLE_NAME = 'COM_SAP_DEVELOPERS_IMS_GRAPHMETADATA'
OR TABLE_NAME = 'COM_SAP_DEVELOPERS_IMS_TUTORIALCONCEPTLINKS'
OR TABLE_NAME = 'COM_SAP_DEVELOPERS_IMS_CONCEPTEDGES';
-- HDI total disk
SELECT SUM(DISK_SIZE) AS bytes_used
FROM "PUBLIC"."M_TABLES"
WHERE SCHEMA_NAME = (SELECT CURRENT_SCHEMA FROM DUMMY);What needs filling
The 9 sections in docs/superpowers/done/2026-06-19-knowledge-graph-phase1-shipped.md:
-
Concept-registry counts (status breakdown)
SELECT status, COUNT(*) FROM "COM_SAP_DEVELOPERS_IMS_CONCEPTS" GROUP BY status;
-
Graph projection metrics — read
GraphMetadatasingleton (UUID00000000-0000-0000-0000-000000000001)SELECT lastBuiltAt, lastBuildDurationMs, conceptCount, edgeCount, teachesCount, requiresCount, relatedToCount, extendsCount, partOfCount, taggedWithCount, aboutProductCount, inCategoryCount, coCompletedWithCount FROM "COM_SAP_DEVELOPERS_IMS_GRAPHMETADATA" WHERE ID = '00000000-0000-0000-0000-000000000001';
-
Manual UX review of 10 tutorial OPs — qualitative notes on sidebar quality (no SQL — eyeballed). Pick 10 representative tutorials from different missions; check that the 4 sidebar sections (key concepts, related, prerequisites, what to learn next) render sensibly.
-
Telemetry baseline — events since flip
SELECT eventName, COUNT(*) AS n FROM "COM_SAP_DEVELOPERS_IMS_UIEVENT" WHERE eventName LIKE 'kg.%' AND createdAt >= '2026-06-19T21:27:10Z' GROUP BY eventName ORDER BY n DESC;
-
Cron health — confirm
extract-concepts-jobandconsolidate-concepts-jobran without errorsSELECT jobName, status, startedAt, durationMs, errorMessage FROM "COM_SAP_DEVELOPERS_IMS_JOBEXECUTIONLOG" WHERE jobName IN ('extract-concepts-job', 'consolidate-concepts-job') AND startedAt >= '2026-06-19T21:27:10Z' ORDER BY startedAt DESC;
-
HTTP health — smoke-test 200/304 on a few
/graph/neighborhood?slug=...paths via the approuter (authenticated). Manually browse 3-5 tutorials and DevTools-network-inspect for 200 + non-empty response. -
HANA usage delta — re-run the pre-soak baseline queries above and compute the delta.
-
Follow-up issues opened — list any new issues filed during soak (this one #TBD will be cited; Research: move runtime-tunable env vars to a DB-backed admin UI #444 already exists).
-
Lessons captured — anything that surprised you during the 48h that's worth a memory or CLAUDE.md note. E.g. cron-timing variance, unexpected predicate counts, sidebar latency observations.
After filling
Open a small PR that updates docs/superpowers/done/2026-06-19-knowledge-graph-phase1-shipped.md and merges to main. Close this issue when the rollout note has no <!-- FILL IN POST-SOAK --> markers remaining.
Activity
jung-thomas commentedon Jun 19, 2026
BEFORE-baseline captured (2026-06-19 21:54 UTC, ~27min after flip)
GraphMetadata singleton hasn't been created yet — it's lazily inserted by the consolidator's first run. That's also expected.
No KG cron firings yet — verified via:
Section 5 SQL correction
The original section-5 query referenced
COM_SAP_DEVELOPERS_IMS_JOBEXECUTIONLOG— that table doesn't exist. The actual schema isPipelineLogwithpipelineType='SCHEDULED_JOB'and the job name inMETADATAJSON ({jobName: 'extractConcepts'}). Replace section-5 SQL with:Cron lock-names confirmed in srv/jobs/scheduler.js:188-199:
extractConcepts— daily at 02:13 UTCconsolidateConcepts— weekly Sun at 03:47 UTCfix(deploy): bake KNOWLEDGE_GRAPH_ENABLED=true into dev.mtaext
fix(deploy): bake KNOWLEDGE_GRAPH_ENABLED=true into dev.mtaext
fix(deploy): bake KNOWLEDGE_GRAPH_ENABLED=true into dev.mtaext (#449)
docs(kg): fill in Phase 1 rollout-note placeholders post-48h soak (#527)
fix(kg): bootstrap named graph before CLEAR in graphRebuild (#529)
feat(kg): add predicate-count breakdown to GraphMetadata (#526)
feat(kg): add predicate-count breakdown to GraphMetadata (#526)
feat(kg): add predicate-count breakdown to GraphMetadata (#526) (#530)