Skip to content

docs: add the phase 8a and 8b designs and implementation plans (#87) - #91

Merged
Wahbeh-Mohammad merged 1 commit into
mainfrom
87-phase-8-planning
Oct 9, 2026
Merged

Wahbeh-Mohammad merged 1 commit into
mainfrom
87-phase-8-planning

Conversation

@Wahbeh-Mohammad

Copy link
Copy Markdown
Contributor

Closes #87.

Adds the phase 8 designs and implementation plans, filed under docs/work/mvp/phase8/, and links them from the roadmap's phase 8 row. Documentation only; no code changes. Implementation is tracked by the phase 8 umbrella (#90) and its two sub-issues (8a: #88, 8b: #89); this PR does not close them.

Each sub-phase went design → plan → independent validation of the plan against the design (findings verified before reporting, with scratch compile probes on SDK 10.0.401) → resolution of the verified findings. 8b's design was written after 8a's, which owns the phase segmentation.

Sub-phase Rows Design Plan Validation
8a conformance kit 38: the 16 TRANSPORT rows not listed for 8b, and all 22 ASYNC rows design plan — 3 stacked PRs 16 verified findings resolved (6 major)
8b reference transport 14: TRANSPORT-1, -4, -5, -6, -8, -9, -10, -12, -13, -14, -17, -18, -28, -30 design plan — 4 stacked PRs, after 8a's PR 2 11 verified findings resolved (4 major)

Key decisions

  • Dexpace.Sdk.Conformance: references only Dexpace.Sdk.Core; 40 assertions, each with a negative control; the wire fixture promoted from the SystemNet tests; per-ID reporting, waivers by ID (8b's rows start as Owner = "8b" waivers, each deleted by the 8b PR that closes it). First published version: the first release's lockstep version, proposed 0.1.0.
  • D3 confirmed: no second first-party transport; the kit's transport-agnosticism is proven by running it against DelegateHttpClient as well as SystemNetHttpClient.
  • Dexpace.Sdk.Reactive not built: no consumer exists; ASYNC-6 / ASYNC-21 vacuous for runtime facades.
  • 8b: SystemNetHttpClientOptions plus four constructors; a handler constructor that rejects a redirect-following handler; proxy installed on the owned client only, with no implicit environment read; a genuinely synchronous Execute; RequestOptions.Timeout enforced; the caller's Content-Type authoritative; an ObjectDisposedException latch.

Open for the lead

  • 8a: P8a-1 (row split), P8a-2 (D3 verdict), P8a-5 (first version 0.1.0).
  • 8b: P8b-2 (options record versus factories), P8b-4 (no implicit proxy environment read), P8b-7 (internal cancellation terminal, a plain OperationCanceledException), P8b-9 (genuinely synchronous Execute), P8b-10, P8b-14 (1 MiB default limit), P8b-18 (the CallKey stamp moved to phase 9).

Known caveats

  • 8a found that ASYNC-2's rejecting-scheduler clause is not met today (AsAsync throws TaskSchedulerException synchronously); the plan re-dispositions it rather than pinning it as met.
  • 8b's breaking changes (implicit proxy env read removed, real sync Execute, enforced timeout, terminal internal cancellation, post-dispose ObjectDisposedException, Content-Type authority) are listed in its design with migration lines.

Housekeeping probe: no drift found. scripts/knowledge verify-structure: OK.

File the conformance-kit and reference-transport designs and plans under
docs/work/mvp/phase8/ and link them from the roadmap's phase 8 row.
@Wahbeh-Mohammad Wahbeh-Mohammad added type:docs Documentation only area:transport Transport, async model, seams: TRANSPORT-* ASYNC-* SEAM-* spec:conformance Conformance-suite behavior, or a gap in the suite itself labels Oct 9, 2026
@Wahbeh-Mohammad
Wahbeh-Mohammad merged commit 415b5f0 into main Oct 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:transport Transport, async model, seams: TRANSPORT-* ASYNC-* SEAM-* spec:conformance Conformance-suite behavior, or a gap in the suite itself type:docs Documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: phase 8 designs and implementation plans (conformance kit, reference transport)

1 participant