Skip to content

Feature/phase5 conformance docs release - #48

Merged
hmmftg merged 6 commits into
mainfrom
feature/phase5-conformance-docs-release
Sep 8, 2026
Merged

hmmftg merged 6 commits into
mainfrom
feature/phase5-conformance-docs-release

Conversation

@hmmftg

@hmmftg hmmftg commented Sep 8, 2026

Copy link
Copy Markdown
Owner

No description provided.

Hamid Malek Mohammadi and others added 6 commits September 8, 2026 13:25
Isolate root auto-versioning from v2 commit history so v2 feat!/refactor!
commits cannot accidentally trigger a root major bump. Add a manual
release-v1.yml workflow modeled on release-v2.yml with test/vet/build
gates and duplicate-tag protection. Strengthen CI with a root-only
consumer build job verifying the unsuffixed import path on Go 1.27.
Add MIGRATION.md for v0.28.1 to v1.x and correct version-status text in
README.md and v2/README.md.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…r helpers

Add opt-in RFC 9457 Problem Details model and mapper to v1 response
package, mapping libError.ErrorData and response.ErrorData to sanitized
problem fields without exposing internal messages or causes. Extend
WebHanlder with OKWithStatus/OKWithStatusAndHeaders for configurable 2xx
success statuses with 204/205 body suppression. Add StatusAwareResponder
optional interface without widening ResponseHandler. Extend
HandlerParameters with SuccessStatus and SuccessHeaders, applied
through BaseHandler success paths. Add httpsemantics package in both v1
and v2 with OAuth no-store (Cache-Control/Pragma) and RFC 6750 Bearer
challenge helpers with header-injection-safe escaping. Add v2 regression
tests for 201+Location, 204 no body, HEAD suppression, and mapper
sanitization.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…feature/phase3-conditional-requests-link-retryafter-trace
…Context

Add httpsemantics conditional request helpers (ETag parsing, If-Match,
If-None-Match, If-Modified-Since, If-Unmodified-Since) with RFC 9110
precondition evaluation in precedence order. Add RFC 8288 Link header
serialization with pagination link builder that preserves query params
and omits unavailable relations. Add RFC 9110 Retry-After parsing
(delta-seconds and HTTP-date) with clamping to prevent DoS. Add W3C
Trace Context extraction/injection helpers for inbound and outbound
propagation. Extend libCallApi.RemoteCallError with Headers field and
populate it in StatusPreservingBuilder and handlers.callApi. Add
HonorRetryAfter and MaxRetryAfterDelay to libRetry.RetryPolicy so the
retry loop honors server-provided Retry-After delays (clamped) instead
of fixed backoff when enabled. Mirror all helpers in v2/httpsemantics.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Add idempotency package with reusable contracts for HTTP idempotency
key handling: key validation (format, length, printable ASCII only),
request fingerprinting (deterministic SHA-256 of method, path, body
hash), Store interface for application-owned durable storage, Record
lifecycle (in-progress, completed, failed), SafeHeaders to strip
sensitive headers before storage, and IsSafeMethod/RequiresIdempotencyKey
helpers. Add MemoryStore for testing and single-process development with
race-safe concurrent reservation. Never expose raw idempotency keys in
telemetry or response bodies. Application retains ownership of durable
storage, transaction boundaries, and replay policy. Mirror all
contracts in v2/idempotency. Race tests verify concurrent reservation
produces exactly one success and N-1 conflicts.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… readiness

Add conformance package with shared data-only HTTP conformance vectors
for Bearer challenges, Retry-After, ETags, preconditions, idempotency
keys, no-body statuses, pagination links, and security sanitization.
Add conformance tests in both v1 and v2 that run against the same
shared vectors, verifying cross-version behavioral parity. Update
MIGRATION.md to document W3C Trace Context helpers and cross-version
conformance package. Run go mod tidy to reconcile v2 dependencies
(otelhttp, otel/sdk, sqlite test driver promoted from indirect to
direct). All tests pass with race detection in both modules; go vet
clean; go build clean; go mod tidy produces no unexpected changes.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@hmmftg
hmmftg merged commit 4059139 into main Sep 8, 2026
8 of 9 checks passed
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