Skip to content

Releases: cogitod/open-why

v0.1.0-beta.2 — credential-safe ingestion

Choose a tag to compare

@adrian-mei adrian-mei released this 09 Oct 20:59
4bf6575

A security and usability update for the public beta. Recommended for beta.1 users. This is a prerelease, with no stable API guarantee.

Changes

  • Reject recognizable credentials before library, CLI and MCP ingestion or embedding calls. Batches fail atomically and errors do not echo matched values.
  • Require explicit OPEN_WHY_ALLOW_REMOTE_CLONE=1 for URL indexing; prefer local repositories.
  • Bound MCP input frames and request IDs, reject credential-bearing clone URLs, and protect managed Git caches with owner-only permissions.
  • Add redacted, checksum-pinned Gitleaks history scanning to required CI.
  • Simplify onboarding, integration documentation and contributor guidance; update locked Clap/Rustix dependencies.

Install and upgrade

cargo install --locked --git https://github.com/cogitod/open-why \
  --tag v0.1.0-beta.2 --bin why --no-default-features
why --version

Back up and verify existing stores before upgrading. Stop old daemon processes, replace the executable, and reconnect MCP clients. Store identity, schema, named contracts and Rust MSRV 1.88 are unchanged. Keep a verified pre-upgrade snapshot and the old executable until a restored-copy trial succeeds. Add --force only when deliberately replacing an existing Cargo installation.

Lexical binary archives support Apple Silicon/macOS 14 and Ubuntu 24.04 x86-64 (glibc 2.39 required). Older GNU/Linux systems should install from source. Omit --no-default-features for local embedding support; pinned model inputs are fetched separately. Source installation needs native build tools. Archives include dependency license notices; platform checksum manifests, SBOMs and build records accompany them.

Security boundaries and limitations

Credential detection is a conservative pattern check, not a confidentiality classifier. Unknown or obfuscated secrets and arbitrary confidential prose may still be stored. Existing databases, backups and Git clones are not scanned or scrubbed by upgrading. Storage remains plaintext; connected clients and configured remote embedding providers receive relevant text. Do not use an unauthenticated shared service for mutually untrusted users.

Default ONNX builds need a compatible C++ runtime and have a known Debian 12 ARM64 limitation; lexical builds avoid ONNX. Windows/musl are unsupported. Independent human first-use and broader MCP client coverage remain open. The earlier bounded Codex CLI check does not establish universal client compatibility.

Release verification

  • Reviewed source: 4bf657547822c14bd76887912fb6682b250caa92, merged through PR #52. Signed annotated tag: v0.1.0-beta.2 (Ed25519 fingerprint SHA256:FtT/eGN9OoMmdvFdRPf4Y3MddxO1+6of+VgHDxCl9Tw).
  • PR CI passed Linux/macOS, stable/MSRV, default/lexical tests, pinned-model evaluation, dependency audits and history scanning. Ordinary test runs explicitly ignore two opt-in model checks and one manual diagnostic; the model checks run separately.
  • The documented public-tag source install passed in an isolated macOS ARM64 install root. A beta.1-created store was backed up and restored using beta.2 with identity/evidence preserved; capture, credential refusal/non-persistence, MCP initialization and a new verified backup passed.
  • All five jobs in the signed-tag release-candidate workflow passed. Native macOS ARM64 and Linux x86-64 archives each passed fresh source installation, version, demo, index/retrieval, capture, MCP initialization, backup verification, restore and credential rejection/non-persistence.
  • Both platform checksum manifests passed. Every file's GitHub attestation was verified against the exact repository, source commit, tag, release workflow and hosted-runner requirement. The source archives are byte-identical across builders. These are the exact validated bytes, without repackaging.
  • After publication, all nine assets were downloaded anonymously from their public release URLs. Both checksum manifests passed, and every downloaded file matched the attested candidate bytes exactly.
  • The public macOS ARM64 binary passed an isolated beta.1 backup -> beta.2 restore trial, preserved identity and evidence, accepted a safe new record, rejected a synthetic credential without echoing or persisting it, initialized MCP with version beta.2, and created a new verified backup. Linux artifact execution passed natively in the hosted Ubuntu 24.04 job; no local Linux execution is claimed.
  • Verification environment: local macOS ARM64; source installs used a fresh checkout/archive with Cargo caches available. Hosted artifact builders used Rust 1.88.0 on macOS 14 and Ubuntu 24.04. The initial local attempt used symlinked /tmp and was correctly refused by backup path safety; a canonical temporary path passed. All stores contained synthetic data; no user database was changed.

