# What is built

| Feature | Status |
|---|---|
| The package format, names and the lock | Built. |
| The surface, `jadpo package show` and `jadpo package check` with the publishing bar | Built. |
| Installing: `add` from a folder or git, `update`, `remove`, `link` and `unlink` | Built. |
| Connections to packages and the network report | Built. |
| Lazy loading, the package cache and two versions side by side | Built. |
| The OpenAPI importer, and the scoped review of an import's types | Built. |
| Provider calls, decoding, `wire_parts:` and retries | Built. |
| No transaction open during a call, and several changing calls in one action | Built. |
| Fakes, recordings and provider calls faked in development | Built. |
| The `email` capability with SMTP and Resend | Built. |
| Package actions, subscribers, recipes and polls | Built. |
| Webhooks as events, replies, handshakes, queues through a package and the Cloudflare Queues driver | Built. |
| Services (`runs:`) | Not built yet. |
| OAuth grants | Not built yet. |
| Publisher trust for third-party git packages | Not built yet. |
| The hosted registry | Not built yet. |
| Importers other than OpenAPI | Not built yet. |
| Choosing a provider when deploying | Not built yet. |
| Erasure at providers | Not built yet: it comes with [Personal data](personal-data.md). |

[The roadmap](https://github.com/jadpo-dev/jadpo/blob/main/docs/roadmap.md) says when each comes.

## Mistakes not reported yet

These mistakes are specified but not reported yet:

| Mistake | Reported by |
|---|---|
| A connection that receives personal data, with no `erasure:` and no acceptance | `jadpo check` |
| An operation whose scope the grant does not request; a call to a grant connection without `on_behalf_of:` | `jadpo check` |
| A service image not yet accepted; an `asks:` host not granted by `outbound:` | `jadpo check`, naming the line that grants it |
| A third-party package from git with no acceptance | `jadpo check` |
| A capability's connection whose package does not provide it, or a function call or expression in a `provide` mapping, for a capability other than `receiving` and `email` | `jadpo check` |

The rest of the page's mistakes have examples under
[Errors](external-services.md#errors): the digest and the lock, an `emails/` folder, the
index's keys, `provider.jadpo`'s keys, `hosts:` with `runs:`, reserved
and taken names, a resource and an action of one name and a public
action that emits (`package.action_invalid`), and subscribing to a
non-public event (`package.not_public`) under "Package errors"; a
surface that differs at install and a link in CI under "Installing
errors"; a decoder that fails on a recording and a field's `decode:` and
`encode:` that don't round-trip under "Recording errors"; a connection's
keys under "Connection errors". The rule that nothing public reaches
something private is `visibility.public_reaches_private`
([Project layout and modules](project-layout-and-modules.md)), and
several changing calls in the wrong place are the `step.` errors of
[Jobs and events](jobs-and-events.md) and `effect.call_in_loop`
([Logic](logic.md)).
