Documentation
# Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased

## 0.1.0

- Add note in HDK documentation about links not deduplicating. ([\#1791]https://github.com/holochain/holochain/pull/1791)

## 0.1.0-beta-rc.3

- Fix typos and links in docs and add links to wasm examples.

## 0.1.0-beta-rc.2

## 0.1.0-beta-rc.1

## 0.1.0-beta-rc.0

## 0.0.163

## 0.0.162

## 0.0.161

## 0.0.160

## 0.0.159

## 0.0.158

## 0.0.157

- Pin the *hdi* dependency version. [\#1605]https://github.com/holochain/holochain/pull/1605

## 0.0.156

## 0.0.155

## 0.0.154

## 0.0.153

## 0.0.152

## 0.0.151

## 0.0.150

## 0.0.149

## 0.0.148

## 0.0.147

## 0.0.146

## 0.0.145

## 0.0.144

- Docs: Add example how to get a typed path from a path to `path` module [\#1505]https://github.com/holochain/holochain/pull/1505
- Exposed `TypedPath` type in the hdk prelude for easy access from zomes.

## 0.0.143

- Docs: Add documentation on `get_links` argument `link_type`. [\#1486]https://github.com/holochain/holochain/pull/1486
- Docs: Intra-link to `wasm_error` and `WasmErrorInner`. [\#1486]https://github.com/holochain/holochain/pull/1486

## 0.0.142

## 0.0.141

- Docs: Add section on coordinator zomes and link to HDI crate.

## 0.0.140

## 0.0.139

- **BREAKING CHANGE:** Anchor functions, `TypedPath` and `create_link` take `ScopedLinkType: TryFrom<T>` instead of `LinkType: From<T>`.
- **BREAKING CHANGE:** `create_entry` takes `ScopedEntryDefIndex: TryFrom<T>` instead of `EntryDefIndex: TryFrom<T>`.
- **BREAKING CHANGE:** `get_links` and `get_link_details` take `impl LinkTypeFilterExt` instead of `TryInto<LinkTypeRanges>`.
- hdk: **BREAKING CHANGE** `x_salsa20_poly1305_*` functions have been properly implemented. Any previous `KeyRef`s will no longer work. These new functions DO NOT work with legacy lair `v0.0.z`, you must use NEW lair `v0.y.z` (v0.2.0 as of this PR). [\#1446]https://github.com/holochain/holochain/pull/1446
- Fixed `hdk::query`, which was showing some incorrect behavior [\#1402]https://github.com/holochain/holochain/pull/1402:
  - When using `ChainQueryFilterRange::ActionHashRange`, extraneous elements from other authors could be returned.
  - Certain combinations of filters, like hash-bounded ranges and header type filters, are currently implemented incorrectly and lead to undefined behavior. Filter combinations which are unsupported now result in `SourceChainError::UnsupportedQuery`.

## 0.0.138

- hdk: Bump rand version + fix getrandom (used by rand\_core and rand) to fetch randomness from host system when compiled to WebAssembly. [\#1445]https://github.com/holochain/holochain/pull/1445

## 0.0.137

- hdk: Use newest wasmer and introduces `wasm_error!` macro to capture line numbers for wasm errors [\#1380]https://github.com/holochain/holochain/pull/1380
- Docs: Restructure main page sections and add several intra-doc lnks [\#1418]https://github.com/holochain/holochain/pull/1418
- hdk: Add functional stub for `x_salsa20_poly1305_shared_secret_create_random` [\#1410]https://github.com/holochain/holochain/pull/1410
- hdk: Add functional stub for `x_salsa20_poly1305_shared_secret_export` [\#1410]https://github.com/holochain/holochain/pull/1410
- hdk: Add functional stub for `x_salsa20_poly1305_shared_secret_ingest` [\#1410]https://github.com/holochain/holochain/pull/1410
- Bump wasmer to 0.0.80 [\#1386]https://github.com/holochain/holochain/pull/1386

### Integrity / Coordinator Changes [\#1325]https://github.com/holochain/holochain/pull/1325

### Added

- `get_links` and `get_link_details` take a `TryInto<LinkTypesRages>`. See the link test wasm for examples.

### Removed

- `entry_def_index` and `entry_type` macros are no longer needed.

### Changed

- `call` and `call_remote` now take an `Into<ZomeName>` instead of a `ZomeName`.
- `create_link` takes a `TryInto<LinkType>` instead of an `Into<LinkType>`.
- `update` takes `UpdateInput` instead of a `HeaderHash` and `CreateInput`.
- `create_entry` takes a type that can try into an `EntryDefIndex` and `EntryVisibility` instead of implementing `EntryDefRegistration`.
- `update_entry` takes the previous header hash and a try into `Entry` instead of a `EntryDefRegistration`.
- `Path` now must be `typed(LinkType)` to use any functionality that creates or gets links.

## 0.0.136

- Docs: Crate README generated from crate level doc comments [\#1392]https://github.com/holochain/holochain/pull/1392.

## 0.0.135

## 0.0.134

## 0.0.133

## 0.0.132

- hdk: Provide `Into<AnyLinkableHash>` impl for `EntryHash` and `HeaderHash`. This allows `create_link` and `get_links` to be used directly with EntryHash and HeaderHash arguments, rather than needing to construct an `AnyLinkableHash` explicitly.

## 0.0.131

- Docs: Fix intra-doc links in all crates [\#1323]https://github.com/holochain/holochain/pull/1323

## 0.0.130

## 0.0.129

## 0.0.128

*NOTE: this release has not been published to crates.io*

- hdk: Adds external hash type for data that has a DHT location but does not exist on the DHT [\#1298]https://github.com/holochain/holochain/pull/1298
- hdk: Adds compound hash type for linkable hashes [\#1308]https://github.com/holochain/holochain/pull/1308
- hdk: Missing dependencies are fetched async for validation [\#1268]https://github.com/holochain/holochain/pull/1268

## 0.0.127

## 0.0.126

- Docs: Explain how hashes in Holochain are composed and its components on the module page for `hdk::hash` [\#1299]https://github.com/holochain/holochain/pull/1299.

## 0.0.125

- hdk: link base and target are no longer required to exist on the current DHT and aren’t made available via. validation ops (use must\_get\_entry instead) [\#1266]https://github.com/holochain/holochain/pull/1266

## 0.0.124

## 0.0.123

## 0.0.122

- hdk: `delete`, `delete_entry`, and `delete_cap_grant` can all now take a `DeleteInput` as an argument to be able specify `ChainTopOrdering`, congruent with `create` and `update`. This change is backward compatible: a plain `HeaderHash` can still be used as input to `delete`.

## 0.0.121

## 0.0.120

- docs: Add introduction to front-page and move example section up [1172]https://github.com/holochain/holochain/pull/1172

## 0.0.119

- hdk: `encoding` from `holo_hash` re-exported as hdk feature [1177]https://github.com/holochain/holochain/pull/1177

## 0.0.118

- hdk: `Path` now split into `Path` and `PathEntry` [1156]https://github.com/holochain/holochain/pull/1156
- hdk: Minor changes and additions to `Path` methods [1156]https://github.com/holochain/holochain/pull/1156
- hdk: `call` and `call_remote` are the same thing under the hood [1180]https://github.com/holochain/holochain/pull/1180

## 0.0.117

## 0.0.116

## 0.0.115

## 0.0.114

## 0.0.113

## 0.0.112

## 0.0.111

## 0.0.110

## 0.0.109

## 0.0.108

## 0.0.107

### Changed

- hdk: `scheduled` fn signature updated to a string

### Added

- hdk: `map_extern_infallible` added to map infallible externs
- hdk: `schedule` function now takes a String giving a function name to schedule, rather than a Duration

## 0.0.106

## 0.0.105

## 0.0.104

## 0.0.103

### Changed

- hdk: `sys_time` returns `Timestamp` instead of `Duration`

### Added

- hdk: Added `accept_countersigning_preflight_request`

- hdk: Added `session_times_from_millis`

- hdk: Now supports creating and updating countersigned entries

- hdk: Now supports deserializing countersigned entries in app entry `try_from`

- hdk: implements multi-call for:
  
  - `remote_call`
  - `call`
  - `get`
  - `get_details`
  - `get_links`
  - `get_link_details`
  
  We strictly only needed `remote_call` for countersigning, but feedback from the community was that having to sequentially loop over these common HDK functions is a pain point, so we enabled all of them to be async over a vector of inputs.

## 0.0.102

### Changed

- hdk: fixed wrong order of recipient and sender in `x_25519_x_salsa20_poly1305_decrypt`

## 0.0.101

### Changed

- Added `HdkT` trait to support mocking the host and native rust unit tests

### Added

- Added `sign_ephemeral` and `sign_ephemeral_raw`

## [0.0.100]https://github.com/holochain/holochain/compare/hdk-v0.0.100-alpha1..hdk-v0.0.100

### Changed

- hdk: fixup the autogenerated hdk documentation.

## 0.0.100-alpha.1

### Added

- holochain 0.0.100 (RSM) compatibility
- Extensive doc comments