Skip to content

expand parity fixture coverage#513

Merged
flyingrobots merged 3 commits into
mainfrom
codex/v0.0.6-bearing
May 22, 2026
Merged

expand parity fixture coverage#513
flyingrobots merged 3 commits into
mainfrom
codex/v0.0.6-bearing

Conversation

@flyingrobots
Copy link
Copy Markdown
Owner

@flyingrobots flyingrobots commented May 22, 2026

Summary

  • Reset docs/BEARING.md for the v0.0.6 Rust IR parity and module-boundary release lane.
  • Replaced pending v0.0.5 publication wording with the concrete release, tag, workflow, and crates.io evidence.
  • Pulled SOURCE_wesley-core-rs-parity-sentinel.md out of asap into design packet 0013-rust-ir-parity-sentinel.
  • Expanded the Rust L1 fixture corpus with directive-heavy, schema-extension, legacy-alias, and invalid duplicate-directive coverage.
  • Canonicalized the current core Wesley directive aliases in Rust L1 lowering and rejected duplicate canonical directives.

Validation

  • pnpm fixtures:ir
  • cargo fmt --check
  • cargo test -p wesley-core --test lowering_validation
  • cargo xtask docs-check
  • git diff --check
  • pnpm run preflight
  • Pre-push hook: repository preflight and repo Bats smoke suite

Notes

~/git/wesley-postgres was inspected but not edited. It remains active as the PostgreSQL extraction home; local main is ahead of origin/main with .gitignore modified and Cargo.toml/src/ untracked.

Summary by CodeRabbit

  • New Features

    • Added comprehensive test fixtures and validation for schema directives with multiple scenarios (directive-heavy, schema extensions, and legacy directive aliases).
    • Introduced IR parity sentinel design for upcoming release verification.
  • Bug Fixes

    • Fixed duplicate directive handling to properly reject invalid schemas instead of silently overwriting directives.
  • Documentation

    • Updated release verification and publication evidence documentation.
    • Expanded design documentation for schema validation and compiler parity checks.
    • Revised roadmap focusing on IR parity and module boundary enforcement.
  • Tests

    • Added integration tests for directive canonicalization and duplicate detection across multiple schema scenarios.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Warning

Rate limit exceeded

@flyingrobots has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 13 minutes and 35 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 430d77c4-d57c-4be4-ab37-d63d58d3b510

📥 Commits

Reviewing files that changed from the base of the PR and between 483439d and 9789f8e.

📒 Files selected for processing (7)
  • CHANGELOG.md
  • crates/wesley-core/src/adapters/apollo.rs
  • crates/wesley-core/tests/lowering_validation.rs
  • docs/BEARING.md
  • docs/README.md
  • docs/design/0009-rust-core-and-wasm-capability-abi/phase-0-ir-truth-manifest.md
  • docs/design/0013-rust-ir-parity-sentinel/rust-ir-parity-sentinel.md
📝 Walkthrough

Walkthrough

This PR establishes the Rust IR parity foundation for v0.0.6 by implementing directive canonicalization in the Apollo lowering adapter, expanding the fixture corpus with three new test schemas covering directive-heavy, legacy-alias, and schema-extension patterns, and introducing design packet 0013 specifying the parity sentinel verification workflow.

Changes

Rust IR Parity Foundation