Check SHA256SUMS and GitHub provenance against the full source commit above, refs/tags/v0.1.0-beta.2, and .github/workflows/release-candidate.yml, requiring a GitHub-hosted runner. See verification instructions. Checksums alone do not authenticate the publisher.

open-why v0.1.0-beta.1

Pre-release

Choose a tag to compare

@adrian-mei adrian-mei released this 09 Oct 18:29
ffb32f6

First versioned beta of open-why: a standalone Rust library, CLI, and local MCP server for recorded decision rationale and linked evidence. This prerelease is for supervised evaluation; it does not promise the stronger guarantees in STABILITY.md.

Changes and upgrade safety

  • Enforce store identity on direct and shared-daemon connections; distinguish full database filenames and reject stale, redirected, or replaced endpoints.
  • Isolate remote Git caches by full URL; refresh managed decision files before indexing.
  • Add backup, verification, and restore-to-new-path workflows preserving identity and evidence. Existing destinations are never overwritten.
  • Offer lexical builds without ONNX/tokenizers while retaining local embeddings in default source builds. Model inputs use immutable revisions and verified digests.
  • Add public synthetic lexical/embedding evaluation, macOS CI, and artifact installation checks.
  • Preserve schema family and named MCP contracts. Rust MSRV is 1.88.

Stop old daemons before upgrading. New sockets append .sock to the complete database filename. Preserve existing store identities, take a verified backup, and test restoration into a new path. Old remote basename caches are retained but no longer reused; explicitly reindex remote URLs. See maintenance.

Install

cargo install --locked --git https://github.com/cogitod/open-why \
  --tag v0.1.0-beta.1 --bin why --no-default-features
why --version

For an exact source identity, replace --tag v0.1.0-beta.1 with --rev ffb32f6a9a9187df69ee812ea9a38a1014e4aea6.

Prebuilt archives are lexical-only:

  • aarch64-apple-darwin: Apple Silicon, validated on the GitHub macOS 14 runner.
  • x86_64-unknown-linux-gnu: Ubuntu 24.04 x86-64, requires glibc 2.39 plus libm/libgcc_s. It does not run on Ubuntu 22.04 or musl/Alpine. Use source installation on older GNU/Linux systems.

Each archive includes the executable and dependency license texts. Download the platform checksum manifest and its referenced files into the same directory. Verify before extracting:

shasum -a 256 -c SHA256SUMS-aarch64-apple-darwin
gh attestation verify open-why-0.1.0-beta.1-aarch64-apple-darwin-lexical.tar.gz \
  --repo cogitod/open-why \
  --signer-workflow cogitod/open-why/.github/workflows/release-candidate.yml \
  --source-digest ffb32f6a9a9187df69ee812ea9a38a1014e4aea6 \
  --source-ref refs/tags/v0.1.0-beta.1 --deny-self-hosted-runners

Use the Linux filename and manifest for Linux. The source .crate is shared by both platforms. Platform build records are unsigned metadata; GitHub attestations authenticate the final bytes separately. SBOMs cover the lexical Cargo resolution, including build/development dependencies, and exclude OS libraries/models. No bit-for-bit rebuild guarantee is claimed.

Validation and limits

Release workflow 37972316016 passed Linux/macOS CI, Rust 1.88 checks, explicit pinned-model evaluation, and installation from packaged source. Both extracted binary archives completed demo, index, capture, retrieval, MCP initialization, backup, verification, restore and evidence-read checks. Each asset's checksum and hosted-runner provenance were verified against this tag and source commit; source archives matched across builders.

An actual Codex CLI 0.162.0 session on macOS ARM64 completed ask/get/missing-evidence checks against this runtime. Independent human first use, Claude Code, client-driven supersession and reconnect remain unverified. The synthetic corpus is behavioral regression evidence, not a broad retrieval-accuracy benchmark. Records are evidence to inspect, not proof of correctness.

Local Unix stdio/daemon transports only; no HTTP server or Windows/Android support. Default ONNX source builds need a compatible native C++ runtime and fail on Debian 12 ARM64's older runtime. Lexical installation avoids that dependency. README illustrations and later evidence documentation are on main; this tag intentionally freezes the reviewed PR #45 runtime.