feat(redmine-canon): close the bridge — 26/26 convergence via engine-walk#3
Merged
Merged
Conversation
…walk Re-runs the OGAR producer through extract_app_with (OGAR#75, consuming ruff#28) so OpenProject's modules/* engines are harvested too. What changed: - fork_convergence.json bumped to schema "fork-convergence/2" — the new extractor includes modules/*/app/models for OpenProject (681 -> 922 lifted classes). - billable_work_entry (0x0103, the first cross-domain bridge — the same concept Odoo's account.analytic.line lands on in the commerce arm) now carries OpenProject's `TimeEntry` (modules/costs/app/models) alongside Redmine's `TimeEntry`. - shared_concepts 25 -> 26: every canonical concept Redmine contributes is now also contributed by OpenProject. Total convergence. - redmine.ogar.json provenance string updated to reflect the new extractor path (extract_app_with, engine-walking). Tests: - billable_work_entry_documents_the_modular_extraction_gap flipped to billable_work_entry_bridge_is_complete_both_forks: asserts the bridge is shared and both forks ship `TimeEntry`. - every_redmine_concept_has_an_openproject_witness pins the total convergence: no concept with a Redmine witness lacks an OP witness. - lower bound for shared concepts: 25 -> 26. - README: 25/26 -> all 26 shared, billable_work_entry row added with identical Redmine/OP names; gap note replaced with an explanation of where OP's TimeEntry sits and how the engine-walk closed it. cargo test 11/11; clippy clean; fmt clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Closes the loop on the OGAR canonical extraction. After ruff#28 (engine walk) + OGAR#75 (
extract_app_with), re-runs the producer through the engine-walking path so OpenProject'smodules/*engines are harvested too.The headline
26 / 26 concepts shared by both forks.
Every canonical concept the Redmine corpus contributes is now also contributed by OpenProject. No Redmine-only promoted concept remains.
What changed
fork_convergence.jsonbumped tofork-convergence/2— extractor now walksmodules/*/app/modelsfor OpenProject (681 → 922 lifted classes).billable_work_entry(0x0103, the first cross-domain bridge — the concept Odoo'saccount.analytic.linelands on in the commerce arm) now carries OpenProject'sTimeEntry(frommodules/costs/app/models) alongside Redmine'sTimeEntry.shared_concepts25 → 26.redmine.ogar.jsonprovenance string updated to reflect the engine-walk extractor.Tests
billable_work_entry_documents_the_modular_extraction_gap(the gap-pinning test from PR feat(redmine-canon): cross-fork convergence proof (Redmine ↔ OpenProject) #1) flipped tobillable_work_entry_bridge_is_complete_both_forks: asserts both forks shipTimeEntrylifting onto the bridge.every_redmine_concept_has_an_openproject_witnesspins total convergence — no concept with a Redmine witness lacks an OP witness.both_forks_mint_the_same_id_for_shared_conceptslower bound 25 → 26.-D warnings); fmt clean. README updated with the closed bridge row and the engine-walk explanation.