Layer / File(s) Summary
Directive Canonicalization and Duplicate Rejection
crates/wesley-core/src/adapters/apollo.rs
Apollo adapter now canonicalizes directive aliases (e.g., table, pk) to Wesley-internal canonical names and rejects duplicate canonical directives with a lowering error instead of last-write-wins behavior.
Lowering Validation Tests for Canonicalization and Duplicates
crates/wesley-core/tests/lowering_validation.rs
New Tokio async tests validate fixture lowering and assert that legacy directive aliases are canonicalized correctly and that duplicate canonical directives fail with expected error messages.
Directive-Heavy Schema Fixture
test/fixtures/ir-parity/directive-heavy-schema.graphql, directive-heavy-schema.l1.json, directive-heavy-schema.l1.hash
Multi-type fixture with extensive @wes_* directive coverage including table mappings, keys/constraints, defaults, and RLS policies across Organization, Account, and AccountEvent types, with canonical L1 IR and hash artifacts.
Legacy-Alias Schema Fixture
test/fixtures/ir-parity/legacy-alias-schema.graphql, legacy-alias-schema.l1.json, legacy-alias-schema.l1.hash
Tenant and Member types using both canonical and legacy-alias directive forms to validate canonicalization during lowering, provided as GraphQL source and canonical L1 IR JSON with hash.
Schema-Extensions Fixture
test/fixtures/ir-parity/schema-extensions-schema.graphql, schema-extensions-schema.l1.json, schema-extensions-schema.l1.hash
Comprehensive fixture covering scalar extensions, interface composition, unions, enum extensions, and input objects with defaults, including User and Team types with timestamps and relationships, provided as GraphQL and canonical L1 IR with hash.
Invalid Fixture for Negative Testing
test/fixtures/ir-parity-invalid/duplicate-directive-alias.graphql
Account type fixture declaring the same directive in both canonical and legacy forms to validate that the lowerer correctly rejects duplicate-directive errors.
Design Packet 0013 and IR Truth Manifest
docs/design/0013-rust-ir-parity-sentinel/rust-ir-parity-sentinel.md, docs/design/0009-rust-core-and-wasm-capability-abi/phase-0-ir-truth-manifest.md, docs/design/README.md
New design document specifying the Rust IR Parity Sentinel comparator contract (fixture inputs, normalized semantic IR comparison, hash verification, failure diagnostics); phase-0 manifest updated with invalid fixture documentation and fixture-hash catalog; design README reference added.
BEARING Roadmap and ASAP Backlog Reframing
docs/BEARING.md, docs/method/backlog/asap/README.md
BEARING reframed around v0.0.6 Rust IR parity and module-boundary enforcement with updated timeline, Parity Sentinel section, module-boundary emphasis, and revised tensions/next-target plan; ASAP backlog shortened to Rust IR parity evidence and domain-empty boundary work.
v0.0.5 Release Evidence and Changelog
docs/method/releases/v0.0.5/verification.md, CHANGELOG.md
v0.0.5 verification section filled with publication evidence (signed tag, GitHub Release, CI runs, crates.io confirmations); CHANGELOG updated with Unreleased entries documenting directive canonicalization, fixture expansion, and bearing refinements.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

enhancement

Poem

🐰 Directives now stand tall and true,
Canonicalized through and through,
With fixtures broad and parity bright,
The Rust compiler takes flight—
No more silent semantic drift in view! 🚀

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 72.73% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The PR description covers the main changes and includes a validation section with testing steps, but omits several required template sections (Why/Rationale, Risk, Backout, EvidenceMap/SourceMap). Complete the PR description by adding Why/Rationale for the parity approach, Risk/mitigation notes, Backout strategy, and any EvidenceMap confirmations if applicable.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: expanding the parity fixture coverage with new test fixtures for directive-heavy schemas, schema extensions, legacy aliases, and invalid cases.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/v0.0.6-bearing

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 22, 2026

🔍 The Case of Pull Request #513

Plain-English Readout

  • Holmes (evidence investigation): Holmes says this change should not ship in its current state. Main reasons: No evidence citations were available for trust analysis; test evidence is incomplete; schema coverage is incomplete.
  • Watson (independent verification): Watson found verification concerns. Most important concern: Low migration risk claimed but schema incomplete.
  • Moriarty (trend forecast): Moriarty sees progress as stalled right now, so forecast confidence is limited.

Suggested next actions

  1. Tighten citations so the report points to exact lines instead of whole files or coarse references.
  2. Resolve Watson’s verification concerns before trusting the Holmes verdict as final.
  3. Treat the readiness forecast as stalled until new evidence or real progress moves the trend again.
  4. Add or strengthen tests for the schema elements and operations HOLMES flagged as weakly proven.
