Skip to content

test(evidence): exercise delivery faults and lost acknowledgements - #99

Open
dinakarjs wants to merge 1 commit into
agentrust-io:mainfrom
dinakarjs:test/delivery-fault-acceptance
Open

dinakarjs wants to merge 1 commit into
agentrust-io:mainfrom
dinakarjs:test/delivery-fault-acceptance

Conversation

@dinakarjs

@dinakarjs dinakarjs commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Ready for independent review — 31 October 2026

Readiness assessed at 57e75a9aeacbdb68328b4a9297afbb9141aaf0d0: current metadata is mergeable; all returned PR-triggered technical workflows succeeded, and the public discussion contains no explicit unresolved draft hold or code-change request. Changed-file scope and current CONTRIBUTING requirements were checked. This is a readiness assessment, not a new full source audit, fresh suite run, independent approval or complete branch-protection inventory.

Synthetic delivery/lost-ack regression coverage only; no durable recovery, exactly-once delivery or Collector interoperability claim. The real Collector experiment remains separate in #100.

Independent maintainer review and normal merge gates remain required; no merge or release is authorized by this transition. Earlier test counts apply to their stated revisions; obsolete baseline CI failures below are superseded by the successful current-head runs. Prepared with OpenAI Codex.


Problem

Operational telemetry delivery and accepted evidence have different guarantees. Regression tests should preserve that boundary when projections disappear, duplicate, reorder, or fail, and when a persistence callback commits but loses its acknowledgement.

Changes

  • Add a shared five-case delivery matrix consumed by Python and TypeScript, checked against existing pinned evidence-chain digests.
  • Exercise false/throwing lost acknowledgements with an idempotent test store: no local acceptance or projection before acknowledgement; identical retry; no second projection on a later duplicate.
  • Exercise Python OpenTelemetry ALWAYS_OFF/ALWAYS_ON sampling and a failing exporter without changing global providers.
  • Document the test boundaries and remaining collector acceptance work. No runtime, schema, dependency or completeness-contract changes.

Validation

  • Python: 161 tests passed with OTEL_TRACES_SAMPLER=always_on.
  • TypeScript: build passed; 51 tests passed using node --import tsx --test test/*.test.ts; npm pack --dry-run passed.
  • The normal npm test launcher was blocked by an environment EPERM on its IPC socket, so the same test files were run through Node's tsx loader.
  • Mutation check: bypassing Python's acknowledgement guard causes the new lost-ack test to fail; production source restored.
  • git diff --check passed.

Limits

Synthetic emitters and an in-memory store do not prove durable storage, crash recovery, OTLP wire behavior or collector interoperability. Python's real SDK exporter test is not a TypeScript exporter parity claim. The original local test environment did not supply Docker or a Collector; this PR's evidence remains synthetic. The documentation records the remaining version-pinned receiver/backend acceptance criteria.

Ready for independent maintainer review; this PR is not a draft.

Signed-off-by: Srinivasa Dinakar Jainti <dinakarjs@gmail.com>

Copy link
Copy Markdown
Contributor Author

@imran-siddique Please independently review the two bounded delivery-test contributions, each on its own scope:

All returned technical workflows for both heads succeed. Existing formal review requests remain; this single comment avoids separate duplicate reminders. Please identify remaining changes or disposition each bounded PR. Prior test results are not a fresh local rerun, independent approval or production-delivery certification. Prepared with OpenAI Codex.

This branch has not been deployed

No deployments
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