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.3

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.3
File Size Uploaded Provenance
kestrel_feature_features-0.3.3.tar.gz 292.1 kB With provenance Details

Built distribution (wheel)

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

Total release size: 349.7 kB

Release files / kestrel_feature_features-0.3.3.tar.gz

Download URL kestrel_feature_features-0.3.3.tar.gz
Size 292.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1337c399446b8b728685f15420369e85e87d91a4a19e4555db3984019193cda6
BLAKE2b-256 checksum
How to use checksums
64a87efdc3e491de982031c1fbf4dac7dc544f8fdf9dfb7a0561b75c61b92405
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 20, 2026.

Transparency log

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

Download URL kestrel_feature_features-0.3.3-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80fb7ed8f7cd459aaab1ebca98d9e797770be374e5ad120e33355554877308f0
BLAKE2b-256 checksum
How to use checksums
692d7a5ca51bce8db4e8659b97411f44f766543979ca9ad326ed27dedf132eae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 20, 2026.

Transparency log

Security for kestrel-feature-features 0.3.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kestrel_feature_features-0.3.3.tar.gz

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 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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