📚 Glossary (what the Holmes terms mean)
  • HOLMES: Wesley’s main evidence investigation. It decides whether the cited proof is strong enough to justify shipping this commit.
  • WATSON: An independent verification pass. It checks Holmes’s citations and score math instead of trusting them blindly.
  • MORIARTY: A readiness forecast over time. It is advisory trend analysis, not the release gate itself.
  • Schema coverage score (SCS): How much of the schema has direct supporting evidence across generated artifacts and cited proof.
  • Test confidence index (TCI): How much test evidence exists for constraints, policies, relationships, and operations.
  • Migration risk index (MRI): How risky the schema change is to roll out. Lower is better.
  • Evidence trust: Whether the report is backed by exact citations, whole-file citations, or coarse references. Weak trust means the claim may be directionally right but not specific enough to trust blindly.
  • Citation quality: A count of exact line-span citations versus whole-file or coarse references.
  • ELEMENTARY: Ready to ship based on the current evidence.
  • REQUIRES INVESTIGATION: More work or review is needed before shipping.
  • YOU SHALL NOT PASS: Do not ship this change in its current state.

🕵️ SHA-lock HOLMES full report (click to expand)

🕵️ SHA-lock HOLMES Investigation

  • Generated: 2026-05-22T09:34:49.112Z
  • Commit SHA: 1e39e50
  • Bundle Version: 2.0.0

⚠️ Evidence valid only for commit 1e39e50

🔍 Executive Deduction

"Watson, after careful examination of the evidence, I deduce..."

Weighted Completion: ░░░░░░░░░░ 0.0%
Scores: SCS 0.0% · TCI 0.0% · MRI 0.0%
Verification Status: 0 claims verified
Citation Quality: 0 exact · 0 whole-file · 0 coarse
Evidence Trust: missing
Ship Verdict: YOU SHALL NOT PASS

🧩 SCS Breakdown

Component Score Coverage
Sql 0.0% 0.00/154.00
Types 0.0% 0.00/154.00
Validation 0.0% 0.00/154.00
Tests 0.0% 0.00/154.00

🧪 TCI Breakdown

Component Score Coverage Note
Unit Constraints 0.0% 0/104 N/A
Unit Rls 0.0% N/A
Integration Relations 0.0% 0/3 N/A
E2e Ops N/A Query operation test tracking not yet implemented

⚠️ MRI Breakdown

Component Risk Share Points Count
Drops 0% 0 0
Renames Without Uid 0% 0 0
Add Not Null Without Default 0% 0 0
Non Concurrent Indexes 0% 0 0

📊 The Weight of Evidence

"Observe, Watson, how not all features carry equal importance..."

Element Weight Status Evidence Strength Deduction

🚪 Security & Performance Gates

"Elementary security measures, Watson..."

Gate Status Evidence Holmes's Ruling
Migration Risk MRI: 0.0% "Trivial risk"
Test Coverage ⚠️ TCI: 0.0% "Theatrical tests!"
Sensitive Fields 0 fields "All secured"
Evidence Quality 0 exact · 0 whole-file · 0 coarse "No evidence citations were available for trust analysis."

📋 The Verdict

YOU SHALL NOT PASS
"Critical evidence is missing! Return to your laboratory!"

Signed and sealed,

  • S. Holmes, Consulting Detective

[END OF INVESTIGATION FOR COMMIT 1e39e50]

🧵 Command Run

  • Run ID: run-mpgq4qzz-n875p9
  • Transmutation: holmes-investigate
  • Command: investigate
  • Status: completed
  • Ledger: /home/runner/work/wesley/wesley/test/fixtures/examples/.wesley-cache/ledger

🩺 Dr. WATSON full report (click to expand)

🩺 Dr. Watson's Independent Verification Report

Medical Examination of Evidence

  • Examination Date: 2026-05-22T09:35:45.861Z
  • Patient SHA: 1e39e50

🔬 Citation Verification

"Let me examine each piece of evidence independently..."

  • Citations Examined: 0
  • Verified: 0 ✅
  • Failed: 0 ❌
  • Unable to Verify: 0
  • Exact Subrange Citations: 0
  • Whole-file Citations: 0
  • Coarse Citations: 0
  • Evidence Trust: missing
  • Trust Note: No evidence citations were available for trust analysis.

Verification Rate: 0.0%

📊 Mathematical Verification

"I shall recalculate Holmes's arithmetic..."

Holmes claimed SCS: 0.0%
Watson calculates: 0.0%
Difference: ✅ Negligible

🔍 Consistency Analysis

"Checking for contradictions in Holmes's deductions..."

⚠️ Low migration risk claimed but schema incomplete

