Skip to content

Topology capability hides the failing complex_digest constraint after an invalid request #781

Description

@yuelgrace1810-ops

Problem

A focused Codex/Jacobian trajectory on current main (228e49467530f3d1262ccb4e0d894d9d495249a2) selected topology.simplicial_homology.integral.compute, copied the published triangle invocation shape, relabeled its vertices, and accidentally retained the example's complex_digest.

The runtime correctly failed closed, but returned only the domain-generic diagnostic:

  • code: INVALID_FINITE_SIMPLICIAL_TOPOLOGY_REQUEST
  • message: Input does not satisfy the bounded simplicial-topology contract.
  • path / expected / actual_type: all null
  • hint: generic vertex/facet/prime/bounds guidance

The underlying contract has the precise validation failure complex_digest does not bind the canonical complex in src/jacobian/contracts/topology.py, but that information is lost when the topology bundle maps validation failures to its generic DomainDiagnostics.invalid_request.

The agent then attempted another natural-language discovery query for a contract rather than fixing the digest, and ultimately answered manually. The mathematical capability existed and behaved safely; the recovery diagnostic was the failure point.

Why this matters

A stale content digest is a common error when adapting a validated invocation example. The current hint directs the model toward unrelated topology constraints and does not identify the field it must repair. This weakens the intended retry loop in the merged Jacobian Skill.

This is adjacent to #602, which improved JSON-Schema constraint diagnostics, but it is not the same path: this failure occurs in a domain model validator after schema-shaped input has been accepted.

Reproduction

Invoke topology.simplicial_homology.integral.compute with the published triangle example, change vertex labels and all simplex labels, but leave complex_digest unchanged. Observe the generic diagnostic with no path or digest-specific hint.

Recommended scope

Preserve fail-closed behavior and assurance. Surface a bounded, stable diagnostic identifying /complex/complex_digest and that the digest does not bind the canonical complex. Add a regression test asserting that no topology result or artifact is produced and the precise recovery field is exposed. Avoid leaking stack traces or broadening accepted inputs.

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