25 lines
1.8 KiB
Markdown
25 lines
1.8 KiB
Markdown
|
|
# Changelog
|
||
|
|
|
||
|
|
## 1.0.0
|
||
|
|
|
||
|
|
- Initial `NexusClient`: connects via `nexus+graph|time|document|relational://` URIs (explicit port
|
||
|
|
required, `nexus+sql://` rejected with a dedicated message), TLS/mTLS/plaintext h2c channel setup
|
||
|
|
mirroring `Mishima.Nexus.Wire.Clients` environment variables, `x-nexus-database` metadata bound
|
||
|
|
from the URI path (or scheme's canonical default), and `CheckHealth()` via `NexusHealthService`.
|
||
|
|
- `Robotico.Nexus.Client.Graph`: `NexusGraphStore` / `NexusGraphSession` implement `IGraphStore` /
|
||
|
|
`IGraphSession` over `NexusGraphEngineService` — no Cypher/Gremlin/SPARQL/Vacuum surface.
|
||
|
|
- `Robotico.Nexus.Client.Time`: `NexusTimeStore` / `NexusTimeSession` implement `ITimeStore` /
|
||
|
|
`ITimeSession` over `NexusTimeEngineService`, including required `Doctor()`.
|
||
|
|
- `Robotico.Nexus.Client.Document` / `.Relational`: thin connect helpers (`NexusDocumentClient`,
|
||
|
|
`NexusRelationalClient`) plus generated Wire.V1 client factories
|
||
|
|
(`CreateDocumentWireClient()` / `CreateRelationalWireClient()`) for the full RPC surface.
|
||
|
|
- `Create`/`Open`/`OpenOrCreate` POLA semantics documented and implemented: `OpenOrCreate` ==
|
||
|
|
`Open`; `Create` fails with `NXS_ALREADY_EXISTS` once `Ping` succeeds.
|
||
|
|
- `NexusErrors` (`NXS_URI_INVALID`, `NXS_URI_UNSUPPORTED_SCHEME`, `NXS_CONNECT_FAILED`,
|
||
|
|
`NXS_TLS_REJECTED`, `NXS_ALREADY_EXISTS`, `NXS_NOT_FOUND`, `NXS_INVALID_ARGUMENT`, `NXS_DISPOSED`,
|
||
|
|
`NXS_UNAVAILABLE`, `NXS_WIRE_FAILED`) map both `NexusStatus` wire envelopes and `RpcException`
|
||
|
|
failures to `Robotico.Result.Result`.
|
||
|
|
- No dependency on `Mishima.Nexus.Abstractions` or any `Mishima.Nexus.Node.*` assembly — URI parsing
|
||
|
|
and TLS material handling are duplicated minimally to avoid pulling F# config/domain assemblies
|
||
|
|
into client apps (see `docs/adr/0001-nexus-client-monolith.adoc`).
|