🩺 Dr. Watson's Medical Opinion

VERIFICATION: CONCERNS NOTED ⚠️

"While Holmes's methods are generally sound, I have noted some"
"discrepancies that warrant further investigation. No evidence citations were available for trust analysis."

Respectfully submitted,

  • Dr. J. Watson, M.D.
    Medical Examiner & Verification Specialist

🧵 Command Run

  • Run ID: run-mpgq5br0-q9kk4v
  • Transmutation: watson-verify
  • Command: verify
  • Status: completed
  • Ledger: /home/runner/work/wesley/wesley/test/fixtures/examples/.wesley-cache/ledger

🔮 Professor MORIARTY full report (click to expand)

🧠 Professor Moriarty's Temporal Predictions

The Mathematics of Inevitability

  • Analysis Date: 2026-05-22T09:36:24.165Z

🔮 Current State

SCS: ░░░░░░░░░░ 0.0%
TCI: ░░░░░░░░░░ 0.0%
MRI: 0.0% risk
Evidence Trust: missing

📈 Velocity Analysis

SCS Velocity: +0.00%/day
Git Activity (window): 24h · commits 15 (1 relevant) · ~15.00 commits/day
↳ Magnitude: ~313 relevant LOC/day across ~6.0 files/day
Activity Index: 25 / 100 (PR 0, Window 62)
Blended Velocity: +0.15%/day
Commit Size Burstiness: 0 / 100 (higher = more uneven commit sizes)
⚠️ PLATEAU DETECTED - Low SCS movement and low recent Git activity.

⏰ Completion Predictions

ETA: Cannot predict (insufficient velocity)

"At current velocity, completion is... improbable."

⚠️ Warnings

  • Evidence trust is missing; No evidence citations were available for trust analysis.

🧪 Readiness EXPLAIN

  • SCS ≥ 80% → FAIL ❌ (actual 0.0%)
  • TCI ≥ 70% → FAIL ❌ (actual 0.0%)
  • MRI ≤ 40% → PASS ✅ (actual 0.0%)
  • CI Stability ≥ 90% (branch main) → FAIL ❌ (actual 87% over ~168h)
  • Evidence Trust ≥ moderate → FAIL ❌ (actual missing) — No evidence citations were available for trust analysis.
  • Delivery context (last 168h): 0 issues closed · 4 PRs merged (informational, not gating)

Signals blend: SCS velocity (70%) + Git activity (30%, branch-first). Activity only suppresses false plateaus; it never inflates readiness.

📊 Historical Trajectory

05-22: ░░░░░░░░░░ 0.0%
05-22: ░░░░░░░░░░ 0.0%
05-22: ░░░░░░░░░░ 0.0%

"Every problem becomes elementary when reduced to mathematics"
— Professor Moriarty

🧵 Command Run

  • Run ID: run-mpgq65b7-0832rb
  • Transmutation: moriarty-predict
  • Command: predict
  • Status: completed
  • Ledger: /home/runner/work/wesley/wesley/test/fixtures/examples/.wesley-cache/ledger

Machine-readable reports: holmes-report.json · watson-report.json · moriarty-report.json (see workflow artifacts).


Filed at 221B Repository Street

@flyingrobots flyingrobots marked this pull request as ready for review May 22, 2026 07:16
@flyingrobots flyingrobots changed the title [codex] expand parity fixture coverage expand parity fixture coverage May 22, 2026
Copy link
Copy Markdown
Owner Author

Self-Code Review Findings

@codex please confirm whether you agree with these findings before merge. Review basis: local clean worktree, git fetch origin --prune, then git diff origin/main...HEAD.

