Skip to content

Limits and provenance

Sethu builds on Vimanam and never grows its own copy of what Vimanam provides. This page lists the contracts, the refused cases, and the sources.

Key terms

Provenance. The recorded origin of every input: spec hashes, release commits, and tool versions. Example: the report names the Immich release commits and the Vimanam version behind the capture.

Capture. The immutable Vimanam output stored at init time. Example: later commands recompute the required set from this file, never from a fresh diff.

Slug. A short readable key that names one mode or page. Example: the installer merges owned modes by this key instead of by path.

Vimanam contract

Vimanam runs as a separate binary through src/vimanam.rs and nothing else. Sethu reads full stdout and treats exit 3 as output, because Vimanam exits 3 under --fail-on-breaking after writing the full report.

Vimanam records stay stored unchanged. Sethu never recomputes a change ID or a severity.

A bug or gap in Vimanam becomes an upstream issue with a version, a smallest reproduction, and expected behavior. Sethu takes a workaround when one exists and records the issue beside it. It never patches Vimanam from here. Find releases and usage on the Vimanam crates.io page. Read source and issues in the Vimanam repository.

Unsupported cases

CaseSethu behavior
Free text as sole evidenceRejected. Free text never satisfies verification.
Unsupported construct in a checkBlocks the claim instead of passing it.
Hand-edited ledgerRevalidated by check, since files can change by hand.
Scan rankingStays a heuristic. Candidates carry provenance and explicit limits.
Unverified changeNever claimed as passed. Reports mark missing evidence openly.

Local-only execution

The stub binds to 127.0.0.1 only. Sethu makes no other network call.

Every state write is atomic. Sethu writes a temp file, then renames it. A capture stays immutable once written.

Output stays deterministic. Diagnostics go to stderr.

The installer never overwrites a file it does not own. It merges modes by slug.

Pinned fixture sources

The demo specs are unmodified upstream files from immich-app/immich under AGPL-3.0-only:

FileReleaseCommit
old.jsonv1.116.28bbcd5c31e4a227f92864ae2977c4033bc0c50b7
new.jsonv1.117.06b8462402ba2fa48d4ddbce924b5e3e0987155eb

Copies live under tests/fixtures/immich/, with hashes in the NOTICE beside them. The demo consumer lives at noemaforge/sethu-demo-picker.

Licences

Sethu carries Apache-2.0. The pinned Immich specs carry AGPL-3.0-only and stay unmodified.

Cost disclosure

The hackathon account holds 40 Bobcoins with no top-ups. No agent spends them. Only the person runs Bob IDE. No migration step needs Bobcoins to pass its checks.