Skip to content

Freeze Echo Edict provider semantic source#658

Merged
flyingrobots merged 1 commit into
mainfrom
provider/edict-semantic-source-alpha
Jul 13, 2026
Merged

Freeze Echo Edict provider semantic source#658
flyingrobots merged 1 commit into
mainfrom
provider/edict-semantic-source-alpha

Conversation

@flyingrobots

Copy link
Copy Markdown
Owner

Summary

  • add the strict, versioned echo.edict-provider-semantics/v1 source model owned by echo-wesley-gen
  • validate and normalize the minimal Echo provider vocabulary: bounded types, effects, failures, obstructions, operation profiles, budgets, native capabilities/direct adapters, artifact roles, invocation closure, and schema bindings
  • check in the first reviewed semantic-source document and deterministic projection contract for the selected effectful Echo slice
  • reconcile relocated SDL authority so historical GraphQL files cannot silently become a second semantic source

Contract boundaries

  • the checked JSON is authored semantic source, not a generated lawpack, target profile, authority-facts document, provider manifest, or executable component
  • every runtime effect has exactly one implementation path, every lawpack adapter selector is unique, and all referenced types/failures/obstructions/profiles/budgets/capabilities/schemas close transitively
  • authority-facts artifacts bind contractOwner to flyingrobots/edict#157; its canonical edict.authority-facts/v1 CBOR/CDDL consumer contract landed in Edict PR warp-core: WarpInstances + descended attachments (B1) #159
  • target-profile resources remain explicit trusted external inputs; canonical publication is downstream under flyingrobots/edict#158
  • generation provenance remains Wesley-owned under flyingrobots/wesley#728
  • the provider manifest is a later Assemble the digest-locked Echo Edict provider package #655 package root and cannot inventory itself as a Generate Echo Edict lawpack, target profile, authority facts, and provenance #652 generated member

RED / GREEN

RED:

  • CARGO_TARGET_DIR=/Users/james/git/echo/target cargo +1.90.0 test -p echo-wesley-gen --test provider_semantic_source
  • focused witnesses failed before implementation for missing strict source parsing/projection, duplicate lawpack adapter selection, missing/ambiguous effect implementations, and authority-facts contract ownership

GREEN:

  • CARGO_TARGET_DIR=/Users/james/git/echo/target cargo +1.90.0 test -p echo-wesley-gen --test provider_semantic_source (18 passed)
  • CARGO_TARGET_DIR=/Users/james/git/echo/target cargo +1.90.0 clippy -p echo-wesley-gen --lib --tests -- -D warnings -D missing-docs
  • CARGO_TARGET_DIR=/Users/james/git/echo/target cargo +1.90.0 xtask pr-preflight (changed-scope verification, tests, Prettier, dead refs, and Markdown lint passed)

The pre-commit and pre-push repository hooks also passed their selected Echo-Wesley checks.

Review

Independent implementation and contract reviews found and drove closure of:

  • duplicate lawpack target-adapter selectors
  • native/adapter ambiguity and missing effect implementations
  • authority-facts ownership and Edict ABI dependency
  • exact package-root versus generated-member responsibilities
  • external canonical resource authority boundaries

A final post-fix review reported no remaining findings.

Dependency impact

No dependencies were added or changed. This slice does not introduce a sibling-path dependency and publishes no artifact.

Docs impact

Updated the Echo-Wesley README, application-hosting architecture, changelog, source-contract reference, schema inventory, and the detailed provider semantic-source design. The documents describe current branch behavior and keep #652/#655 boundaries explicit.

Closes #651
Closes #461

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

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

Next review available in: 39 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8ecbfe0b-721c-478e-971f-c8ee348cde18

📥 Commits

Reviewing files that changed from the base of the PR and between ebe8b6f and 1c55afa.

📒 Files selected for processing (9)
  • CHANGELOG.md
  • crates/echo-wesley-gen/README.md
  • crates/echo-wesley-gen/src/lib.rs
  • crates/echo-wesley-gen/src/provider_semantics.rs
  • crates/echo-wesley-gen/tests/provider_semantic_source.rs
  • docs/architecture/application-contract-hosting.md
  • docs/design/echo-edict-provider-semantic-source.md
  • schemas/edict-provider/README.md
  • schemas/edict-provider/echo-provider-semantics-v1.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch provider/edict-semantic-source-alpha

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

Copy link
Copy Markdown
Owner Author

@codex review please

@flyingrobots

Copy link
Copy Markdown
Owner Author

Activity Summary