Severity File / line Type Evidence Recommended mitigation prompt
High crates/wesley-core/src/adapters/apollo.rs:507 Logical regression / unintended compatibility break The new duplicate check runs for every directive name after canonical_directive_name, not only for Wesley aliases. Valid GraphQL SDL with a repeatable non-Wesley directive now fails: directive @tag(name: String!) repeatable on FIELD_DEFINITION plus @tag(name: "a") @tag(name: "b") exits with Lowering error: Duplicate directive '@tag' in directive. Narrow Rust duplicate-directive rejection so it only rejects canonical collisions for the supported core Wesley directive aliases, or implement explicit repeatable-directive support in L1. Add a regression test proving non-Wesley repeatable directives are either preserved correctly or rejected by a documented unsupported-feature diagnostic rather than by the generic duplicate alias path.
Medium docs/design/0013-rust-ir-parity-sentinel/rust-ir-parity-sentinel.md:49 Design contract gap The packet says the sentinel records and compares legacy JS semantic IR bytes against Rust semantic IR bytes, but the named JS anchor emits a table IR shape with tables, enums, scalars, and relationships (packages/wesley-runtime-node/src/GraphQLAdapter.mjs:148), while Rust L1 fixtures emit types. The packet never defines a projection or equivalence layer, so the next implementation slice has no coherent comparator contract. Revise the parity sentinel packet to define the comparison projection explicitly: either compare only a documented common semantic subset, introduce a JS-to-L1/Rust-to-legacy normalization adapter, or exclude non-overlapping fixtures until a real crosswalk exists. Add playback questions that force the implementation to prove the chosen projection.
Medium docs/BEARING.md:77 Documentation reproducibility / transient local state BEARING.md commits a machine-local path and ephemeral sibling-repo worktree state: ~/git/wesley-postgres has local main ahead of origin/main and uncommitted bootstrap work. That is useful session evidence, but not stable project direction and will become stale immediately. Replace the local path/worktree-status sentence with stable repository-level doctrine: wesley-postgres is the database extraction authority and Wesley should coordinate before changing database-shaped compatibility seams. Move the exact local inspection result to PR notes or session memory instead of committed BEARING text.
Low docs/BEARING.md:108 Planning drift / stale next-action list The Next Target list still tells the next agent to keep v0.0.5 publication evidence complete and expand the L1 fixture corpus, but this branch already does both. After merge, BEARING should point to the remaining next moves, not replay completed work. Update the BEARING next-target list so completed slices are recorded as current evidence, and the remaining active pulls start with implementing the parity sentinel command, defining the IR projection/crosswalk, and pulling domain-empty core boundary enforcement.

Issue count: High 1, Medium 2, Low 1.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
crates/wesley-core/src/adapters/apollo.rs (1)

960-972: ⚡ Quick win

Consider adding a doc comment to explain the canonicalization contract.

The function correctly implements the alias-to-canonical mapping, but a doc comment would clarify the purpose and supported aliases for future maintainers.

