Skip to content

Add live Valkey failure and Redis-compatibility tests #385

Description

@TheSilkky

Add live Valkey failure and Redis-compatibility tests

Priority

P2

Type

testing

Labels

Suggested GitHub labels:

  • backlog
  • testing
  • go
  • deployment

Branch scope

  • Current branch: develop
  • Current HEAD: 3555d1fd531ecd4b51b85779618bf4717514aa25
  • Target branch: develop
  • Original reviewed branch/ref: upgrade-codex-reports-and-repo-full-validation-security-review
  • Original reviewed commit SHA: e609ff86028c81bd149839e03d1ffc0eb2ee9e4a
  • Merged source pull request: #378
  • Target release/version: unreleased
  • Scope classification: follow-up-after-merge
  • Revalidation status: Revalidated against develop at 3555d1fd531ecd4b51b85779618bf4717514aa25 on 2026-07-12; repeat if develop moves before issue creation.

Summary

Add disposable live tests for Valkey expiry, coordination failure, restricted-command operation, and Redis-server compatibility.

Context

The approved full-stack smoke test proved ordinary Valkey-backed coordination works. It did not exercise lease expiry, stale ownership, backend interruption, restricted command/ACL operation, or a Redis server.

Issues #96 and #160 implemented Valkey/Redis-compatible coordination and short-lived upload leases. This draft validates those existing boundaries rather than redesigning them. The repository has no valkey or redis labels, so it uses the existing go, deployment, and testing labels.

Proposed change

Add opt-in disposable tests covering:

  • lease acquisition, expiry, and safe reacquisition
  • stale-owner release behavior
  • temporary backend interruption and recovery
  • documented fail-closed or retryable application behavior
  • the minimum documented command/ACL capability set
  • compatibility against one supported Redis server version

Keep SQLite/local and no-coordination behavior in the validation matrix.

Acceptance criteria

  • Live tests exercise lease expiry and safe reacquisition without relying on long sleeps.
  • A stale owner cannot release or corrupt a newer lease.
  • Temporary coordination unavailability produces the documented safe retryable or fail-closed behavior.
  • Tests run with a restricted synthetic account using only the documented minimum command set.
  • The same supported behavior is exercised against disposable Valkey and Redis servers.
  • No-coordination mode remains the default and continues to pass.
  • Coordination remains short-lived and is never treated as durable evidence state.
  • Test output excludes keys, identifiers, credentials, endpoints, request data, and user information.

Tests / validation

  • Run gofmt on changed Go files.
  • Run go test ./...
  • Run go vet ./...
  • Run focused coordination unit tests.
  • Run the disposable Valkey adverse-condition campaign.
  • Run the disposable Redis compatibility campaign.
  • Run the ordinary full-stack smoke test.
  • Run git diff --check.
  • Revalidate against the target branch before public issue creation.

Out of scope

  • Making Valkey or Redis a durable source of truth.
  • Requiring coordination for default/local deployments.
  • Redesigning upload identity, resumable transfer, or evidence storage.
  • Adding public coordination diagnostics or cloud deployment automation.
  • Accessing real services, credentials, endpoints, or user data.

Notes

Report reference: docs/reports/2026-07-10-proofline-unreleased-technical-review.md, public validation follow-up.

Related completed work: issue #96 and PR #111; issue #160 and PR #184.

Open Redis client dependency updates do not provide the live behavioral coverage requested here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions