Skip to content

Wave-32 C08: expand cross-language parity coverage - #267

Merged
KooshaPari merged 1 commit into
mainfrom
feat/sl-w32-c08-parity-expand
Jul 14, 2026
Merged

Wave-32 C08: expand cross-language parity coverage#267
KooshaPari merged 1 commit into
mainfrom
feat/sl-w32-c08-parity-expand

Conversation

@KooshaPari

Copy link
Copy Markdown
Owner

Summary

  • Add a thin OKF structural-invariant harness in scripts/cross-language-parity-check.ps1 that compares shared v1.0 core shape (entity types, relation endpoints, provenance) across Python / TypeScript / Go matrix fixtures.
  • Extend docs/ops/cross-language-parity.md + EVAL_SCOPE note; keep Harbor N/A; SelfCheck/CI still hermetic and blocking.

Test plan

  • pwsh ./scripts/cross-language-parity-check.ps1 -SelfCheck
  • cargo test --test cross_language_parity
  • CI cross-language parity SelfCheck job green on PR

Add a thin OKF structural-invariant harness that compares shared v1.0 core
shape across Python/TypeScript/Go matrix fixtures; extend SSOT docs and SelfCheck.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@KooshaPari, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 845b9224-f8ed-4b4c-a2bf-c599f069a145

📥 Commits

Reviewing files that changed from the base of the PR and between f8a4642 and 285745c.

📒 Files selected for processing (5)
  • .github/workflows/eval-compression.yml
  • docs/EVAL_SCOPE.md
  • docs/ops/cross-language-parity.md
  • scripts/cross-language-parity-check.ps1
  • tests/cross_language_parity.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/sl-w32-c08-parity-expand
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch feat/sl-w32-c08-parity-expand

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.

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@KooshaPari
KooshaPari merged commit 08ba363 into main Jul 14, 2026
52 of 53 checks passed
}

# Fingerprint = sorted intersection of present types with the shared required core.
$corePresent = @($requiredSharedEntityTypes | Where-Object { $typeSet.Contains($_) } | Sort-Object)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SUGGESTION: Cross-language fingerprint is redundant with the per-fixture required-type checks.

The fingerprint is the sorted intersection of the 6 required shared types, and Assert-OkfStructuralInvariants already forces every fixture to contain all 6 (lines 147-151). So the uniqueness assertion at lines 265-268 can only fail when a per-fixture check has already thrown. The documented guarantee "Sorted shared-core type set is identical across Python / TypeScript / Go" is therefore effectively vacuous — it cannot catch a real cross-language divergence (e.g. a language dropping a shared core type would be caught per-fixture, not cross-language).

To make this a genuine cross-language invariant, fingerprint the actual entity-type set per language (or at least the present shared-core types joined in fixture order rather than a fixed constant set) and compare those, or narrow the doc claim to state the check only confirms the shared core is present in each. As written, the "cross-language" portion adds no independent assurance.

if ($null -eq $rel.type -or ($allowedRelationTypes -notcontains [string]$rel.type)) {
throw "$Language fixture: relation type '$($rel.type)' not in OKF v1.0 set."
}
if ($null -eq $rel.provenance -or [string]$rel.provenance.source_id -ne $Stem) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SUGGESTION: Relation provenance is mandatory here, but the SSOT table only says "relation provenance.source_id matches".

This throws if any relation lacks a provenance block (or has provenance without source_id), which is stricter than the doc implies. If relation provenance is genuinely required by OKF v1.0, the docs/ops/cross-language-parity.md "Relations" row should say so explicitly (e.g. "provenance present and source_id matches") so the harness contract and the SSOT agree. Otherwise, relax this to only validate source_id when provenance exists.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

@kilo-code-bot

kilo-code-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown

Code Review Summary

Status: 2 Issues Found | Recommendation: Address before merge (non-blocking)

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 2
Issue Details (click to expand)

SUGGESTION

File Line Issue
scripts/cross-language-parity-check.ps1 177 Cross-language fingerprint is redundant with per-fixture required-type checks; the uniqueness assertion adds no independent cross-language guarantee
scripts/cross-language-parity-check.ps1 171 Relation provenance is mandatory in the harness, stricter than the SSOT table ("relation provenance.source_id matches") implies; doc/harness contract mismatch
Files Reviewed (5 files)
  • .github/workflows/eval-compression.yml - 0 issues (comment-only wording update)
  • docs/EVAL_SCOPE.md - 0 issues (doc wording)
  • docs/ops/cross-language-parity.md - 0 issues (doc wording/table)
  • scripts/cross-language-parity-check.ps1 - 2 suggestions
  • tests/cross_language_parity.rs - 0 issues (assertion update)

Notes

The structural-invariant harness is hermetic, well-structured, and matches the fixtures in the corpus (all three matrix fixtures carry okf=1.0, the shared core entity types, resolvable relation endpoints, and aligned provenance). No compilation, clippy, test, or security violations. Both findings are design/strictness observations, not blocking defects.

Fix these issues in Kilo Cloud


Reviewed by hy3:free · Input: 77.6K · Output: 7.2K · Cached: 180.3K

@KooshaPari
KooshaPari deleted the feat/sl-w32-c08-parity-expand branch August 12, 2026 08:59
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