simon824 opened a new pull request, #380:
URL: https://github.com/apache/hugegraph-ai/pull/380
### Purpose of the PR
Introduce **Ontogeny** — a self-improving operational ontology platform — as
proposed and discussed in #376. This PR lands **Step 1 (M0, structure merge)**
of the three-step merge plan; Steps 2–3 (GraphRAG functional merge,
ML/graph-compute deep merge) will follow as normal feature PRs.
What Ontogeny is, in one line: it models an enterprise's business nouns
(objects, properties, links) and verbs (actions, functions, policies) as
declarative, Git-native YAML, compiles them into strongly-typed tables and a
HugeGraph graph projection, and serves them to applications, analytics and AI
agents through one governed API (five-stage Action runtime, Cedar-subset policy
with default-deny + markings, immutable audit, transactional outbox, and a
governed RSI self-evolution loop).
### Main Changes
- **The Ontogeny platform** (all additions, nothing upstream touched):
- `server/ontogeny/` — the Python kernel: 11-kind DSL + validators,
registry & compiled snapshots, sync engine, five-stage action runtime,
Cedar-subset policy engine, query engine, sandboxed functions, RSI loop
(telemetry + evolve), graph projection, agent session governance (MCP surface
at `/mcp`), extension host
- `extensions/` — pluggable implementations: llm-ollama (LLM gateway),
graph-hugegraph (projection store), agent-builtin-llm (reference agent engine)
- `web/` — React 19 + TypeScript console (bilingual EN/zh-CN)
- `domains/product-manufacturing/` — showcase domain package (also the
test golden package)
- `docs/zh/` + `docs/en/` — bilingual architecture & usage docs with UI
screenshots; merge plan at `docs/hugegraph-ai-merge-plan.md`
- **M0 structure merge** (per the merge plan §1): upstream `main`
(`9922568`) merged via subtree into `third_party/`, preserving upstream history
and authorship — **zero code changes, zero import coupling, zero dependency
wiring**; repo-root machinery files that only function at a repository root
(`.asf.yaml`, `.github/`, `.gitattributes`, `.licenserc.yaml`,
`.pre-commit-config.yaml`) were pruned from the vendored copy and its unique
`.gitignore` entries were merged (scoped) into the root `.gitignore`; the full
curation record is in `THIRD_PARTY.md`
- **Provenance & compliance**: `THIRD_PARTY.md` (source, merged point, sync
policy), upstream attribution line appended to `NOTICE`, vendored `LICENSE`
kept under `third_party/`
- **Engineering gates**: `third_party` added to ruff `extend-exclude`; new
`third-party-smoke` CI workflow (presence + LICENSE + zero import coupling); no
changes to `pyproject.toml` dependencies or `uv.lock`
### Merge-plan status & what is NOT here yet
| Step | Status |
|---|---|
| 1. Structure merge (M0) | **this PR** |
| 2. Functional merge (M1/M2) — `[graphai]` extra, GraphRAG Q&A
(`ask_graph`), text-to-ontology proposals | follow-up PR |
| 3. Deep merge (M3/M4) — ML semantic search, graph compute, RSI ↔ graph
signals | TODO |
Ground rules held across all steps: no second governance channel (LLM calls
go through the platform gateway; writes go through the Action runtime),
anti-corruption layer (`server/` never imports `third_party/` packages), graph
queries return IDs assembled back through the engine so markings always apply.
### Verifies this pull request
- [x] backend `pytest` green (456 tests); frontend `vitest` green (241) +
build; E2E 8/8
- [x] zero import coupling: `git grep -n "hugegraph_llm|hugegraph_ml" --
server extensions tests` → zero hits
- [x] `uv.lock` carries zero new dependencies (diff empty vs `main`)
- [x] `git merge-tree` dry-run: merging `ontogeny` into `main` is
conflict-free
- [x] `THIRD_PARTY.md` / `NOTICE` / vendored `LICENSE` in place;
`third-party-smoke` workflow green
Related to #376
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]