mishima-nexus-client-csharp/CHANGELOG.md

34 lines
2.1 KiB
Markdown

# Changelog
## Unreleased
## 1.0.1
- `NexusTimeSession` catalog/ops extras (ISP: not on `ITimeSession`): `ListSeries`,
`GetCardinality`, `ApplyRetention` over Wire.V1 RPCs with DTOs
`TimeSeriesCatalogEntry`, `TimeCardinalitySnapshot`, `TimeMetricCardinality`.
- Suite-layout ProjectReference resolution for `Mishima.Nexus.Wire.V1` (alongside sibling monorepo path).
## 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`).