fix(core): expose standard origin error contract - #164
seonghobae wants to merge 8 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthrough
ChangesOriginError 표준 오류 계약
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to This localized change adds standard error support and deterministic messages for existing origin-validation failures without changing parsing behavior. No actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 2 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head3172883992f1fd5d456a40e1a5b826fc67dc02c6. -
Head SHA:
3172883992f1fd5d456a40e1a5b826fc67dc02c6 -
Workflow run: 32163664883
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (3 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (3 files)"]
R1 --> V1["required checks"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (3 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (3 files)"]
R1 --> V1["required checks"]
|
1cf12fa to
262d5a8
Compare
|
Scheduled review-feedback autofix for this PR head.
|
Buyer/API gap
Origin::parseis a foundational trust-boundary API, but protected main does not yet expose publicOriginErrorthrough Rust's standardDisplay/std::error::Errorcontract. This PR adds exhaustive credential-freeDisplay,std::error::Error, and focused regression coverage without changing origin parsing or authority semantics.Test-first lineage
The original test-only head established the semantic RED:
OriginErrordid not implement the standard error contract. Production then added deterministic messages for every existing variant andsource() == None; formatting-only follow-up preserved canonical rustfmt. Historical checks/reviews remain predecessor evidence only.Current protected-main topology — 2026-09-24 KST
Protected
mainis exact87c4daa1830bac5a5228b6036752ad5633232085. Current exact head isd8bdd5100442d1ef349f7cab0b47a05ff52b7328, open / Draft / mergeable.This head is a normal non-force two-parent reconciliation commit. Its first parent is the previous #164 head
12438c3a9171f44c1b18219478a2ec367cb78696; its second parent is current protected main87c4daa.... The merge tree starts from protected main and reapplies only the three validated #164 product blobs.Fresh compare from current protected main is 8 ahead / 0 behind, with merge base exactly
87c4daa.... The effective PR delta remains exactly three paths:CHANGELOG.md;crates/originweave-core/src/lib.rs; andcrates/originweave-core/tests/origin_error_contract.rs.There is no effective
.github/**, dependency, browser/network/policy authority, secret, ruleset, or coverage-denominator delta. The protected CI/MV3 lifecycle generation was adopted rather than overwritten.Exact-current Ready-transition RED
After reconciliation, this exact head was marked Ready specifically to reacquire hosted exact-head evidence. The transition reproduced the protected #286 lifecycle defect tracked by #279:
35913199175was created forpull_requeston exact fix(core): expose standard origin error contract #164 headd8bdd510.../ base87c4daa..., but the workflow concluded skipped;Rust contracts107358002627:completed/skipped,steps=[], no runner;Production coverage107358037478:completed/skipped,steps=[], no runner;35913199170also concluded skipped on the same Ready transition;35913199336, Semgrep35913199456, and CodeQL35913199730materialized separately, but they do not substitute for native repository/coverage execution.Exact reproduction is recorded in #279 comment
5802045567. This is a workflow lifecycle/control-plane RED, not an OriginError source/test failure and not runner starvation: the native jobs were skipped before runner admission.The PR has therefore been returned to Draft. Do not manufacture a source-neutral
synchronizewake, blindly rerun the skipped generation, edit.github/**in this product lane, or weaken Draft/closed guards. #279 remains the canonical workflow-owner repair path.Pre-reconciliation CI/MV3/Security/SAST successes on
12438c3a...are historical evidence only and do not transfer tod8bdd510....Acceptance
The ancestry defect is repaired: this head is now based on current protected main with the intended three-path delta intact. The remaining native verification blocker is the exercised Ready-transition defect under #279. After the canonical workflow owner repairs and normally integrates that lifecycle path, this unchanged product lineage must obtain fresh executable repository contracts, formatting, tests, strict Clippy, rustdoc, exact 100% production coverage, security/SAST/CodeQL, and applicable review/ruleset acceptance.
Keep Draft until that owner prerequisite is satisfied. No self-approval, bypass, force push, destructive rebase, workflow/ruleset/secret mutation, gate weakening, protected-main merge, tag, release, or publication is authorized here.