Skip to content

fix(code-review): accept no-impact capsule preparation (0.51.2) - #503

Merged
djm81 merged 3 commits into
devfrom
bugfix/release-502-autofix
Oct 9, 2026
Merged

djm81 merged 3 commits into
devfrom
bugfix/release-502-autofix

Conversation

@djm81

@djm81 djm81 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Registry-only or workflow-only capsule PRs can legitimately resolve to NOT_APPLICABLE/no_governed_impact. Both hosted preparation paths currently reject that outcome before normal review. Accept the exact successful no-impact outcome without acquiring runtimes, then invoke the existing reviewer and preserve its exit.

This is the owner-requested upstream patch for release PR #502, on bugfix/release-502-autofix targeting dev. Code Review advances 0.51.1 → 0.51.2 before release promotion; no changes are committed directly to dev or main.

Refs #502, #460. Reuses active OpenSpec code-review-portable-reviewer-bootstrap.

Changes

  • Accept legitimate no-impact preparation results: candidate JSON must have exact index scope, no-governed-impact diagnostic and empty-object runtimes; a failed preparation command still stops review with its original exit.
  • Allow not-applicable scope in the independent reviewer: require the exact no-impact reason, empty selected paths and zero scope exit; skip only runtime construction and retain resolution cleanup, trusted preload, the ordinary authenticated review and its 0/2/7 exits.
  • Keep malformed/nonempty/unknown no-impact claims blocking and public diagnostics finite. Contracts, deadlines, namespace isolation and no-write proofs are unchanged.
  • Address An assert statement has a side-effect by separating mutation from assertion; give the deliberate failing-hash fixture explicit identity equality.
  • Clarify exceptional cache teardown with an outer exception assertion and inner cache context, retaining pre-entry and bound-handle assertions. The reported unused/unreachable postconditions are actually executed; normal RuntimeError/SystemExit parity tests remain.
  • Non-standard exception raised in special method is intentionally not applied: replacing the custom hash failure with __hash__ = None removes the negative regression for preserving custom errors. Production adapters already distinguish standard unhashable types from real custom hash failures.

Validation

Checked 2026-10-09, Europe/Berlin:

  • Spec precedes tests; original workflow has 11 failures and 103 passing controls. Final actual shell/isolated-controller/runtime fixture tests: 170 passed in 12.50s.
  • Full and SMART each pass 27 mandatory host proofs + 5,181 portable tests, 75 declared skips and 95 subtests (292.00s/291.38s; five existing warnings).
  • Final typing: zero errors/warnings. Lint: 10.00/10. All 28 contracts and normal commit hooks pass. Format, manifest/import/CLI contracts, actionlint, strict OpenSpec and actual staged planned requirements pass.
  • Changed AST/AI-bloat/Radon and pinned Semgrep: zero findings/errors. Existing negative and failure-exit assertions are preserved.
  • All seven checksum/version checks pass on the draft payload. 0.51.2 checksum is d4bcfd8db105c60440b3bdefbe414f1dc148a75c21b8533801d43d888b3d0df4; stale 0.51.1 signature is removed. Existing CI added signature-only child 4feca6048e26c7f8de64c29948066d15683797d4; inspection confirms a single manifest signature line, and all seven strict signature/checksum/version checks pass. No local private key is accessed.
  • Fresh CodeRabbit 0.9.0 review of committed source 7d9b8f54 completed (review_completed) with zero findings across all 13 files. Its signature-only CI child does not change reviewed source. Signed-head CI has been approved and remains pending completion.
  • Local Darwin capsule review is explicitly DEFERRED under existing owner approval. release(code-review): promote 0.51.2 to main #502's current candidate and installed-reviewer failures are the user-approved timeouts, not PASS; no observed exception class accompanies the candidate timeout. Real defects/tests remain blocking.

Integration

After human merge to dev, normal signing/registry publication must produce the signed 0.51.2 artifact. Refresh #502's release version/body against its actual updated head and resolve its fixed threads only then. The separate native #498 must use the next available patch version when rebased; it is not included here. No merge, main publication or OpenSpec archive is performed automatically.

New review correction

CodeRabbit Minor Remove the exact pass-count assertion. is corrected in pushed source head 2da6cbddd8103e7f4f2b61484e541a8a179baa43. A controlled additional constructor case makes the actual child pass 14 cases while the original outer proof fails only on its 13 passed string. Removing that one summary assertion makes the expanded proof pass; restoring the temporary case leaves a one-line final source change, with all 66 original dispatch/constructor/bridge checks and normal hooks passing. Explicit selections, contract assertions, failure exits and the 30-second bound remain unchanged. Signed module bytes are unchanged, so the prepared 0.51.2 version/signature remains valid.

