Skip to main content

kestrel-feature-features

FeatureFeature — agents writing their own Kestrel features end-to-end.

FeatureFeature is the application layer that lets a sovereign agent propose, build, review, and ship a new tool or feature package. It is built on the workflow primitive: each proposal runs as a DID-signed, gated workflow (explore → design → constitutional review → file epic → assign Talon chunks → implement → tests/lint/CI → boundary scan → red-team → council → publish → audit anchor).

Installation

uv pip install kestrel-feature-features

This pulls in kestrel-feature-workflows and registers FeatureFeaturesFeature through the kestrel_sovereign.features entry point group.

Isolated feature scaffolds

feature_scaffold_isolated creates a deterministic, SDK-only source bundle for features whose dependencies conflict with the host or are too heavy for its environment. The bundle contains:

  • a lightweight host marker with [tool.kestrel.feature] runtime = "isolated-venv";
  • a service extra that is installed only in the private child environment;
  • one distribution whose service extra is Core's install target, plus a dependency lock input;
  • an IsolatedFeatureService initialize/config-transition/health/shutdown skeleton and contract test;
  • least-privilege declarations for network domains, symbolic filesystem mounts, secret capability names, declared native code, resources, and platforms.

The feature package performs no filesystem write, dependency resolution, installation, or process launch itself. The embedding host injects an feature_isolated_scaffold_provider already bound to the authenticated owner and recipient agent. The tool deliberately accepts no tenant ID, agent DID, workspace path, environment path, cache root, package index, or secret value. The provider must evaluate policy and approval before it materializes the bundle or invokes uv. Materialization must remain under the bound workspace, reject pre-existing symlink path components, and use no-follow/exclusive writes so validation cannot be raced into another tenant's tree. It must call evaluate_isolated_feature_policy, then rewrite the generated file:///__KESTREL_PROVIDER_REWRITE_REQUIRED__[service] target to an absolute file:// URI for the approved scoped source tree or wheel before building the host marker. An unresolved placeholder must never be activated.

Core discovery requires the lightweight marker to be installed in the host. Do not install its service extra or service-only dependencies there. Generated versions are content-derived so source or manifest changes produce a fresh Core provisioning identity. The SDK dependency remains within the scaffolded minor-compatible range; regenerate the scaffold when moving to an incompatible SDK minor.

Likewise, feature_isolated_status reads typed telemetry only through an owner/agent-bound feature_isolated_status_provider. Hosts should report actual download and environment bytes, resolve/provision/start timings, child RSS/CPU, restart and active/idle process counts, cache hit/miss, last use, cleanup eligibility, private writable versus shared cache bytes, file descriptors, active builds, old-healthy retention, and denial/quarantine reasons.

Cost model

A separate environment has three different costs; there is no useful fixed "one venv" price:

  1. The environment directory and Python launch scaffolding are generally small.
  2. Wheels and native libraries dominate disk. Pure-Python HTTP clients may be tens of MB; scientific/ML stacks may be hundreds of MB to multiple GB.
  3. Every running service adds a Python interpreter and its imported libraries to RSS. Idle shutdown can reclaim process memory while keeping the private environment for a faster restart.

IsolatedFeaturePolicy therefore contains host-configurable optional ceilings, not universal defaults: counts per agent/host, environment and cache bytes, concurrent builds, install timeout, idle timeout, package indexes, build backends, and native-code policy. An immutable uv download/build cache may be shared, but writable venvs, config, secrets, sockets, processes, and state must remain private to one owner/agent namespace.

Recommended host lifecycle:

  1. Validate the scaffold declaration and estimate artifacts without resolving.
  2. Apply owner/agent quotas and source/build/native-code policy. declares_native_code is only caller input; dependency artifacts remain unverified until the host inspects them, and only verified native code may be admitted by allow_verified_native_code.
  3. Obtain explicit approval.
  4. Install only the lightweight marker (without its service extra) into the host so Core can discover and version it. Resolve and lock the service extra only in a quarantined owner/agent-private candidate environment.
  5. Run contract tests, launch, and wait for readiness.
  6. Atomically promote the new environment digest; keep the previous healthy environment until promotion succeeds.
  7. On cancellation/crash, quarantine the incomplete candidate. On idle expiry, stop the process; remove an environment only under scoped cleanup custody.

Development

uv sync --extra test
uv run --extra test pytest -q

Architecture

FeatureFeature depends on kestrel-feature-workflows (a feature→feature dependency) for the workflow models, schema, and signing it uses to construct proposal pipelines. It reaches core surfaces — feature discovery, signals, identity, security, storage — through kestrel-sovereign.

Metadata

Release files for kestrel-feature-features 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kestrel-feature-features 0.3.2
File Size Uploaded
kestrel_feature_features-0.3.2.tar.gz 292.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kestrel-feature-features 0.3.2
File Interpreter ABI Platform
kestrel_feature_features-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 349.7 kB

Release files / kestrel_feature_features-0.3.2.tar.gz

Download URL kestrel_feature_features-0.3.2.tar.gz
Size 292.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2bb222da52f38824509f67c87f050717ec8f5c757d52e50fb7d3b6e1b6246615
BLAKE2b-256 checksum
How to use checksums
19b9468c51476ed1421c5b95521050f2045f14699e45cd5a21078b10ca91be21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / kestrel_feature_features-0.3.2-py3-none-any.whl

Download URL kestrel_feature_features-0.3.2-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
845f99a70366e30621a266ea47cf7837397a6e00431447b7f19f3d4cc66f582e
BLAKE2b-256 checksum
How to use checksums
f2d67b7d3fe2bced80da099ec3e1cb77bfc019374ff0a0be8ef29813e90a98f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page