# Source Severity Area Outcome Commit
1 Self-review P1 Lawpack target-adapter identity Duplicate target-profile selectors now reject deterministically and reorder-equivalent declarations preserve validated semantics. 1c55afa3
2 Self-review P1 Runtime effect implementation closure Every runtime effect resolves to exactly one native capability or direct adapter; missing and native/adapter/native ambiguities have stable negative witnesses. 1c55afa3
3 Contract review P1 Authority-facts ownership Both split authority-facts outputs bind Edict #157; the exact edict.authority-facts/v1 root now composes with merged Edict PR #159. 1c55afa3
4 Contract review P2 Package and executable boundaries #652 generated members, #655 manifest ownership, and declarative lowerer/verifier resources are separated explicitly. 1c55afa3
5 Contract review P2 External canonical resources Caller bytes are not trusted by coordinate; downstream publication authority is tracked by Edict #158. 1c55afa3
6 Final Code Lawyer - Full PR diff and review threads No remaining actionable findings; clean worktree; zero unresolved review threads. 1c55afa3

Verification

  • CARGO_TARGET_DIR=/Users/james/git/echo/target cargo +1.90.0 xtask pr-preflight passed all selected changed-scope checks.
  • Provider semantic-source contract suite passed 18/18.
  • Pre-commit and pre-push hooks passed.
  • GitHub completed 33 checks successfully; three conditional checks were skipped; zero failed or pending.
  • CodeRabbit is rate limited; repository-policy fallback @codex review please was requested and acknowledged but has not returned a response.

@flyingrobots

Copy link
Copy Markdown
Owner Author

Maintainer-directed admin merge override: CodeRabbit is explicitly rate limited, the documented alternate review was requested and acknowledged but has not returned a response, all local and remote checks are green, independent pre-PR/post-fix reviews and the final clean-worktree Code Lawyer audit report no remaining findings, and there are zero unresolved review threads.

@flyingrobots
flyingrobots merged commit e10f371 into main Jul 13, 2026
36 checks passed
@flyingrobots
flyingrobots deleted the provider/edict-semantic-source-alpha branch July 13, 2026 12:31
@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • No code changes were made. The trigger and PR comments describe a completed admin merge override / review fallback state, not a new requested code change.
  • I verified the repository worktree is clean and the current branch already contains the merged PR commit history. The repo instructions explicitly require checking git log -n 5 and git status during context recovery, and also say to stop once the requested scope is satisfied. AGENTS.mdL86-L94 AGENTS.mdL114-L121
  • Because there were no file changes, I did not create a commit and did not call the PR creation tool.

Testing / Checks

  • pwd && find .. -name AGENTS.md -print && git status --short && git log -n 5 --oneline
  • nl -ba AGENTS.md | sed -n '1,140p'

View task →

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c55afa3e0

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +2397 to +2404
let Some(capability) = capabilities.get(adapter.capability.as_str()) else {
return Err(ProviderSemanticSourceError::new(
ProviderSemanticSourceErrorKind::UnknownCapability,
subject,
&adapter.capability,
));
};
*capability

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject direct adapters backed by the wrong capability effect

When an operation uses a directAdapter, this branch accepts the adapter's referenced capability without checking that the capability actually implements/discharges the adapter's consumesEffect. If a source adds a second capability such as target.read and the profile allows its write class, an adapter can declare consumesEffect: "target.replace" while pointing at the read capability; validation then accepts target.replace even though semanticDischarge was only checked against target.read. Please either require the capability's effect to match the consumed effect here, or validate an explicit adapter-level discharge for that mapping.

Useful? React with 👍 / 👎.

Comment on lines +1289 to +1293
require_nonempty("profiles.effectPredicate", &profile.effect_predicate)?;
require_nonempty("profiles.opticContract", &profile.optic_contract)?;
require_nonempty(
"profiles.opticTemplate.supportPolicy",
&profile.optic_template.support_policy,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate frozen optic profile coordinates

For the first checked provider profile, these fields are only required to be non-empty, and no later check rejects arbitrary values. In a source that changes supportPolicy, lossDisposition, effectPredicate, or opticContract to a bogus non-empty coordinate, validation still succeeds, so the future generator can emit a target profile that no longer carries the frozen carry-or-obstruct/reject-on-loss/replace-only/replace-point semantics described by this source contract. Please validate those v1 coordinates instead of accepting any string.

Useful? React with 👍 / 👎.

Comment on lines +2334 to +2339
require_reference(
&types,
&operation.output_type,
ProviderSemanticSourceErrorKind::UnknownType,
subject,
)?;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate operation types against the effect signature

The operation ABI types are only checked for existence, not for compatibility with the selected effect's parameter/result types. If this source changes inputType or outputType to another declared record such as an empty obstruction payload, validation still succeeds, leaving a future generator to expose an operation whose declared ABI no longer matches the target.replace effect signature and with no declared transform to bridge them. Please compare the operation input/output shape against the effect signature before accepting the operation.

Useful? React with 👍 / 👎.

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.

Freeze Echo provider semantic-source and artifact-domain contract Reconcile Relocated Wesley Echo Schemas

1 participant