From 0c706332da3d0af6ffecc1a8a7d798b77f98dda2 Mon Sep 17 00:00:00 2001 From: AdaWorldAPI Date: Sun, 21 Jun 2026 12:31:57 +0200 Subject: [PATCH] =?UTF-8?q?docs(plan):=20codex=20P2=20fixup=20=E2=80=94=20?= =?UTF-8?q?point=20W0.2=20at=20the=20real=20emitter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Codex P2 on PR #88: the original W0.2 referenced `op_codegen_projection::render_classes_schema(&ogar_canonical_classes())`, but neither symbol exists. `op-codegen-projection` lives in openproject-nexgen-rs (the OpenProject port-side bridge from the triples path), not in OGAR — `rm-store` shouldn't pull from a sibling port's crate. Fix: redirect W0.2 to the actual exported OGAR emitter `ogar_adapter_surrealql::emit_surrealql_ddl(&[Class])` (hand-written formatter, already round-trip-pinned). Plus a called-out OGAR prerequisite (~1 day, blocks W0.2): add `ogar_vocab::all_promoted_classes() -> Vec` so rm-store has a single call site to drive the emitter. Sibling alternative spelled out if the enumerator slips: hand-list the calls in rm-store with a class_ids::ALL-walking drift test. --- docs/integration/REDMINE-INTEGRATION-PLAN.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/integration/REDMINE-INTEGRATION-PLAN.md b/docs/integration/REDMINE-INTEGRATION-PLAN.md index 0a86b3f..899249a 100644 --- a/docs/integration/REDMINE-INTEGRATION-PLAN.md +++ b/docs/integration/REDMINE-INTEGRATION-PLAN.md @@ -78,9 +78,17 @@ parallel after this lands. - New crate `redmine-rs/crates/rm-store`. - Connect to SurrealDB (in-memory for dev, file-backed for prod). - Apply the schema emitted by - `op_codegen_projection::render_classes_schema(&ogar_canonical_classes())` - at startup. (The schema generator is already a sibling crate; we just - drive it.) + [`ogar_adapter_surrealql::emit_surrealql_ddl(&[Class])`](../../crates/ogar-adapter-surrealql/src/lib.rs) + at startup — the existing exported emitter in OGAR, hand-written + formatter, round-trip-pinned. +- **Prerequisite (OGAR-side, ~1 day, blocks W0.2):** add + `pub fn all_promoted_classes() -> Vec` to `ogar-vocab` that + returns every promoted class fn's output (`project()`, + `project_work_item()`, …) in `class_ids::ALL` order. Today the 26 + project-arm `Class` constructors exist but aren't enumerable as a + slice; `rm-store` needs one call site to drive `emit_surrealql_ddl`. + Sibling alternative if the enumerator slips: hand-list the calls in + `rm-store` and pin order via a `class_ids::ALL`-walking test. - `CRUD` trait: `find_one`, `find_all`, `find_by_filter`, `insert`, `update`, `delete`. Generic over a `T: PortSpec`-derived row type. - Seed fixture: at minimum 3 Projects, 10 Issues, 5 TimeEntries —