Skip to content

Evaluate compiler-produced conjunctive input guards within runtime limits - #914

Merged
flyingrobots merged 5 commits into
mainfrom
fix/pure-predicate-evaluation
Oct 19, 2026
Merged

flyingrobots merged 5 commits into
mainfrom
fix/pure-predicate-evaluation

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

A public compiler/verifier-accepted flat-text package failed pure runtime decoding because its conjunctive input guard was encoded as all, while the runtime only decoded individual comparisons. The same unchanged package now executes and rejects failed range guards.

The runtime decodes closed, nonempty conjunction trees, checks every child before execution, and evaluates them in order with short circuiting. Every visited predicate uses the existing execution meter; recursive predicates share the expression/helper node and depth limits. Empty conjunctions reject as InvalidArtifact, matching Core's one-or-more wire cardinality. Application semantics remain in the authored source.

Validation:

  • The retained public-package regression was RED with InvalidArtifact before the fix and is GREEN against the same package pin and accepted verifier report.
  • All 80 pure/byte/read/source-function integration tests and nine pure-runtime unit tests passed. The final nonempty-cardinality correction passes all three predicate boundary tests and the public-package regression.
  • The separately compiled Jedit test host passed nine literal replacement cases plus the full boundary-record assertions using the emitted package. These cover insertion, deletion, Unicode, CRLF, NUL, range refusals and deterministic repetition.
  • Exact and one-below step budgets, malformed fields, unreachable malformed children, node quota and the combined depth boundary are tested. Empty-array acceptance was separately observed RED before tightening the decoder.
  • Strict all-target Clippy passed with the same native_rule_bootstrap,trusted_runtime,host_test,delta_validate feature set as CI. Feature-gated test registration, fixture licensing, formatting, shell syntax and diff checks pass.

CI and local full-test routes explicitly schedule the new trusted-runtime regression. The architecture owner and changelog describe the supported behavior. The fixture retains exact source, raw hashes, package and independent report from Edict 23378720 and Echo's checked provider at 6a7c62ff; no IR, package or report was edited. No dependency was added.

Hosted checks are running on the latest head. This does not complete Jedit's UTF-8/no-op/resource refusal work, persistent rope, mutation admission, Tick or recovery integration. Those remain separate requirements under Jedit #302.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 7 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: flyingrobots/echo/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: f98e2f22-ff87-41f8-b331-02fd798adfda
📥 Commits

Reviewing files that changed from the base of the PR and between 6a7c62f and 4ad5194.

📒 Files selected for processing: 17
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • crates/warp-core/Cargo.toml
  • crates/warp-core/src/edict_pure.rs
  • crates/warp-core/src/edict_pure/evaluate.rs
  • crates/warp-core/src/edict_pure/functions.rs
  • crates/warp-core/src/edict_pure/model.rs
  • crates/warp-core/src/edict_pure/predicate_tests.rs
  • crates/warp-core/src/edict_pure/syntax.rs
  • crates/warp-core/tests/edict_pure_predicates_tests.rs
  • crates/warp-core/tests/fixtures/edict-pure-predicates/README.md
  • crates/warp-core/tests/fixtures/edict-pure-predicates/ReplaceRange.edict
  • crates/warp-core/tests/fixtures/edict-pure-predicates/executable-operation-package.cbor.hex
  • crates/warp-core/tests/fixtures/edict-pure-predicates/provenance.json
  • crates/warp-core/tests/fixtures/edict-pure-predicates/verification-report.cbor.hex
  • docs/architecture/application-contract-hosting.md
  • scripts/verify-local.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@flyingrobots flyingrobots changed the title Evaluate compiler-produced conjunctive input guards Evaluate compiler-produced conjunctive input guards within runtime limits Oct 19, 2026
@flyingrobots
flyingrobots marked this pull request as ready for review October 19, 2026 02:54
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 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-19T02:57:26.663596Z 4ad5194 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.

@flyingrobots
flyingrobots merged commit 1a19d67 into main Oct 19, 2026
43 checks passed
@flyingrobots
flyingrobots deleted the fix/pure-predicate-evaluation branch October 19, 2026 02:58
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