Skip to content

W1: Wesley as a boundary grammar (hashable view artifacts) #174

Description

@flyingrobots

Context

  • Treat Wesley as a language/spec for views (portable, hashable artifacts), not as a mandatory service.
  • Determinism requires schema/IR pinning so old logs are not reinterpreted under new compilers.

Goal

  • Deliver Wesley V0 as a boundary grammar with canonical AST + logical plan and hash pins that can be compiled to targets (PG/Echo).

Scope

  • Define the grammar surface (select/where/join/params; minimal first).
  • Implement canonical AST normalization + stable hashing.
  • Define a schema hash pinning strategy for receipts/events (wesley_ir_schema_hash or equivalent).
  • Add at least one target backend (PG mode first), plus an explain mode.

Exit Criteria

  • View specs/plans are stable, hashable artifacts and can be verified during replay/audit.

Links

  • docs/capability-ownership-matrix.md

Activity

  1. flyingrobots commented on Jun 1, 2026

    @flyingrobots
    OwnerAuthor

    Closing from Echo triage: this is not blocking the current Echo GraphQL-schema -> generated Rust path.

    Current Echo source anchors:

    • crates/echo-wesley-gen/tests/generation.rs:169 tests generating from a GraphQL schema via Wesley core.
    • crates/echo-wesley-gen/tests/generation.rs:216 asserts generated Rust metadata such as CODEC_ID.
    • crates/echo-wesley-gen/tests/generation.rs:323 imports generated Rust symbols including SCHEMA_SHA256 and operation constants in the smoke crate.
    • crates/echo-registry-api/src/lib.rs:358 verifies generated contract artifacts at the Echo boundary.

    The remaining goal here is Wesley/compiler ownership, not an Echo blocker. If this becomes actionable again, reopen as a narrow Echo issue about consuming verified Wesley artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature umbrella (epic)specSpec/Design document

    Projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions