fix(core): expose standard action-intent digest error contract - #160
fix(core): expose standard action-intent digest error contract#160seonghobae wants to merge 9 commits into
Conversation
📝 WalkthroughWalkthrough
Changes다이제스트 오류 계약
Estimated code review effort: 1 (사소함) | ~5분 Merge Risk: 🔵 Low · up to Malformed action-intent digest errors currently omit the required 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 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 |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
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 head1cdc7cf4cad53804da5abd15a99244ce341d05ae. -
Head SHA:
1cdc7cf4cad53804da5abd15a99244ce341d05ae -
Workflow run: 32167741751
-
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"]
|
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 head1cdc7cf4cad53804da5abd15a99244ce341d05ae. -
Head SHA:
1cdc7cf4cad53804da5abd15a99244ce341d05ae -
Workflow run: 32171245359
-
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"]
9b4cd55 to
28c6d18
Compare
Dismissed as stale automated coverage review: exact current head 5bc3ed5 has terminal successful Rust contracts and Production coverage, with no unresolved review threads. This dismissal does not supply or bypass the required independent approval.
seonghobae
left a comment
There was a problem hiding this comment.
Current-head repair finding on 5bc3ed516ff516bcdd737ee8291222d4ca4701b4: fresh compare against protected main@4ed08bfa7c063fc7f2ef9278ee8d281887b8296b is 8 ahead / 1 behind with merge base c789b802fc98a8d7fd8c09d9327f36828054d2a1. The current CHANGELOG delta also drops protected-main’s existing Credential-free verified TCP evidence ... entry while adding the intended action-intent-digest diagnostic wording. Treat this as a restack/overlap repair, not as reason to close valid work: reconstruct non-destructively from current main, preserve current-main CHANGELOG content byte-for-byte except the intended action-intent diagnostic addition, then obtain fresh exact-head checks. No force-push or predecessor GREEN transfer.
Adopt protected main non-destructively while preserving the action-intent digest Display/Error contract and retaining the protected-main verified TCP changelog entry. Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae
left a comment
There was a problem hiding this comment.
Current-head reconstruction review: exact a5e317e1a544728b2eb823f5651888783e2d3a97 now has protected main@4ed08bfa... as an ancestor with 0 behind. The previous overlap defect is repaired: protected-main Credential-free verified TCP evidence ... remains present while the feature keeps the ActionIntentDigestError Display/Error contract and focused regression. Current semantic scope is three paths and contains no .github/** delta. Exact-head CI/security workflows are newly materialized and still queued, so this is a parent-lineage/source repair verification only, not GREEN or merge-ready evidence.
Buyer/reliability gap
originweave-core::ActionIntentDigestErroris a public validation failure type, but protected main does not yet ship the standard RustDisplay/std::error::Errorcontract for it. Downstream adapters would otherwise have to special-case malformed action-intent digest failures instead of retaining typed context through ordinary Rust error chains.Test-first / review lineage
Exact test-only
1ca00abd4f1a62775306c7116c3c70ef721b04c6required deterministic credential-free text forInvalidFormatand emptyError::source()before production support existed. Production added exhaustiveDisplayplus source-freestd::error::Error. A later review caught the syntax-significantsha256:colon omission; implementation and focused regression retain the exactsha256:plus 64 lowercase hexadecimal-digit shape.Protected-main overlap repair
Protected
mainis exact4ed08bfa7c063fc7f2ef9278ee8d281887b8296bthrough #284. Review5115892007identified that predecessor head5bc3ed516ff516bcdd737ee8291222d4ca4701b4was one protected-main commit behind and itsCHANGELOG.mddelta dropped the already protectedCredential-free verified TCP evidence ...entry while adding the intended action-intent diagnostic wording.Current commit
a5e317e1a544728b2eb823f5651888783e2d3a97repairs that overlap non-destructively. It preserves predecessor #160 as first parent, adopts exact protected main as second parent, rebuilds the tree from protected main plus only the three feature paths, and advances the branch withforce=false. The protected verified-TCP changelog entry is retained; the only semantic changelog change is the intended standard-error wording (digest→evidence-digest, action-intent-digest). The reconstructed file also has a terminal newline; no feature or authority semantics depend on that formatting normalization.Fresh compare from protected main is 9 ahead / 0 behind with merge base exactly
4ed08bfa...and exactly three semantic paths:CHANGELOG.md,crates/originweave-core/src/lib.rs, andcrates/originweave-core/tests/action_intent_digest_error_contract.rs. No.github/**, dependency, browser/network authority, policy decision, secret, ruleset, coverage denominator, or release mutation is present.Exact-current evidence
Current exact head is
a5e317e1a544728b2eb823f5651888783e2d3a97, open, Draft, and parent-current. Fresh exact-head workflows have materialized but are non-terminal:33903967884: queued;33903968027: queued;33903967886: queued;33903967972: queued; and33903967905: queued.No predecessor GREEN or review transfers to this reconstructed head. Keep Draft until repository contracts, strict Rust checks/rustdoc, exact owned-production coverage, applicable security checks, and current review evidence are terminal on this unchanged SHA.
Scope boundary
This implements only the standard diagnostic contract for malformed action-intent digests. It changes no digest syntax, policy decision semantics, action authority, secret handling, browser execution, workflow, persistence, or release behavior.
Protected-main
AGENTS.mdand live GitHub governance remain authoritative. This scheduled writer does not merge, self-approve, alter workflows/rulesets/secrets, force-push, destructively rebase, weaken checks, tag, release, or publish.