feat(infra): full-surface integration suite + docs sync + publish prep
Full-surface integration suite (tests/full_surface.rs, mcp feature): - one HttpAdapter over real TCP (ProtocolHandler::handle path) serving gateway endpoints, /openapi.json, /mcp, and the WS channels session - gateway: search/schema/call/subscribe/batch/publish presence, envelope shapes, error fidelity end-to-end - from_openapi import -> Internal-by-default invisible from the wire -> External facade composes it via env.invoke -> upstream HTTP API called end-to-end (ADR-015 composition model exercised) - to_openapi 6-path doc validated against openapiv3 over the wire - to_mcp: MCP client connects to /mcp on the served adapter, lists the 4 gateway tools, search returns ACL-filtered ops (Sub excluded) Production fix: the WS upgrade route was reserved but never wired into HttpAdapter's router (the ws-upgrade-session tests built their own router). Now wired with ws_bearer_auth (401 without a resolvable token) around ws_upgrade_handler. Docs sync: all 28 'Port notes' sections/blockquotes stripped from ported ADRs/specs; OQ-01/OQ-02 statuses corrected to resolved in overview.md, websocket.md, and the README table (open-questions.md was already current). Publish prep: cargo publish --dry-run --allow-dirty succeeds; cargo doc --no-deps warning-free (ADR link targets fixed); feature combinations (default / test-support / mcp / wss / all) compile warning-free under clippy -D warnings. Verified: cargo test (182 lib default), --all-features (227 lib + 29 integration), clippy -D warnings x3 feature sets, fmt, doc, publish --dry-run.
This commit is contained in:
@@ -195,46 +195,3 @@ endpoint.
|
||||
- alkcall ADR-027 — the decision record in the call crate (`from_jsonschema`
|
||||
as an HTTP-backed adapter; `FromJsonSchema` provenance is a
|
||||
handler-bearing leaf in alkcall's `OperationProvenance`).
|
||||
|
||||
## Port notes
|
||||
|
||||
- **History accuracy (kept per the porting instruction):** the move this
|
||||
ADR records happened in two hops. Originally the adapter was specified in
|
||||
the call crate (`alknet-call`) as a schema-only placeholder; alknet
|
||||
ADR-066 moved it to `alknet-http` (the HTTP crate of the alknet
|
||||
mono-repo); with the crate extraction, `alknet-http` is now **alkhttp**.
|
||||
The title, §Decision 1, the location table, and the Consequences now
|
||||
name alkhttp as the home. The original title said "in alknet-http"; the
|
||||
ported title says "in alkhttp" — same crate, current name.
|
||||
- **Provenance location (per alkcall ADR-027):** `FromJsonSchema` provenance
|
||||
lives in alkcall (the call crate's `OperationProvenance` enum) — the
|
||||
provenance is a handler-bearing leaf in alkcall; only the adapter
|
||||
implementation lives in alkhttp. The original already said this; the port
|
||||
names the current crates and adds the alkcall ADR-027 citation to the
|
||||
References.
|
||||
- Renames: "alknet-http" → alkhttp; "alknet-call" → "the call crate
|
||||
(alkcall)"; the source-file path `crates/alknet-http/src/adapters/from_jsonschema.rs`
|
||||
→ `src/adapters/from_jsonschema.rs` (this crate's layout); "the HTTP
|
||||
crate" phrasing retained where the original used it generically.
|
||||
- `Subscription` → `Sub` (alkcall rename; alkcall ADR-046 added
|
||||
`OperationType::Pub` — producer→consumer streaming via `call.published`,
|
||||
`HandlerKind::Sink` — which does not affect this adapter: `from_jsonschema`
|
||||
detects SSE responses as `Sub` and registers `HandlerKind::Stream`, same
|
||||
as `from_openapi`).
|
||||
- Cross-reference remappings (verified alknet→alkcall ADR mapping): alknet
|
||||
ADR-017 (adapter contract) → alkcall ADR-022; alknet ADR-022 (handler
|
||||
registration) → alkcall ADR-018; alknet ADR-023 (error schemas) → alkcall
|
||||
ADR-016; alknet ADR-049 (streaming handler) → alkcall ADR-021; alknet
|
||||
ADR-014 (secret material flow) → alkcall ADR-010. ADR-014/017/022/023/049
|
||||
are ported to this crate under the same numbers and linked.
|
||||
- The `client-and-adapters.md` references became textual "the call crate's
|
||||
`client-and-adapters.md`" references with the alknet mono-repo path noted
|
||||
(the document lives in alkcall's docs/architecture/).
|
||||
- Status line: the superseded clauses (ADR-017 §5, ADR-022's
|
||||
`FromJsonSchema` row) are cited as this crate's ported ADRs — the
|
||||
supersession text is unchanged from the alknet original.
|
||||
- No decision content changed — the real-forwarding-handler requirement, the
|
||||
single-endpoint registration shape, the provenance location, the removal of
|
||||
the schema-only concept, the comparison table, and the
|
||||
neutral/positive/negative consequences are verbatim from the alknet ADR
|
||||
modulo the corrections logged above.
|
||||
Reference in New Issue
Block a user