8000 Phase 2: enforce typed version-bound graph edges · Issue #6 · Mnehmos/MathOS · GitHub
[go: up one dir, main page]

Skip to content

Phase 2: enforce typed version-bound graph edges #6

Closed

Description

@Mnehmos

Product outcome

Implement typed immutable graph edges that bind exact canonical object versions and preserve the distinction among logical, pedagogical, research, provenance, and implementation relationships.

Acceptance criteria

  • Every edge kind in section 8.7 of SPEC.md is represented by an exhaustive Rust enum.
  • Edge endpoints must name existing versions owned by the stated stable objects.
  • Edge payloads are stored as canonical JSON.
  • Edge creation is transactional, actor-attributed, UUIDv7 identified, and idempotent.
  • Edge rows are immutable in the database.
  • Hard pedagogical prerequisite edges remain acyclic under concurrent and direct database writes.
  • Logical equivalence cycles remain permitted.
  • Exact edge retrieval works.
  • Unit and adversarial tests exercise real SQLite constraints.
  • Implementation status and release evidence are updated.

Trust checks

  • Logical and teaching relationships never share an untyped namespace.
  • Endpoint version changes require a new edge.
  • No cycle policy relies only on a prompt.
  • A failed edge mutation leaves no canonical row.

Out of scope

Graph traversal queries, run event chains, pedagogy path compilation, proof authority, and release export remain later deliverables unless explicitly integrated and tested here.

Activity

  1. Mnehmos commented on Jul 19, 2026

    @Mnehmos
    OwnerAuthor

    Local implementation checkpoint completed at commit 16a02c3 on the unpublished 6694 feat/spec-driven-rust-rebuild branch.

    Evidence:

    • all 30 specified edge kinds are exhaustive Rust variants with stable serialized names
    • source and target versions must be owned by their stated objects
    • edge payloads use canonical JSON
    • UUIDv7 edge creation is actor-attributed, transactional, and idempotent
    • edge rows are immutable by SQLite trigger
    • hard prerequisite cycles are rejected by both the application and a direct database write
    • logical equivalence cycles remain permitted
    • exact edge retrieval passes
    • full local gate: 22 Rust unit tests, 4 real CLI integration tests, warnings-denied Clippy, formatting, 39 legacy regression tests, and clean patch checks

    This remains Phase 2 infrastructure, not mathematical proof authority or MathOS 1.0 completion. The issue remains open pending branch publication and remote CI.

  2. Mnehmos commented on Jul 19, 2026

    @Mnehmos
    OwnerAuthor

    Remote preservation update: local commit 16a02c3 was replayed as remote commit c7e2c11 on draft PR #11. The final remote tree matches the local tracked tree exactly.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0