The fresh five-file CLI review was interrupted by connection / WebSocket closed and exited 1 without a completed review. It is not PASS, and it is not retried after work started. Earlier completed zero-finding reviews remain historical evidence; the new source's GitHub review and CI are pending. The release thread stays open until this upstream correction reaches #502.

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: nold-ai/specfact-cli-modules/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 4694dc6a-5260-4972-85ab-98bd25e417f1
📥 Commits

Reviewing files that changed from the base of the PR and between 1b9de54 and 2da6cbd.

📒 Files selected for processing (13)
  • .github/workflows/capsule-customer-execution.yml
  • CHANGELOG.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/TDD_EVIDENCE.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/design.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/requirements-evidence.yaml
  • openspec/changes/code-review-portable-reviewer-bootstrap/specs/review-portable-bootstrap/spec.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/tasks.md
  • packages/specfact-code-review/module-package.yaml
  • tests/host/proof_capsule_deferred_review_ci.py
  • tests/support/capsule_review_fixtures.py
  • tests/unit/specfact_code_review/run/test_reviewer_bootstrap.py
  • tests/unit/specfact_code_review/run/test_target_crosshair.py
  • tests/unit/test_capsule_review_projection.py
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

Included review availability: This review used your included allowance. 2 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: minimum-core-schema-compatibility (3.12)
  • GitHub Check: customer-capsules / capsule-candidate (3.13)
  • GitHub Check: customer-capsules / capsule-candidate (3.12)
  • GitHub Check: customer-capsules / independent signed capsule review
  • GitHub Check: customer-capsules / capsule-candidate (3.11)
🧰 Additional context used
📚 Code guidelines (1)
CLAUDE.md — auto-discovered
📓 Path-based instructions (5)
Validate metadata: name, version, commands, dependencies, and parity with packaged src.

⚙️ CodeRabbit configuration file

Files:

  • packages/specfact-code-review/module-package.yaml
CI: secrets, hatch/verify-modules-signature gates, contract-test alignment, action versions.

⚙️ CodeRabbit configuration file

Files:

  • .github/workflows/capsule-customer-execution.yml
Specification truth: proposal/tasks/spec deltas vs.

⚙️ CodeRabbit configuration file

Files:

  • openspec/changes/code-review-portable-reviewer-bootstrap/design.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/tasks.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/TDD_EVIDENCE.md
  • openspec/changes/code-review-portable-reviewer-bootstrap/specs/review-portable-bootstrap/spec.md
Contract-first and integration tests: migration suites, bundle validation, and flakiness.

⚙️ CodeRabbit configuration file

Files:

  • tests/host/proof_capsule_deferred_review_ci.py
  • tests/unit/specfact_code_review/run/test_target_crosshair.py
  • tests/unit/specfact_code_review/run/test_reviewer_bootstrap.py
  • tests/support/capsule_review_fixtures.py
  • tests/unit/test_capsule_review_projection.py
Preserve the clean-code compliance gate and its category references (naming, kiss, yagni, dry, and solid)

📄 CodeRabbit inference engine (CLAUDE.md)

Files:

  • tests/host/proof_capsule_deferred_review_ci.py
  • tests/unit/specfact_code_review/run/test_target_crosshair.py
  • tests/unit/specfact_code_review/run/test_reviewer_bootstrap.py
  • tests/support/capsule_review_fixtures.py
  • tests/unit/test_capsule_review_projection.py
🪛 ast-grep (0.45.3)
tests/host/proof_capsule_deferred_review_ci.py

[error] 176-176: Command coming from incoming request
Context: subprocess.run(["bash", "-c", step["run"]], env=environment, text=True, capture_output=True, check=False)
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

(subprocess-from-request)


[error] 202-202: Command coming from incoming request
Context: subprocess.run(["bash", "-c", step["run"]], env=environment, text=True, capture_output=True, check=False)
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

(subprocess-from-request)

🔀 Multi-repo context nold-ai/specfact-cli

Linked repositories findings

nold-ai/specfact-cli

  • The CLI’s docs/review workflows consume specfact-code-review from the separate specfact-cli-modules checkout, require the packages/ layout, and authenticate every bundle’s manifest with the trusted core verifier before running parity tests. [::nold-ai/specfact-cli::] .github/workflows/pr-orchestrator.yml:609-631, .github/workflows/docs-review.yml:153-168
  • Core signing only discovers manifests under src/specfact_cli/modules and modules; it does not sign packages/specfact-code-review. The 0.51.2 manifest therefore requires the modules-repository signing/publication flow, not a core-repository signature update. [::nold-ai/specfact-cli::] .github/workflows/sign-modules.yml:277-280, scripts/sign-modules.py:263-267
  • The core contract tooling explicitly requires SPECFACT_DOCS_MODULES_REPO to point to a checkout containing packages/, and then uses that checkout as the module source. The PR must preserve that package path and its generated command metadata. [::nold-ai/specfact-cli::] scripts/check-command-contract.py:58-66
  • Core tests specifically mutate and authenticate packages/specfact-code-review/module-package.yaml, including signature/checksum and missing-manifest cases, confirming that the changed manifest remains part of the cross-repository authentication boundary. [::nold-ai/specfact-cli::] tests/unit/workflows/test_docs_module_authentication.py:73-91
🔇 Additional comments (7)
tests/support/capsule_review_fixtures.py (1)

159-162: LGTM!

Also applies to: 283-295, 299-299, 310-310, 344-348

tests/host/proof_capsule_deferred_review_ci.py (1)

168-180: LGTM!

Also applies to: 183-207

tests/unit/test_capsule_review_projection.py (1)

82-90: LGTM!

Also applies to: 104-113, 219-220, 743-743, 768-770, 782-782, 789-789

openspec/changes/code-review-portable-reviewer-bootstrap/requirements-evidence.yaml (1)

219-232: LGTM!

Also applies to: 234-246

tests/unit/specfact_code_review/run/test_reviewer_bootstrap.py (1)

110-116: LGTM!

tests/unit/specfact_code_review/run/test_target_crosshair.py (1)

269-271: LGTM!

Also applies to: 408-408

packages/specfact-code-review/module-package.yaml (1)

47-47: 🗄️ Data Integrity & Integration

The concern is refuted by the repository signing gates. Approved same-repository PRs run sign-modules.py over changed manifests and require the signing secrets. The subsequent dev/main push runs strict signature verification with --require-signature. A stale signature therefore blocks publication or is replaced before publication. The unsigned draft note describes the pre-signing state and does not establish a release defect.


📝 Summary

Summary

  • Capsule preparation accepts NOT_APPLICABLE only when the report has scope: index, diagnostic: no_governed_impact, and empty runtimes. The preparation command must also succeed; malformed reports and command failures remain blocking.
  • Independent review skips runtime construction only for NOT_APPLICABLE/no_governed_impact with no selected paths and exit code 0. Normal review, cleanup, and review exit codes remain in effect.
  • Regression coverage checks valid no-impact handling, rejection cases, and preservation of review exit codes 0, 2, and 7. The OpenSpec change code-review-portable-reviewer-bootstrap adds the no-impact-release scenario and verification case.
  • packages/specfact-code-review/module-package.yaml advances the module version to 0.51.2 and updates its integrity checksum and signature. This change does not itself establish registry publication or signature verification.
  • CHANGELOG.md records the no-impact release follow-up. No modules.specfact.io or GitHub Pages documentation changes are listed.
  • The inspected changes show no specfact_cli API changes or required cross-repository edits. The module already imports specfact_cli APIs.

Validation status

The PR description reports passing tests and checks, but signed-head CI remains pending. It also reports approved timeouts for the candidate and installed-reviewer checks; those are not passes. Merge, signing, and registry publication remain follow-up steps.

Walkthrough

The capsule workflows now accept validated no-governed-impact outcomes while continuing normal review and cleanup. Tests cover accepted and rejected outcomes and adjust regression checks. The package metadata and release records identify version 0.51.2.

Changes

No-impact capsule review

