Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion extensibility/package-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,14 @@ but Nix-like storage is not a first-stage requirement.

Status: **accepted direction ([DIR-030](https://github.com/bitty-terminal/bitty-docs/blob/main/docs/decisions/index.md))**,
including the v1 component commands below (DIR-030 refinement of
2026-10-02). The process, install, and authority model is
2026-10-02); the manifest `[components]` grammar is **accepted** per the
2026-10-02 amendment to the
[Plugin Manifest and Capability Grammar
Authority](../specifications/manifest-capability-authority.md#amendment-2026-10-02-accepting-components-and-networkegress)
(it is also part of the [Plugin Platform
RFC](../specifications/plugin-platform-rfc.md#accepted-manifest-schema)
accepted manifest schema); the remaining package-manager install/resolution
spelling below is candidate. The process, install, and authority model is
defined in the [Native Component Boundary](https://github.com/bitty-terminal/bitty-docs/blob/main/docs/development/native-component-boundary.md); this section records only the package-manager
consequences.

Expand Down Expand Up @@ -358,6 +365,19 @@ net = "^0.0.1"
Version requirements use semver caret matching with Cargo semantics:
`^0.0.1` admits exactly `0.0.1`, and `^0.1` admits `>=0.1.0, <0.2.0`.

A plugin that uses the `net` component to reach a specific destination also
declares the structured egress entry so Core can compute its grant (the
intersection of granted `network.connect:HOST[:PORT]` capabilities and
`[[network.egress]]` declarations, per the [Plugin Manifest and Capability
Grammar
Authority](../specifications/manifest-capability-authority.md#amendment-2026-10-02-accepting-components-and-networkegress)):

```toml
[[network.egress]]
host = "api.example.com"
ports = [443]
```

Rules:

- **No `PATH` discovery.** Components resolve only from the component root
Expand Down
19 changes: 9 additions & 10 deletions sdk/net-request-surface-candidate.md
Original file line number Diff line number Diff line change
Expand Up @@ -459,12 +459,15 @@ the surface:
additive minor version adds the `bitty.net` namespace, the Result event
class, and the four event names to the closed set.
- [Plugin Platform RFC](../specifications/plugin-platform-rfc.md): the
accepted manifest schema must admit `[components]` and `[[network.egress]]`,
and the event pipeline gains the Result class delivery rules above.
- [Plugin Manifest and Capability Grammar Authority](../specifications/manifest-capability-authority.md):
section 6 currently classifies `[[network.egress]]` as rejected, while
DIR-030 and the Core grant computation depend on it. That classification
must be amended by a reviewed change before this surface can be accepted.
accepted manifest schema admits `[components]` and `[[network.egress]]`
(open point resolved, see below), and the event pipeline gains the Result
class delivery rules above.
- [Plugin Manifest and Capability Grammar Authority](../specifications/manifest-capability-authority.md#amendment-2026-10-02-accepting-components-and-networkegress):
section 6 previously classified `[[network.egress]]` as rejected, while
DIR-030 and the Core grant computation depend on it. The 2026-10-02
amendment resolves this by accepting `[components]` and
`[[network.egress]]`; the manifest schema conflict this page depended on is
closed.
- [Isolation and Resource RFC](../runtime/isolation-resource-rfc.md): the
per-plugin network bounds above become a new resource-ceiling row.
- The SDK surface file (`bitty-plugin-api-v1.json` in the bitty-plugin-sdk
Expand All @@ -475,9 +478,6 @@ the surface:

## Open points

- Amend the manifest authority section 6 and the Plugin Platform RFC manifest
schema to accept `[components]` and `[[network.egress]]` (owner: plugin
platform contract owners).
- Whether revoking a `network.connect` grant cancels in-flight requests of
that plugin, or only refuses new ones.
- Whether the Result class needs a cross-plugin global pending bound in
Expand All @@ -489,7 +489,6 @@ the surface:

## Acceptance criteria

- The manifest schema conflict in [Open points](#open-points) is resolved.
- The category owner, the docs curator, and a security reviewer approve the
namespace, events, errors, and bounds.
- The verification plan items have named owning tasks in the `bitty`
Expand Down
Loading
Loading