Skip to content

chore(rot): flush silent failures + drop Gleam SDK#85

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/rot-flush-silent-fallbacks
Jun 1, 2026
Merged

chore(rot): flush silent failures + drop Gleam SDK#85
hyperpolymath merged 1 commit into
mainfrom
chore/rot-flush-silent-fallbacks

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Three rot-flush moves from the seam-walk audit (#80), bundled because they share a single intent (make silent failures visible; remove SDK rot the architecture doesn't need).

A) Loud failure on unrecognised shapes (8 sites in elixir-orchestration).
Five federation adapters + the VCL executor + the VCL type-checker were silently returning [] on unrecognised response/spec shapes. Each site now logs a structured Logger.warning/1 with a bounded shape summary so failures are visible without crashing the federation query.

  • federation/adapters/{verisimdb, surrealdb, object_storage}.ex — 4 response-shape fallbacks
  • query/vql_executor.exextract_embedding_from_modality/1 ×2, wrap_provenance_results/1, wrap_spatial_results/1
  • query/vql_type_checker.exparse_proof_specs/1 catch-all

The parse_proof_specs(nil) and verify_multi_proof(_, nil) clauses flagged in #80 turned out correct as written (nil = "no proof requested" is a legitimate shape); the malformed-spec catch-all in verify_multi_proof/2 already errored. No change there.

B) Drop Gleam client SDK (~1,700 LoC, 14 TODOs, no README, 1 test).
BEAM-side cross-language access is the SNIFs WASM bridge's remit (hyperpolymath/snifs — Safe Native Implemented Functions via WebAssembly Sandboxing). Maintaining a parallel Gleam SDK that the Elixir client already covers — and forcing it to track every wire-format change once vcl-ut's Refl-pinned codec is the source of truth — is rot the architecture doesn't need. The connectors/ matrix in connectors/README.adoc and docs/INDEX.md now point to SNIFs for Gleam/Erlang access.

C) Drop 4 aspirational ignored persistence tests (~95 LoC).
InMemory* / BruteForce* stores are in-memory by design; persistence lives in the sibling Persistent* variants under verisim-{vector,tensor,semantic,temporal}/src/persistent.rs. The four #[ignore]-d tests in verisim-octad/tests/integration_tests.rs were testing an API that doesn't exist and isn't planned. Replaced with one comment block pointing at the right targets.

Net

+112 / −2,004 across 20 files. All behavioural changes are observable-loud-where-previously-silent. Zero feature regressions.

Test plan

  • cargo check -p verisim-octad --tests clean locally
  • CI Elixir build validation green on PR (local mix toolchain 1.14 < required 1.17)
  • CI Rust workspace cargo test green on PR
  • CI fuzz / benches / cargo doc / llvm-cov green on PR

Closes / refs

🤖 Generated with Claude Code

Two distinct rot-flush moves bundled (both surfaced in the seam-walk audit
on issue #80):

**A) Loud failure on unrecognised shapes (8 sites).**

Five federation adapters and the VCL executor + type-checker were
silently returning empty lists on unrecognised response/spec shapes.
Each site now logs a structured `Logger.warning/1` with a bounded
shape summary so the failure is visible without crashing the
in-flight federation query.

  - federation/adapters/verisimdb.ex      `extract_results/1` catch-all
  - federation/adapters/surrealdb.ex      `extract_surreal_results/1`
  - federation/adapters/object_storage.ex `parse_list_objects_response/1`
  - federation/adapters/object_storage.ex `parse_list_versions_response/2`
  - query/vql_executor.ex                 `extract_embedding_from_modality/1` (×2)
  - query/vql_executor.ex                 `wrap_provenance_results/1`
  - query/vql_executor.ex                 `wrap_spatial_results/1`
  - query/vql_type_checker.ex             `parse_proof_specs/1` catch-all

The `parse_proof_specs(nil)` and `verify_multi_proof(_, nil)` clauses
were flagged in the audit but are correct as written (nil = "no proof
requested" is a legitimate query shape); the malformed-spec catch-all
in `verify_multi_proof/2` already errored. No change there.

**B) Drop Gleam client SDK (~1700 LoC, 14 TODOs, no README, 1 test).**

BEAM-side cross-language access is the SNIFs WASM bridge's remit
(hyperpolymath/snifs — Safe Native Implemented Functions for the
BEAM via WebAssembly Sandboxing). Maintaining a parallel Gleam SDK
that the Elixir client already covers — and forcing it to track every
wire-format change — is rot the architecture doesn't need. The
connectors/ matrix and docs/INDEX point to SNIFs for Gleam/Erlang
access.

**C) Drop 4 aspirational ignored persistence tests (~95 LoC).**

The InMemory* / BruteForce* stores are in-memory by design; persistence
lives in the sibling `Persistent*` variants under
`verisim-{vector,tensor,semantic,temporal}/src/persistent.rs`, each of
which already has unit tests. The four `#[ignore = "persistence not
yet implemented"]` tests in `verisim-octad/tests/integration_tests.rs`
were testing an API that doesn't exist and isn't planned. Replaced by
a single comment block pointing at the right targets.

Net: +112 / -2004. Behavioural changes are all observable-loud-where-
previously-silent. Zero feature regressions; verified `cargo check -p
verisim-octad --tests` clean. Elixir warnings-as-errors verified via
the existing Logger pattern (local Elixir 1.14 too old for mix compile;
CI will validate).

Related: closes most of #80; references #83 (Elixir warnings — separate).
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 241 issues detected

Severity Count
🔴 Critical 18
🟠 High 53
🟡 Medium 170

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Action actions/checkout@v6 needs attention",
    "type": "unpinned_action",
    "file": "build-validation.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action dtolnay/rust-toolchain@stable needs attention",
    "type": "unpinned_action",
    "file": "build-validation.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action Swatinem/rust-cache@v2 needs attention",
    "type": "unpinned_action",
    "file": "build-validation.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/checkout@v6 needs attention",
    "type": "unpinned_action",
    "file": "build-validation.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action erlef/setup-beam@v1 needs attention",
    "type": "unpinned_action",
    "file": "build-validation.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action ons/checkout@v6\n\n   needs attention",
    "type": "unpinned_action",
    "file": "dogfood-gate.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/checkout@v6 needs attention",
    "type": "unpinned_action",
    "file": "elixir-ci.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action erlef/setup-beam@v1 needs attention",
    "type": "unpinned_action",
    "file": "elixir-ci.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/cache@v5 needs attention",
    "type": "unpinned_action",
    "file": "elixir-ci.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action tions/checkout@v6\n  needs attention",
    "type": "unpinned_action",
    "file": "elixir-ci.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit ee3e902 into main Jun 1, 2026
30 of 37 checks passed
@hyperpolymath
hyperpolymath deleted the chore/rot-flush-silent-fallbacks branch June 1, 2026 12:18
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