Layer / File(s) Summary
Validate no-impact preparation
openspec/changes/code-review-portable-reviewer-bootstrap/specs/review-portable-bootstrap/spec.md, .github/workflows/capsule-customer-execution.yml
The candidate workflow accepts NOT_APPLICABLE only for an index-scoped no_governed_impact report with empty runtimes and a successful preparation command. Other outcomes remain blocking.
Continue independent review
.github/workflows/capsule-customer-execution.yml, tests/support/capsule_review_fixtures.py, tests/host/proof_capsule_deferred_review_ci.py, tests/unit/test_capsule_review_projection.py, openspec/changes/code-review-portable-reviewer-bootstrap/requirements-evidence.yaml
Independent review accepts the no-impact result only when no paths were selected and scope resolution exits successfully. Tests cover review exit codes, cleanup, malformed reports, and failed preparation.
Record patch release
CHANGELOG.md, packages/specfact-code-review/module-package.yaml, openspec/changes/code-review-portable-reviewer-bootstrap/*
The changelog and OpenSpec records describe the patch scope and evidence. Package metadata changes from version 0.51.1 to 0.51.2, with updated integrity values.

Test regression corrections

Layer / File(s) Summary
Keep regression checks flexible
tests/unit/specfact_code_review/run/test_reviewer_bootstrap.py, tests/unit/specfact_code_review/run/test_target_crosshair.py, openspec/changes/code-review-portable-reviewer-bootstrap/requirements-evidence.yaml, openspec/changes/code-review-portable-reviewer-bootstrap/TDD_EVIDENCE.md
The subprocess regression no longer requires exactly 13 passing tests. The cache-restoration and hash-failure tests retain their checks, and the evidence records the added-case verification.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant IndependentReviewer
  participant ScopeResolution
  participant InstalledReview
  participant Cleanup
  IndependentReviewer->>ScopeResolution: Resolve review scope
  ScopeResolution-->>IndependentReviewer: NOT_APPLICABLE, no_governed_impact, no paths, exit 0
  IndependentReviewer->>InstalledReview: Run review without preparation
  IndependentReviewer->>Cleanup: Clean up after review
Loading

Merge Risk: ⚪ Minimal · up to 2da6c

The no-impact path retains its selection checks and normal review behavior. No issue identified here needs to block merge; signing and publication remain post-merge steps.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 19 functions across 5 files. (8 skipped: 8… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Title check Passed The title uses the preferred Conventional Commits format and clearly describes the no-impact capsule preparation change.
Description check Passed The description is detailed and directly covers the change, scope, validation evidence, release integrity, signing, integration steps, and known pending checks. It does not reproduce every template he…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 19 functions across 5 files. (8 skipped: 8 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@djm81 djm81 mentioned this pull request Oct 9, 2026
13 of 14 tasks
@djm81
djm81 marked this pull request as ready for review October 9, 2026 07:00
@strix-security

strix-security Bot commented Oct 9, 2026

Copy link
Copy Markdown

Strix is installed on this repository, but we couldn't run this PR security review because this workspace's trial has ended. Add a card to resume code reviews here.

So far, Strix has reviewed 48 pull requests across this workspace.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T07:11:57.162964Z 2da6cbd New commits
🔒 Security Review ✅ Completed 2026-10-09T07:07:48.270478Z 4feca60 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@djm81 djm81 self-assigned this Oct 9, 2026
@djm81 djm81 added bug Something isn't working codebase Specfact codebase related topic labels Oct 9, 2026
@djm81
djm81 merged commit 500dc92 into dev Oct 9, 2026
21 of 25 checks passed
djm81 added a commit that referenced this pull request Oct 9, 2026
# Summary

Promote the current `dev` branch to `main`, releasing
`nold-ai/specfact-code-review` **0.51.2**. Portable reviews now resolve
explicit corresponding tests before fallback, avoid unused pytest setup,
and handle pinned CrossHair constructor signatures, callable pytest
markers and Literal inputs without the reproduced runtime crashes.
Pylint similarity caching is bounded to one invocation.

The release also carries the merged agentic SDLC roadmap, risk-first
workflow guidance and public OpenSpec design/evidence updates. It
preserves incomplete-analysis semantics, contracts, deadlines, isolation
and no-write requirements.

Refs: #499, #501, #503, #504, #494, #500; related capsule work #460 and
#498.

## Scope

- [x] Bundle source changes under `packages/`
- [x] Registry/manifest changes and the signed `0.51.2` registry
artifact
- [x] CI/workflow changes for mandatory host proofs and bounded
preparation/failure diagnostics
- [x] Documentation and OpenSpec/governance changes
- [ ] Signing-tool implementation changes

## Bundle Impact

- `nold-ai/specfact-code-review`: **0.51.0 → 0.51.2**.
- Other bundle versions remain unchanged.
- Core compatibility remains `>=0.55.1,<1.0.0`.
- The separate native capsule PR #498 is not included in this promotion.
Its remaining installed/native acceptance follows reviewer promotion.

## Validation Evidence

Checked 2026-10-09, Europe/Berlin, against release head
`bb57584c6d6ea7154f275a470a85d0c68909812c`, including merged source #503
and normal dev registry publication #504.

### Required local gates

The reviewed source in #503 passed format, type/lint, 28 contracts,
normal hooks, clean-code/Semgrep, workflow/manifests/imports, planned
requirements and strict OpenSpec validation. Full and SMART each passed
**27 mandatory host proofs and 5,181 portable tests**, with 75 declared
skips and 95 subtests. The final test-only correction passed all 66
affected dispatch/constructor/bridge checks and normal hooks. Its
affected source and tests, and the complete `packages/` tree, are
byte-for-byte unchanged on this release head, so these gates were not
repeated.

The exact #503 head `2da6cbdd` received an automatic GitHub CodeRabbit
review with no actionable comments across 13 files; some CI context was
skipped for timeout. Its latest CLI review failed with a WebSocket
connection error and is not clean evidence. The release head's fresh CI
and reviews must be assessed separately.

### Signature + version integrity

- [x] All seven manifests pass `verify-modules-signature.py
--require-signature --payload-from-filesystem --enforce-version-bump
--version-check-base origin/main` using the public signing key. The
signed #503 source's entire `packages/` tree matches the current release
head; the new head's module signature CI also passes.
- [x] Code Review version is bumped to `0.51.2`; its signed payload
checksum is
`d4bcfd8db105c60440b3bdefbe414f1dc148a75c21b8533801d43d888b3d0df4`.
- [x] Registry archive and checksum sidecar match SHA-256
`dca4ffc795c54835d437f005c50613b5b42cb401d6937261b4508a92c5fd67b7`; the
packaged signed manifest matches `dev`.
- [x] Registry publication PR #504 is merged. Registry latest version is
0.51.2; archive/sidecar hash and packaged signed manifest match the
actual release head. Current dev publication and module signature checks
pass.

## CI and Branch Protection

Fresh release-head checks and reviews are pending. Preserve the existing
required checks and evaluate actual defect/test failures normally.
Previously reported inline review threads are resolved after
independently verifying their fixes or invalid-finding dispositions. The
independently reproduced P2 same-stem correspondence finding is
explicitly deferred by the owner to the [open #498
annotation](#498 (comment));
the #502 thread is resolved as transferred, not fixed. This does not
claim green CI.

The user approved the known reviewer timeout failures as explicit
exceptions pending promotion. On signed source head `88411209`,
[ordinary CP312
job](https://github.com/nold-ai/specfact-cli-modules/actions/runs/37862310996/job/113601873468)
successfully prepared both runtime descriptors and reported
`crosshair_timeout_observed` with no exception class observed. The
independent installed `0.51.0` reviewer again timed out. These remain
incomplete evidence, never PASS; the exception does not waive crashes,
defects or test failures. No deadline, contract selection or assurance
rule is weakened.

## Docs / Pages

- [x] Existing changelog, agent rules, SDLC roadmap and public change
artifacts are included from merged dev work.
- [x] No Pages workflow changes are included.

## Checklist

- [x] Release diff and bundle/registry impact reviewed.
- [x] All changes are existing merged dev changes; no extra
implementation commits are introduced by this PR.
- [x] Rollout: human merge to `main` promotes the corrected reviewer;
then #498 can continue with the updated reviewer and ordinary
installed/native evidence. Apple Developer ID/notarization remains
separate; accepted first-run trust warnings do not change this release's
assurance claims.

This PR requests promotion only. Creating it does not merge or publish
`main` automatically.

## Integrated release fixes

[Patch PR
#503](#503) merged
to `dev`, followed by normal registry publication
[#504](#504). Both
are now included in this release head. The patch fixes both valid
no-impact preparation rejections, separates mutation from an assertion,
adds identity equality to the deliberate hash-failure fixture, and
removes the brittle exact child pass-count assertion. Normal review,
cleanup, failure exits, contracts, selections, deadlines and
negative-test behavior remain intact. All previously reported fixed
review threads are resolved. The same-stem test-selection fix is not
included in #503. The owner approved deferral to the [open #498
follow-up](#498 (comment)),
with full project test-suite runs for release acceptance during deferral
and correction required before #498 final installed/native acceptance.

Historical #503 CI passed all three CP311/CP312/CP313 customer
candidates. Its independent installed 0.51.0 reviewer returned an
unclassified structured FAIL with findings and Pylint UNKNOWN, and
quality jobs stopped at prerequisites before tools/tests. Individual
private findings were not retained. That failure remains unwaived and is
not established as a timeout; fresh release CI must be assessed on its
own evidence. Known, independently classified timeout failures retain
only the user-approved incomplete-evidence exception.

Native #498 remains separate and must select the next available patch
version when rebased.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working codebase Specfact codebase related topic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant