Repository navigation
test(hub): rebuild openalex fixture with summary and ontology module objects - #1757
Conversation
…objects Rebuild the openalex/openalex Hub fixture through the public facade (#1745, part of #1732): - `generate_hub_fixture --rebuild-source` rebuilds `openalex-source` deterministically from fixed UUIDs: research metadata, one adopted ontology module, advisory activation profile. - The generator emits the Project summary object and a per-module package object, advertises them through the manifest `summary` and `ontology` fields, and validates summary binding and module resolution. - New CLI integration tests gate fixture drift, render the Project page facts from the checked-in artifacts alone, and prove descriptors do not depend on the object location base; `gf clone` is exercised against the checked-in fixture. - Regenerated facade verification receipts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: CurateLabs/graphforge/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Closes #1745. Part of #1732. Builds on #1747 (discovery contract) and #1754 (summary derivation and module resolution).
What
generate_hub_fixture --rebuild-sourcerebuildstests/fixtures/hub/openalex-sourcethrough the public facade in a temporary durable project. It uses fixed UUIDs and the confirmed synthetic values: title "OpenAlex", license "CC0-1.0", declared corpus size of 1000 nodes and 2500 relationships, public/open access, one modulehttps://openalex.org/ontology/works@2026.01adopted through the multi-module API, and an advisory activation profile. It swaps the tree atomically, and two runs produce identical bytes.summarize_verified_portable_v2) and a per-module package from the exact-composition selection, which is component-selective. Both are digest-addressed objects. The manifest gainssummaryandontology, andfixture.jsonrecords their digests.bind_summaryto succeed, the summary bytes to hash tosummary.object_digest, and the module object to resolve throughresolve_discovered_ontology_moduleto exactly the advertised identity.tests/fixtures/hub/README.mdcovers the new objects and the rebuild steps.tests/fixtures/portable-v2/README.mdnotes that receipts are compared by value. The discovery README now says whatresearch_presentmeans.Acceptance evidence (#1745)
openalex/openalexcome from the checked-ingenerated/v1artifacts alone, with no hand-entered metadatacrates/graphforge-cli/tests/hub_fixture.rs::project_page_facts_come_from_the_checked_in_artifacts_alonesummary/ontologydescriptors unchangedhub_fixture.rs::summary_and_descriptors_survive_a_different_object_location_base; lib testsummary_and_descriptors_do_not_depend_on_the_object_location_basegf clonestill succeeds against the regenerated manifest and refshub_clone::tests::clone_succeeds_against_the_checked_in_hub_fixture: exactly three requests (refs, manifest, Project package), then reopens and reads the title and licensehub_fixture.rs::checked_in_fixture_has_no_drift, plus the existing lib testchecked_in_hub_fixture_is_exact_rust_outputrebuilt_source_is_deterministic_and_matches_the_checked_in_treeVerification
Review notes
package_digestdepends on the source by design (ADR 0051). Making fresh-root import deterministic belongs in a separate storage follow-up.PortableV2ExactIdentityis re-exported fromgraphforge-apiso the CLI can build the exact-composition selection without reaching intographforge-core. It is a type, so the method-surface gate doesn't change.generator_source_digesthashes all ofhub_fixture_artifacts.rs, so any edit to that file requires--update.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.