📝 Suggested doc comment
+/// Maps legacy Wesley directive aliases to their canonical internal names.
+///
+/// This normalization ensures that directives declared with different aliases
+/// (e.g., `@table`, `@wesley_table`) are recognized as the same directive
+/// and stored under a single canonical key (`wes_table`).
+///
+/// Returns the canonical name if a mapping exists, otherwise returns the input unchanged.
 fn canonical_directive_name(name: &str) -> &str {
     match name {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/wesley-core/src/adapters/apollo.rs` around lines 960 - 972, Add a
concise doc comment for the function canonical_directive_name describing its
contract: that it maps known directive aliases (list the aliases and their
canonical names like "wesley_table"/"table" -> "wes_table",
"wesley_pk"/"pk"/"primaryKey" -> "wes_pk", etc.), that it returns a borrowed
&str of the canonical name (does not allocate), and that unknown names are
returned unchanged; include purpose and examples of expected inputs/outputs so
future maintainers understand supported aliases and return semantics.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/BEARING.md`:
- Around line 77-79: Replace the machine-local path and host-specific branch
state in BEARING.md: remove the literal "`~/git/wesley-postgres`" and the note
"local `main` ahead of `origin/main`" and instead reference the repository by
its remote name or repo URL (e.g., "wesley-postgres" or the remote Git URL) and,
if necessary, add a dated note in release evidence or changelog indicating the
local bootstrap work and its date; update the surrounding sentence that mentions
PostgreSQL/Supabase generation and execution adapters to use the
repository-relative/remote reference and add the date/context note rather than
machine-local state.

---

Nitpick comments:
In `@crates/wesley-core/src/adapters/apollo.rs`:
- Around line 960-972: Add a concise doc comment for the function
canonical_directive_name describing its contract: that it maps known directive
aliases (list the aliases and their canonical names like "wesley_table"/"table"
-> "wes_table", "wesley_pk"/"pk"/"primaryKey" -> "wes_pk", etc.), that it
returns a borrowed &str of the canonical name (does not allocate), and that
unknown names are returned unchanged; include purpose and examples of expected
inputs/outputs so future maintainers understand supported aliases and return
semantics.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 220b721d-b1df-403f-bdc5-7cd03e5c7394

📥 Commits

Reviewing files that changed from the base of the PR and between fa42c71 and 483439d.

📒 Files selected for processing (20)
  • CHANGELOG.md
  • crates/wesley-core/src/adapters/apollo.rs
  • crates/wesley-core/tests/lowering_validation.rs
  • docs/BEARING.md
  • docs/design/0009-rust-core-and-wasm-capability-abi/phase-0-ir-truth-manifest.md
  • docs/design/0013-rust-ir-parity-sentinel/rust-ir-parity-sentinel.md
  • docs/design/README.md
  • docs/method/backlog/asap/README.md
  • docs/method/backlog/asap/SOURCE_wesley-core-rs-parity-sentinel.md
  • docs/method/releases/v0.0.5/verification.md
  • test/fixtures/ir-parity-invalid/duplicate-directive-alias.graphql
  • test/fixtures/ir-parity/directive-heavy-schema.graphql
  • test/fixtures/ir-parity/directive-heavy-schema.l1.hash
  • test/fixtures/ir-parity/directive-heavy-schema.l1.json
  • test/fixtures/ir-parity/legacy-alias-schema.graphql
  • test/fixtures/ir-parity/legacy-alias-schema.l1.hash
  • test/fixtures/ir-parity/legacy-alias-schema.l1.json
  • test/fixtures/ir-parity/schema-extensions-schema.graphql
  • test/fixtures/ir-parity/schema-extensions-schema.l1.hash
  • test/fixtures/ir-parity/schema-extensions-schema.l1.json
💤 Files with no reviewable changes (1)
  • docs/method/backlog/asap/SOURCE_wesley-core-rs-parity-sentinel.md

Comment thread docs/BEARING.md Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 483439d47f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

};

map.insert(dir_name, val);
if map.contains_key(&canonical_name) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restrict duplicate rejection to canonical Wesley aliases

The duplicate guard now checks canonical_name for every directive, so any repeatable non-Wesley directive (for example @tag declared as repeatable) is rejected even though the SDL is valid. I reproduced this by lowering a schema with @tag(name: "a") @tag(name: "b"), which now fails with Lowering error: Duplicate directive '@tag' in directive; this is a compatibility regression introduced by this change because the new logic conflates alias-collision protection with general repeatable-directive handling.

Useful? React with 👍 / 👎.

Comment on lines +50 to +51
- legacy JS semantic IR bytes
- Rust semantic IR bytes
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Define an explicit JS↔Rust IR projection before byte compare

The comparator contract says to compare legacy JS semantic IR bytes directly against Rust semantic IR bytes, but it does not define any crosswalk/projection despite the referenced JS anchor emitting a different IR shape (tables/enums/scalars/relationships in packages/wesley-runtime-node/src/GraphQLAdapter.mjs) than Rust L1 fixtures (types). Without a normalization/projection contract here, a parity sentinel implementation cannot distinguish expected structural differences from real regressions, so the design is currently non-executable as written.

Useful? React with 👍 / 👎.

Comment thread docs/BEARING.md Outdated
Comment on lines +77 to +78
As of this bearing reset, `~/git/wesley-postgres` has local `main` ahead of
`origin/main` with additional uncommitted bootstrap work. That repo remains the
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 Badge Remove machine-local worktree state from project bearing

This commits a local filesystem path and transient sibling-repo branch/dirty-state snapshot into BEARING.md, which will become stale immediately for other contributors and CI contexts and does not provide durable repository direction. Keeping ephemeral workstation state in the canonical bearing doc harms reproducibility of planning context and should be moved to PR/session notes instead.

Useful? React with 👍 / 👎.

@flyingrobots
Copy link
Copy Markdown
Owner Author

Self-Code Review Resolution

@codex follow-up commit 0ac0e645 resolves the four findings from comment 4516291171.

Original severity Resolution
High Narrowed duplicate directive rejection to canonical core Wesley directives only. Repeated custom directives are now preserved as ordered arrays, with regression coverage for repeatable @tag.
Medium Updated design packet 0013 to require a named js-table-vs-rust-table.v0 projection/crosswalk before comparing legacy JS table IR with Rust L1 bytes.
Medium Removed transient local ~/git/wesley-postgres worktree status from committed BEARING text and kept only stable sibling-repo coordination doctrine.
Low Updated BEARING so completed publication-evidence and fixture-expansion slices are current evidence, while the next pulls are the remaining sentinel/projection/domain-boundary work.

Validation after the fix:

  • cargo fmt --check
  • cargo test -p wesley-core --test lowering_validation
  • cargo clippy -p wesley-core --all-targets -- -D warnings
  • cargo xtask docs-check
  • git diff --check
  • repeatable custom directive CLI reproduction now succeeds
  • pnpm run preflight
  • push hook repository preflight

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

Testing

  • cargo fmt --check
  • cargo test -p wesley-core --test lowering_validation
  • pnpm run preflight (passes; shows non-blocking engine warning for local Node v20 vs wanted >=22)

View task →

@flyingrobots
Copy link
Copy Markdown
Owner Author

Self-Code Review Findings

@codex please confirm before merge. Review basis: clean local worktree, git fetch origin --prune, then git diff origin/main...HEAD.

Severity File / line Type Evidence Recommended mitigation prompt
Medium docs/README.md:33 Documentation drift / front-door inconsistency This branch resets docs/BEARING.md and docs/method/backlog/asap/README.md to v0.0.6 Rust IR parity work, but the docs front door still says “The active release center is now the v0.0.5 clean-house packet” and links only 0012-product-leftover-cleanup. Because docs/README.md is an indexed public/front-door doc, this leaves readers with two contradictory active centers. Update docs/README.md Current Center Of Gravity so it states that v0.0.5 clean-house is shipped/historical evidence and v0.0.6 centers on Rust IR parity. Link both the shipped 0012 cleanup packet as background and the active 0013 parity sentinel packet as the current release packet. Run docs-check/preflight after the edit.

Issue count: Medium 1.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0ac0e6450f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/BEARING.md
## Active Gravity

### 1. Clean House Release
### 1. v0.0.6 Rust IR Parity
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update docs front door for v0.0.6 release center

This change declares v0.0.6 as the active gravity in BEARING, but docs/README.md still says the active release center is v0.0.5 (line 33 in that file), so the two top-level navigation docs now contradict each other about what is current. That inconsistency was introduced here and will misroute readers who start from the docs front door; please update docs/README.md in the same change to mark v0.0.5 as shipped/history and point active work to the 0013 parity packet.

Useful? React with 👍 / 👎.

@flyingrobots
Copy link
Copy Markdown
Owner Author

Self-Code Review Resolution

@codex follow-up commit 9789f8e3 resolves the remaining docs/README.md front-door drift from comment 4517010571.

Original severity Resolution
Medium docs/README.md now marks v0.0.5 clean-house / packet 0012 as shipped release context and names v0.0.6 Rust IR parity / packet 0013 as the active release center.

Validation after the fix:

  • cargo xtask docs-check
  • git diff --check
  • pnpm run preflight
  • push hook repository preflight

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

  • I reviewed the trigger and current branch state, and I agree the remaining front-door drift is resolved by commit 9789f8e (docs(readme): align current release center). The docs front door now marks v0.0.5 as shipped context and v0.0.6 Rust IR parity (0013) as the active release center, matching BEARING’s active gravity. docs/README.mdL32-L43 docs/BEARING.mdL13-L21
  • I verified the repository is currently clean (no uncommitted changes), so there was nothing new to commit and no new PR to create from this run. This keeps us compliant with the “no empty/update-less PR action” rule.

Testing

  • git status --short
  • git log -n 5 --oneline
  • sed -n '1,120p' docs/README.md
  • sed -n '1,140p' docs/BEARING.md | sed -n '1,40p'

View task →

@flyingrobots flyingrobots merged commit 9b2c6be into main May 22, 2026
23 checks passed
@flyingrobots flyingrobots deleted the codex/v0.0.6-bearing branch May 22, 2026 09:39
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