Skip to content

chore(op-canon): drop Member/Membership drift pin after OGAR #113 merged#59

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/op-canon-drop-membership-pin
Jun 23, 2026
Merged

chore(op-canon): drop Member/Membership drift pin after OGAR #113 merged#59
AdaWorldAPI merged 1 commit into
mainfrom
claude/op-canon-drop-membership-pin

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

Closes the chain: OGAR #113 (merged) added ("Member", PROJECT_MEMBERSHIP) to OPENPROJECT_ALIASES alongside the existing Membership. The pinned drift test I planted in #56 was deliberately self-flipping (asserting class_id_of("Member") == None) so it'd fail the moment OGAR aligned the alias to the corpus name. That trigger fired; this is the drop.

// before — self-flipping pin (would fail now)
assert_eq!(class_id_of("Member"), None,
    "if this is now Some(_), OGAR aligned the alias — drop this pin");

// after — successor positive assertion (the convergence the pin set up)
assert_eq!(class_id_of("Member"),     Some(PROJECT_MEMBERSHIP));
assert_eq!(class_id_of("Membership"), Some(PROJECT_MEMBERSHIP));

The new test member_and_membership_both_resolve_after_ogar_113 pins that:

  • Member resolves (OGAR #113 — canonical, matches the OpenProject corpus + Redmine)
  • Membership still resolves (deprecated synonym kept for backcompat)
  • Both equal each other → no vocab drift between OP corpus and port

The overlap drift guard (port_pull_agrees_with_the_snapshot) now covers Member too — no silent skip on that name anymore.

Scope

  • Lockfile: cargo update -p ogar-vocab → OGAR main post-#113 (991450a). No other dep changes.
  • One file: crates/op-canon/src/app.rs — replaces 1 test (the pin) with 1 test (the positive successor); the test count is unchanged.

Build

Toolchain 1.95. cargo test -p op-canon19 unit + 5 doctests pass. cargo fmt --check + cargo clippy --all-targets -- -D warnings clean.

Cross-refs


Generated by Claude Code

OGAR PR #113 (merged) added `("Member", PROJECT_MEMBERSHIP)` to
OPENPROJECT_ALIASES alongside the existing `Membership` alias. The
`port_and_snapshot_membership_vocab_mismatch_is_known` test I pinned in
#56 was deliberately self-flipping: it asserted `class_id_of("Member") ==
None` so it'd fail the moment OGAR aligned the alias to the corpus name —
forcing the next session to come back and drop the pin. That trigger
fired; this is that drop.

Replaces the pin with the successor positive assertion
`member_and_membership_both_resolve_after_ogar_113`:

  - `class_id_of("Member")`     → Some(PROJECT_MEMBERSHIP)  (OGAR #113)
  - `class_id_of("Membership")` → Some(PROJECT_MEMBERSHIP)  (kept synonym)
  - both equal each other → no vocab drift between OP corpus + port

The overlap drift guard (`port_pull_agrees_with_the_snapshot`) now
covers `Member` too — no silent skip on that name anymore.

Lockfile: `cargo update -p ogar-vocab` → OGAR main @ 991450a (post-#113).
cargo +1.95 test -p op-canon → 19 unit + 5 doctests pass (was 19+5; same
count — same number of tests, just the membership one renamed to its
positive successor). fmt + clippy --all-targets -- -D warnings clean.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@AdaWorldAPI AdaWorldAPI merged commit 7e1c04e into main Jun 23, 2026
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.

2 participants