Skip to content

fix: add report export and run-aware types to the eject engine surface - #476

Merged
dmealing merged 1 commit into
mainfrom
fm/mo-main-eject-contract-red
Oct 28, 2026
Merged

dmealing merged 1 commit into
mainfrom
fm/mo-main-eject-contract-red

Conversation

@dmealing

Copy link
Copy Markdown
Member

What Changed

  • Adds com.metaobjects.generator.EmitsReportExport and com.metaobjects.generator.RunAware to the engine surface in fixtures/generator-registry-conformance/registry.json for the Java and Kotlin generator entries that declare that list.
  • Covers the report-export merge (PR 471) that left these types referenced by owned eject copies but absent from the declared surface, which failed the depth check in EjectContractTest for codegen-kotlin and maven-plugin.
  • Fixture data only (4 insertions, 0 deletions); no generator or runtime code changes.
Validation

Risk Assessment

✅ Low: Four-line manifest change adds the two exact interfaces named in the failing Java and Kotlin EjectContractTest messages to the engine surface; both exist as public codegen-base types, so the stale-entry checks hold too.

Testing

Drove the reported failure: restoring the pre-fix registry.json makes the depth test fail with the exact messages from the intent, and the committed fixture makes it pass in both maven-plugin and codegen-kotlin. Broader registry-consuming suites (Java codegen-spring/maven-plugin, Kotlin, TS codegen/cli, Python eject) pass. Not a full ci-local run across every port; the scope of regression is the registry consumers plus the full maven-plugin/codegen-spring suites. Result: go.

  • Live validation: ✅ go - 4 of 4 scenarios driven live against the product
Scenario Result Live Evidence
maven-plugin EjectContractTest depth check passes with the fixed engine surface (java-slow failure cleared) ✅ pass live mvn -pl maven-plugin test -Dtest=EjectContractTest: 7 run, 0 failures
codegen-kotlin EjectContractTest depth check passes with the fixed engine surface ✅ pass live mvn -pl codegen-kotlin test -Dtest=EjectContractTest: 7 run, 0 failures
Adversarial: pre-fix registry reproduces the reported red depth failure ✅ pass live base registry.json restored temporarily → depthAnOwnedCopyReferencesOnlyTheEngineSurface:444 fails naming routes [EmitsReportExport, RunAware] and report-export [EmitsReportExport]; HEAD restored afte…
Other registry consumers still agree with the enlarged engine surface (Java/Kotlin/TS/Python) ✅ pass live codegen-spring + codegen-kotlin GeneratorRegistryConformanceTest; bun test codegen-ts golden registry tests + cli catalog tests (76 pass); uv pytest eject conformance (50 pass)

Pipeline

Updates from git push no-mistakes

✅ **Intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 4 of 4 scenarios driven live against the product
Scenario Result Live Evidence
maven-plugin EjectContractTest depth check passes with the fixed engine surface (java-slow failure cleared) ✅ pass live mvn -pl maven-plugin test -Dtest=EjectContractTest: 7 run, 0 failures
codegen-kotlin EjectContractTest depth check passes with the fixed engine surface ✅ pass live mvn -pl codegen-kotlin test -Dtest=EjectContractTest: 7 run, 0 failures
Adversarial: pre-fix registry reproduces the reported red depth failure ✅ pass live base registry.json restored temporarily → depthAnOwnedCopyReferencesOnlyTheEngineSurface:444 fails naming routes [EmitsReportExport, RunAware] and report-export [EmitsReportExport]; HEAD restored afte…
Other registry consumers still agree with the enlarged engine surface (Java/Kotlin/TS/Python) ✅ pass live codegen-spring + codegen-kotlin GeneratorRegistryConformanceTest; bun test codegen-ts golden registry tests + cli catalog tests (76 pass); uv pytest eject conformance (50 pass)
  • scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains
  • git show be3afd9d2:fixtures/generator-registry-conformance/registry.json swapped in, then mvn -o -pl maven-plugin test -Dtest=EjectContractTest#depthAnOwnedCopyReferencesOnlyTheEngineSurface → FAILS with the reported routes/report-export messages (reproduction), then restored HEAD copy
  • mvn -pl maven-plugin test -Dtest=EjectContractTest (server/java) → 7/7 pass
  • mvn -pl codegen-kotlin test -Dtest=EjectContractTest → 7/7 pass (network deps, isolated -Dmaven.repo.local=/tmp)
  • mvn -pl codegen-spring,codegen-kotlin test -Dtest=GeneratorRegistryConformanceTest,EjectContractTest → all pass
  • mvn -pl maven-plugin,codegen-spring test (full suites) → 260 maven-plugin tests and codegen-spring suite green
  • bun test on codegen-ts generator-registry-conformance + api-docs-cross-port-conformance and cli catalog-conformance + skill-catalog-grounding → 76 pass
  • uv run pytest on server/python eject_contract, generator_registry conformance, test_eject_alone → 50 pass
  • Baseline scripts/ci-local.sh --only ts-fast --only ts-unit already green (per context)
  • Worktree clean after run (git status empty)
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@dmealing
dmealing merged commit a3ba823 into main Oct 28, 2026
1 check passed
@dmealing
dmealing deleted the fm/mo-main-eject-contract-red branch October 28, 2026 06:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant