Component DAG

This page records the component DAG ruled in ADR-0112, ADR-0113, and ADR-0114 (Accepted 2026-10-19). The repo design is plans/component-fixes-2026-10-19.md. Do not edit those ADRs.

This is the code view. The runtime view (2026-10-22, ADR-0123 Proposed) lists the host services that run these components, why each exists, and what depends on it.

Cut-over status

Cut-over has not happened. origin/master at 0faca7a7 — prod deployed 2026-10-19T11:41:39Z — is a backup-and-deploy of the in-progress tree (ADR-0113), not the cut-over. Cut-over remains: integration passes the fleet tier, old src/orchestrata_ultimate trees removed, one merge, /opt/orchestrata ships from that tree.

Components

component import name depends on state
contracts orchestrata_contracts none landed
governance orchestrata_governance contracts landed
knowledge_graph orchestrata_kg contracts landed
kernel orchestrata_kernel contracts, governance, knowledge_graph landed
session orchestrata_session contracts, knowledge_graph, governance landed
volks orchestrata_volks contracts, kernel, knowledge_graph, governance landed
gateway orchestrata_gateway contracts, kernel, session, knowledge_graph, governance landed
tools orchestrata_tools contracts, knowledge_graph, governance landed
integration orchestrata kernel, gateway, volks, session, knowledge_graph, governance, tools INT-01 landed (SPEC-125 PROPOSED delta + release scaffold: pyproject with 8 component pins + 9 frozen-lock constraint pins, console scripts orchestrata/session, mint-token N4-gated; 3 import-free inits; committed uv.lock). INT-02..25 not started
plugin none gateway, tools, integration packaging track, not a realize component

Notes:

Graph sync

Prod orchkg (database orchkg, main instance_2 at 10.53.1.123:7687) has the component packages. Measured 2026-10-20T01:59:52Z:

check count
Module nodes for orchestrata-ultimate 5232
modules whose file path contains orchestrata_contracts 403
Spec 71
Requirement 639
RequirementItem 5786
TRACES_TO from this project's code 15366

Package module counts from the same sync: contracts 403, governance 254, knowledge_graph 161, kernel 411, session 59, volks 382, gateway 73, tools 28. The on-disk knowledge_graph root is packages/knowledge_graph/src, not the packages/kg/src path named in ADR-0114.

The first full sync died on a SYNC-replica RPC timeout after Class and Function nodes. The resume did not clear. It wrote Method, Parameter, and the edges. 24 method rows collapsed on a duplicate qualified name (31706 nodes from 31730 rows). Component module paths are src.orchestrata_<import>… because each declared root's directory is named src. That is not the packages.<name>.src… prefix ADR-0114's mechanism sentence expected. file_path still carries packages/<name>/src/…. The Accepted ADR body was not edited.

Ontology

The ratified architecture ontology already has Component and DEPENDS_ON. This page does not add a node type. Graph ids are orchestrata-ultimate:<name>.

Ontology seed — DONE and verified on prod orchkg (session 272, 2026-10-19/20)

scripts/seed_component_dag.py (commit ae2c23736, writer-only: upsert_component + link_depends_on, tests 6/6 green on the test fleet, coverage 98%) was run by the coordinator against prod orchkg (neo4j://10.53.1.160:7691, database orchkg). Result: {'components': 10, 'depends_on': 30} — one routing write-handshake flake auto-retried by the driver, the known ADR-0109-era behaviour.

Verified read-only per-instance (direct bolt, main 10.53.1.123:7687 AND replica 10.53.1.128:7687 agree):

check result
the ten DAG rows exist with the ruled required flags (integration/plugin false, rest true) and boundary = import root 10/10
orchestrata-ultimate:tools DEPENDS_ON contracts, governance, knowledge_graph — and NOT kernel (ADR-0112 shape) exact
project-scoped DEPENDS_ON edges 30
project-scoped Component nodes 50 (5 legacy capitalised service rows + the 10 DAG rows + ~35 pre-existing namespace rows, below)

Two anomalies measured during the run — one resolved to NOT-a-defect before any cleanup, both recorded:

  1. Routing-URI reads are divergent. The same neo4j://10.53.1.160:7691 endpoint served one connection the fresh state (stats: Component 50, DEPENDS_ON 30) and another connection an ANCIENT view (5 project rows, 0 DEPENDS_ON — predating the 2026-10-20 sync). Direct per-instance bolt reads are consistent and are the only trustworthy verification path after a prod write. SHOW INSTANCES is unreachable from this host's port map (.160:7687 refused; via routing it errors "Coordinator was not initialized as coordinator port").
  2. The per-namespace Component rows are a traced runtime feature, NOT pollution — deletion REFUSED. ~35 project-scoped Component rows (:agents, :core, :cli, :orchestrata_ast, ...) looked like namespace pollution; Mohamed granted cleanup permission on that framing (2026-10-19). Producer-first measurement found the source: kernel/pipeline_kg.py::sync_components_to_kg() (@traces REQ-008-006) MERGEs one Component per depth-0 AST Package + PART_OF Project so the live (:Volk)-[:OWNS]->(:Component) work-context traversals resolve (SPEC-008 FR-002 gap #2 — the stats' PART_OF = 42 is its edge count). Deleting them would regress a traced requirement, so the permission was NOT exercised; the corrected finding superseded it. Seven DAG ids (kernel, session, gateway, governance, knowledge_graph, tools, plugin) pre-existed as package Components and the seed's MERGE unified the design row onto the runtime node — ruling 2 of the ratified ontology ("the design-time Component IS the runtime-ownership Component") working as designed; responsibility/required/boundary coexist with type='package'/path/PART_OF without overwrite.

The five legacy capitalised rows from scripts/sync_architecture_to_graph.py's self-described-architecture table (re-synced by the SessionStart hook) were CORRECTED on prod orchkg 2026-10-20 (P-ARCHSYNC, repo commit 7e23e5315, Mohamed: "we are not using neo4j models get confused make this clear" + delete/cleanup permission): the Neo4j row is now orchgraph (the Memgraph 3.11 fork HA cluster; the Neo4j node was retired via the script's new scoped --retire-legacy flag with its pre-delete snapshot printed), Kernel required flipped false → true (Hard Rule 7), and the gRPC phrasing (rows + the gRPC kernel is out-of-process Constraint) became the cxpt direct transport (the old Constraint retired, the renamed one re-bound with its 3 edges). Census verified per-instance, main == replica: project Components 50 / Constraints 6 before AND after (each +1 new, −1 retired); Neo4j and the old Constraint return 0 rows. The capitalised service vocabulary (VizInt UI, Gateway, Kernel, Redis, orchgraph) still coexists with the lowercase DAG + per-package rows — unifying the three vocabularies remains a cut-over-era decision, recorded as such.