Skip to content

v0.0.8-alpha

Latest

Choose a tag to compare

@lutefd lutefd released this 26 Apr 23:07
· 9 commits to main since this release
d7cea7f

Release Notes

This release strengthens luc’s extension platform, packaging workflow, provider reliability, and developer tooling. It introduces capability-gated extension hosts, dynamic tool registration for advanced integrations, safer session recovery, improved subprocess handling, and new CI automation.

Highlights

Capability-gated extension hosts

luc.extension/v1 manifests now support explicit capabilities, allowing extension hosts to declare which privileged behaviors they are allowed to use. Sensitive bidirectional features such as:

  • client_actions
  • session/workspace storage access
  • dynamic tool registration (tools.dynamic)

must now be explicitly granted in the manifest. This improves safety, predictability, and host isolation.

Dynamic tool registration for advanced integrations

Extension hosts can now emit tools.register to add session-scoped tools discovered at runtime. This is designed for advanced adapters such as Model Context Protocol integrations where tool catalogs are not known ahead of time.

Dynamic tools:

  • are owned by the registering host
  • are session-scoped
  • cannot replace built-in or declarative tools
  • require tools.dynamic capability

This expands what long-lived extension hosts can integrate with.

Safer session recovery for interrupted tool calls

When a session reloads with unfinished tool calls in history, luc now repairs unmatched calls by emitting synthetic interrupted tool results. This keeps conversations internally consistent and improves recovery after crashes, cancellations, or abrupt shutdowns.

Improved provider process cancellation

Exec-based providers now terminate entire spawned process groups on Unix systems instead of only the parent process. This prevents orphaned child processes and improves cancellation reliability for long-running adapters or wrappers.

Smarter tool-limit detection across providers

Tool loop / tool call exhaustion errors are now normalized across providers. Variants such as:

  • exceeded tool limits
  • maximum tool calls reached
  • too many function calls

are recognized consistently, allowing cleaner auto-recovery behavior across provider implementations.

Packaging Improvements

More flexible package archives

Package validation and packing now support additional top-level assets such as:

  • .gitignore
  • docs/
  • examples/
  • tests/
  • localized README / changelog / license variants

This makes published packages more complete and easier to distribute.

Correct package layer precedence

Runtime package loading now preserves intended precedence between user and project package layers, ensuring project-installed packages properly override user-installed ones.

Developer Experience

GitHub automation added

The repository now includes:

  • a standardized pull request template
  • GitHub Actions CI running go fmt, formatting verification, and go test

This improves contribution quality and release confidence.

Documentation refresh

Docs were updated to clarify terminology across runtime surfaces, extension hosts, packages, and dynamic integrations.

  • docs(runtime): clarify dynamic tool registration boundaries by @lutefd in #9
  • fix(extensions): preserve package layer precedence by @lutefd in #10
  • docs(runtime): standardize runtime surface terminology by @lutefd in #11
  • Feature/extension host capabilities by @lutefd in #12
  • Chore/GitHub workflows pr template by @lutefd in #13
  • Fix/tool cancel session recovery by @lutefd in #14
  • fix(tui): constrain transcript diff width by @lutefd in #15
  • fix(provider): recognize tool limit error variants by @lutefd in #16
  • Fix/package changelog files by @lutefd in #17
  • Fix/markdown runtime views by @lutefd in #18
  • fix: allow package support directories by @lutefd in #19
  • Fix/runtime dialog scrolling by @lutefd in #20

Full Changelog: v0.0.7-alpha...v0.0.8-alpha